R0J0hound's Forum Posts

  • There’s an object called vars. Change the width of that.

  • Look at the 3d examples included with construct to get ideas of the kind of 3d you can do. Beyond simple 3d stuff, things become much harder since it’s not a 3d engine so things will have to be done from scratch.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • It’s in the vars.width variable I think.

  • Generally the devs don’t give roadmaps, we just find out what they added when releases come out. Sometimes you can see what they currently working on when we see related features being added. That said we haven’t seen many 3d features added in a bit.

    We can make feature requests on the suggestions platform, but features such as full 3d rotations seem to be delayed indefinitely as the dev calls it complicated.

    Anyways we can do some physics on our own. We can use the distort mesh feature to make full 3d rotation, then the rest is math.

    Here is a test I made for one die. I have some ideas to improve it and make it work for multiple dice but it may take a bit to implement when I get a chance.

    construct.net/en/forum/construct-3/how-do-i-8/create-3d-dice-rotation-167723

  • Yes. That link I posted is tested as working.

  • Set the color back to white to make it normal. Something like rgbex(100,100,100) I think.

  • Looks like the camera.angle in the up calculations needed to be negative. Guess it pays to test. 3d math is hard to conceptualize.

    Anyways, did that and it worked but it was jarring when you stopped turning as it snapped back to not tilted. Added some easing to make it more gradual.

    dropbox.com/s/v52y3gxnckqv3nb/mode7like_with_tilting.c3p

  • You’re using wrong values when you set the factor and tilt variables. It should be the same as what I wrote.

    Factor should be set to 1,

    And when setting the tilt you should use diff instead of angular speed.

  • It’s mostly a guide on how to do it.

    You’d add variables named diff, prevAngle, factor and tilt. Then in an every tick event you’d set those variables (a=2 would be the same as “set a to 2”). The up x/y/z are the expressions you’d use in the 3d camera look at action.

  • Hi,

    Nice to see your familiar art.

    I’d recommend testing the 3d in construct a bit more. Even though the default texture for the 3d object is for dice, there is a big limit. You can only rotate on the z axis, so full 3d rotation isn’t quite possible without more work. There is a pay for 3rd party plug-in to be able to rotate fully in 3d. Or you can utilize the mesh distort feature to move the corners of sprites around in 3d. The closest to an example of dice with some physics is here, but it needs a lot more work as it’s only one dice.

    construct.net/en/forum/construct-3/how-do-i-8/create-3d-dice-rotation-167723

    The rest of what you’re after should be much more doable. You can use the canvas for drawing. Sounds like you’d be just writing down the results yourself but with more events I suppose you could make it do that in a more automated way.

    Even though they are similar games I’d say start with one and just tweak it for the others. The event system is largely the same in c3 as c2.

  • To do the tilt you can change the up x/y/z with the look at action. Simplest way to change it is to use spherical coordinates. By default the tilt should be -90 (or was it 90?) and you’d add the angular speed to that. I don’t know if the car behavior can give you that but you can calculate a signed angle difference with the previous frame to get that.

    Here is basically what you’d do. With variables to calculate the steps.

    Diff = car.angle-prevAngle
    PrevAngle = car.angle
    Factor = 1
    Tilt = -90+Factor*angle(0,0,cos(diff),sin(diff))
    Up X = sin(tilt)*cos(car.angle)
    Up Y = sin(tilt)*sin(car.angle)
    Up Z = cos(tilt)

    If the view is upside down, replace -90 with 90. If it tilts the wrong way, make factor be negative. You can change the value of factor to make it tilt more or less.

  • I’d imagine so. The canvas is just a textured quad.

  • If you’re setting the angle of the sprite then I’d recommend the first method dop posted.

    The lerp gives an ease in but you can have the rotation at a constant speed with:

    Set angle to rotateAngle(self.angle, self.simAngle,100*dt)

    If could also do multiple conditions to see is the one angle is clockwise or counter-clockwise along with the angleDiff(a,b) expression to get the direction and angle difference.

    For a pure math way you can do this with the two angles which will give the difference and clockwiseness.

    signedAngleDiff=angle(0,0,cos(a-b),sin(a-b)

    Abs(signedAngleDiff) is the distance

    signedAngleDiff<0 means a is counter clockwise from b

  • Best I can come up with is a custom solution. Basically we’ll need a way to follow a path even if the object is pushed off the path. The path finding behavior kind of has a fixed path that the object follows so that’s not usable as is.

    If the units are moved with say the physics behavior they can push each other out of the way. Then to move along a path you change the velocity as needed. It’s simpler said than done but the concept is called “steering behaviors”. There’s one that steers to follow a path but I haven’t implemented a working solution of that yet. Another idea is to divide the map into a grid and do a flood fill from the goal to the other grids. Each time you store the direction from the previous grid position. So what you essentially get is a path from all grid locations to one. Then you can just set the velocity based on where the object is positioned.

    There are other solutions too. But nothing super simple comes to mind with the tools construct provides.

  • I’m unfamiliar with that template but would this work?

    construct.net/en/forum/construct-3/how-do-i-8/anybody-know-something-this-173033

    It positions the camera a bit behind the player and looks at a bit in front of the player. I adjusted it so that the player is on the bottom of the screen but you can tweak it more.