R0J0hound's Recent Forum Activity

  • I haven’t had this issue but hopefully it’s investigated to some degree. If it works most of the time then the glitch could be something we are never able to find repeatable steps for.

    Maybe it’s too much to expect, but I’d hope that sometimes the codebase is combed over to find issues instead of only addressing repeatable issues as they come up from users.

    I’m probably a bit salty about bugs because of some unleaded software that I’m forced to use that seems to deteriorate more with every update.

  • I thought the construct website was easy to navigate. Anyways, there is no download, construct 3 is web based and you can find a link to it on this website.

    To buy (or rather pay for a subscription) you go to this link, which should be simple to find anyways. Any limits the free version has is listed toward the bottom of the page.

    construct.net/en/make-games/buy-construct

  • Generally you’d upload the file somewhere and share a link, or share screenshots of events.

    Ideally that would allow you to get help from other users too since I’m not here too often.

    Depending on your level it might be easier for you to make a 2d version of what you had in mind first.

  • Right now it’s more seeing how workable it is to use quaternions for all orientation instead of Euler angles, angle-axis, or 3x3 matrices. Although the rotate function uses angle-axis which could be used to implement Euler angles. Math wise I’m trying to make it reusable. Instead of one function to set the orientation I’ve found in 3d it’s useful to be able to modify the orientation with arbitrary math.

    Anyways, I’m implementing this with the free version with a 25 event limit. So I’m only adding stuff that’s needed.

    The square texture per face of the cube is more of a simplification. My goal there was finding a way to make a cube mesh from one mesh distorted sprite. The logic of that portion of the events makes more sense with some diagrams I doodled. Arbitrary meshes or differing textures per face would just require making the object out of multiple distorted sprites instead of just one.

    Actually my short goal with all this is to work out how to make a minimal 3d editor for cubes. First update lets me position/scale/rotate a cube arbitrarily. With minimal changes it can have multiple. Next stuff I want to implement is:

    * camera orientation from quaternion.

    * mouse selection of cubes from view

    * 3d widgets to manipulate the position/rotation/scale

    * maybe some kind of multi select and/or transformation around a pivot point.

    * simple save/load

    * etc…

    However, I suspect I’ll run out of events and have to cut some features. But my main goal here is to find ways to do all that for future reference.

  • Inspired by mOOnpunk's ui devlog I decided to have a go at making one. Although my goal isn't a plugin or any product per say, rather just to explore some ideas for my later use.

    #1 First entry

    This implements some math to handle 3d rotation with quaternions. Mainly accumulated rotations around arbitrary axis' and transforming points with the rotation.

    The rotated cube is implemented with a single sprite with a mesh distort. Previously i did something similar by making a cube from a 4x5 mesh, but that had 4 unused quads which wasted texture space. This one is done with a 9x2 distort mesh with only two unused quads which is a bit better. There are 18 distort mesh points and only 8 vertices on a cube, so points are being transformed two or three times, but ideally it would be once per vertex.

    Something I want to explore next is applying a quaternion to the camera without converting it to a matrix first.

    dropbox.com/scl/fi/fvdee7aswxsxn5ok1ob9m/3d_cube_quat_rotation.c3p

  • Yeah, any kind of variable should work. Global or instance for example.

  • If you’re moving manually I suppose that means you aren’t using a behavior and can’t use their angle of motion expression.

    If you manually move an object by changing its velocity you could calculate the angle of motion with:

    angle(0,0,velocityX,velocityY)

    If instead you move an object by changing an object’s position you can calculate it by saving the position to some variables, manually moving the sprite, then calculating the angle.

    1. Set oldx to sprite.x, set oldy to sprite.y

    2. Manually move sprite

    3. Set angle to angle(oldx,oldy,sprite.x,sprite.y)

    That’s useful for calculating an angle of motion no matter what you use.

    You could calculate a 3d orientation instead but I say it’s simpler to just fake it with 2d angles till you can’t.

  • It’s not the full three.js library, it’s a half sized subset that appears to mostly include math and model loading portions. The rendering stuff isn’t in it. So my guess is they are experimenting with utilizing it to load gltf files instead of implementing a loader themselves.

    Anyways, all that hints at is Ashley may be investigating and/or experimenting with some more 3d stuff. Best case we’ll get some new 3d features in a near future release.

    Traditionally we only get to see what they are working on once it works and is part of a release. So I guess just wait and see.

  • You could also keep using the double loop, make them invisible after creation, then add a wait before making it visible again.

    Wait (loopindex(“x”)-1)*24+loopindex(“y”)

    Or

    Wait (loopindex(“y”)-1)*40+loopindex(“x”)

    Depending on the order you want them to appear

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • You do not have permission to view this post

  • You can probably get familiar with manipulating the 3d camera by looking at existing examples and just copying what they do.

    Flying could be as simple as just moving the player with an 8direction behavior and increasing the zelevation when a button is down, otherwise move it down.

    One possible following camera could be to consider the angle the player is moving, and position the camera some distance behind it and higher.

    Maybe use look at action

    Camera position: (player.x-200*cos(player.8direction.angleOfMotion), player.y-200*sin(player.8direction.angleOfMotion), player.zelevation+50)

    Look at: (player.x, player.y, player.zelevation)

    Up vector: (0,0,1)

    All that is vector math if you want to know what to google to expand your knowledge. You could make it smoother with some easing as well, which would simulate the camera man‘s delayed reaction of what the player does.

    It may also be useful to try similar ideas in just 2d to get the concepts down. 2d is way easier and construct provides a lot for you. Construct provides very little to assist with 3d stuff so you’ll end up needing to use a lot more math.

  • So it’s not centering horizontally? Wouldn’t that mean it’s not correct? It could just relate to where the origin of your sprites are.

    I find it useful to re derive formulas when the result isn’t what I’m after. If the box origin is at the top left, then you can center a 3xN grid of boxes with the following.

    Repeat count times
    — create box at center.x+(loopindex%3)*box.width-3*box.width/2, center.y+int(loopindex/3)*box.height-int((count-1)/3)*box.height/2

    What if the box origins are centered? Then the positions will be off by half the size of the box. Based on your image the origin may be right-center, so just add box.width to the x position to center everything.