Colonel Justice's Forum Posts

  • > Is the initial instance created at runtime?

    No, both instances are created during edit time.

    Then at runtime, the player changes the instances' states and variables.

    At one point, I need to swap the states of 2 instances.

    I tried to use:

    state1 = instance1.AsJSON

    state2 = instance2.AsJSON

    instance1 -> Set From JSON (state2)

    instance2 -> Set From JSON (state1)

    But it didn't work.

    I had to set the state manually (i.e. save each instance variable to a temporary variable, then swap them, and so on...).

    My question is: is there a way to use Set From JSON to set ALL the instance variables (i.e. state, in general) at once, instead of 1 by 1?

    This should actually work, may be a wrong order in operations etc.

    Can you post a c3p?

  • Thanks!

  • Hi everyone,

    is there a way to make the canvas object render correctly with a 3D camera?

    Right now, it seems like the canvas dimensions in 3D are still projected on the 2d plane, causing unnatural distortions and lag if updated every tick.

  • This looks very promising!

    Maybe switch to C3 for overall scalability.

  • Deactivate the sprite flag "initially visible". This way, it won't be rendered anywhere.

  • 1) Create a sprite object with all the enemy animations

    2) Create a 3D Shape Object

    3) Create a container on the 3d shape and join the sprite object.

    4) Set the desired 3d shape face to the sprite object. Now you can control the animations through the sprite object.

    5) Set width of the 3d shape object always to sprite.imagewidth and z height to animation frame in the form of sprite.imageheight / 3dcamera.zscale

    Be aware of nasty z-ordering / camera distance transparency clipping though.

  • The current FOV is approx. 72.8.

  • Also,

    you can use a For-loop, which can be named. Then you can access the current iteration of that loop with it's name, like loopindex("loopname"). You can do that for nested loops. E.g.:

    For "x" from 1 to 10

    For "y" 1 to 10

    Place object at loopindex("x") *32, loopindey("y") * 32

    This will create 100 objects in a 32x32 grid in 10 rows and 10 columns.

    To loop through every object with for:

    For "name"

    from 0 to Object.Count -1

    Do stuff with object where Object.IID = loopindex("name")

  • You could do all the tricks like moving blocks correctly with correct intersection rendering, for example.

  • After manual measurements, it looks like it‘s somewhere around 72.8.

    Would be nice to access it via actions / expressions.

  • Good day,

    is there any way to figure out the 3DCamera's field of view?

    Or, by any chance, to alter it?

    Cheers!

  • Nice!

    Would be helpful if the camera supported orthographic projection.

    May I ask how you positioned the sprites?

  • Did you try setting the draw order on the layer to camera distance?

    I find that the clipping and transparency glitches are tedious to overcome at the moment. The built-in sprite object should be able to face the camera at all axis.

    As far as I know, FOV and stuff is not accessible through events right now.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Man, what a journey. Is it really just 4 years since your first release? Awesome work anyway. Gotta test this right now! =)

    Three cheers, Colonel Justice! 0oo0

    When it's done, you know? :D

    Thanks!

    Side question: Do you happen to be able to fix the mouselock plugin for C3 R242+?

    It's broken since R241 due to the way plugins need their variables declared.

    Anyways, thanks for the support so far!

  • Here's the basic implementation (C3):

    drive.google.com/file/d/1Gj69ab5f5wuozDnCf1UaH1tb8mPs99gi/view

    Walls + sprites with correct z ordering.

    Without javascript and/or plugins, it won't get any faster than that.

    Cheers!