R0J0hound's Recent Forum Activity

  • Here’s one way. Is one color at y=0 and the other at y=480.

    t= sprite.y/480

    Set color to rgb(lerp(23,72,t), lerp(24,104,t), lerp(25,89,t))

  • Currently it takes all the polygons facing the light, loops over each pair and casts shadows on each one. Kind of brute force but I should work on any mesh.

    The meat of it is clipping a polygon by a plane. Then a shadow is cast on one polygon (A) onto another polygon (B) by taking all the edges of A and making plane with the light position, then clipping B by all those planes.

    An improvement would be to use a a binary space partition in conjunction with that to do that more efficiently so higher speeds with more polygons is possible. Google SVBSP (shadow volume binary space partition) for the algorithm.

  • I suppose you could. The binary object would help in decoding rom files. What did you want to try to emulate?

  • To address the mass not being taken into consideration:

    Force = mass * acceleration

    The units with the physics behavior is off by a factor of 50 or so. In practice that only matters if you want to use exact units. Most of the time you can just tune the numbers.

    There is no solution for the sleeping with what the physics behavior provides access to. If you can somehow access the underlying physics engine from JavaScript there may be a way to do it, but the behavior wasn’t designed for that, and you’d be fighting with the behavior.

  • Setting a 3d camera and using a fog effect should be enough to do it.

    Here I made the camera be a little behind the car and look at a little in front of the car.

    uc4a64e6701039b22f9780ac06fb.dl.dropboxusercontent.com/cd/0/get/Ch9a4G1n8f6uwi3hKVD5sd525ZgWLgPewU9HWwskMISqICTXl-Nf4INaAXR9paNCrsHL0PAxM16vLIOwdXTxRTPVQ8dZ21hnbwNaM5h7tB1jltyaMPgCvbXx1BGQCUFX4eSBrSwaTQqbPRw1CE_ZshC8/file

    For the 3d looking car it's probably just a car sprite on a 2d layer.

  • So I managed to to make a demo of realtime shadows between two cubes an a ground plane with a point light. It's using the shadow volume method using polygon clipping.

    uc23d1ef3a3eaa67aefce8a1850a.dl.dropboxusercontent.com/cd/0/get/Ch4i0jS4qZNxDXcoup8M2lizScf9ABF3BWh1XkSS22zNnVBLKQLF8yysBvvsm4lIrNGIlkDZcnwsnRf1OmsIgRksROG0GAHQfw78OyWORGF7hcRXcUzYBHey8bNZlnciRdas49Y1jMswLJxBOEHGnCKT/file

    You can drag the cubes if you click on the the middle of them. The fireflies in the shadows are from Z-buffer precision limits. The edges show sometimes as well since the shadows are offset slightly to reduce z-fighting.

    To fit it into 25 events it's currently limited to just the two cubes and ground plane. However I think I can see at least one more event I can squeeze out of it so we could have any number of cubes after some refactoring, but that's for another day. Overall it was an interesting test, but to make it simple to use in general would require a lot more work.

    Anyways, cheers!

    EDIT:

    made it so you can add as many blocks as you want and added block color.

  • Oh, strange. I would have thought a higher refresh rate would make collisions more accurate. It's the lower framerates that could cause objects to pass through walls.

    Sounds like a bug if collisions are failing at higher refresh rates. Ashley

  • Off hand you could make some functions that would both call console.log and write to a variable. Then you could invoke a download of that variable to a file.

    I suspect there is no direct way to access the debug console contents since this is JavaScript and browsers limit what data you can reach for security reasons. Google may prove me wrong though

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • One possible reason could be the game is running at a lower fps on your students pc than the other ones. Maybe her machine has another app or a windows service running in the background that’s affecting it.

    You can check that by setting a text object to fps in an every tick event.

    With a lower fps the object will move faster in a frame. As an example say you have an object moving at 1000 pixels/second then:

    At 60fps the object will move 1000/60 or 16.66 pixels in a frame.

    And worst case at 30fps (construct doesn’t let the time step get lower than that last I checked) then the object will move 1000/30 or 33.33 pixels in a frame.

    So thin walls with fast objects can be a problem with low fps since they can have moved past the walls without collisions. Or even if a collision is triggered and the object is most of the way through it will be pushed out past the wall.

    You can also check the refresh rate of the monitor. 60hz is standard but many monitors have have higher at 90hz, 120hz,…etc.

    Anyways that’s my best guess what’s amiss. Fast speeds, thin walls and something causing a fps drop.

    If that’s not the issue then you can also check the browsers error console to see if any errors are listed. But I don’t think any are likely.

  • Probably any of my examples can be improved. I go to the point of getting it working a basically stop. There are things that likely can be changed to make it faster. Also if finding a path takes too long it can be changed to do it over multiple frames instead if need be.

    The tweaks are endless. Probably the newer examples I’ve made are better. My goal is to make capx as simple as possible and do what is desired.

  • You do not have permission to view this post

  • I mean the example above is pretty instant with finding a path.

    Besides events you can make a plug-in and do what you want with JavaScript. You can also run js with the browser plug-in if you want to do that instead.

    Events just are easier and more flexible especially with interacting with other things in the engine. You can often improve performance by refining the algorithm used.

    JavaScript can perform faster but you also have to deal with debugging it inside your game.

R0J0hound's avatar

R0J0hound

Member since 15 Jun, 2009

Twitter
R0J0hound has 155 followers

Connect with R0J0hound