R0J0hound's Forum Posts

  • I think the biggest issue is getting the 3D assets to do stuff with. That and an idea what kind of game to do. :) I get caught up on the tech side of things.

    Reusing the 2d movements in construct is a handy idea but I guess we could also go on a tangent of doing our own collision detection. Javascript does make it handy to make reusable chunks of code over events.

    I guess the next step would be to make it work with multiple objects and come up with some kind of game. Maybe walk around and slap balls around?

  • Test 1: Animated 3d mesh.

    dropbox.com/s/b1u15kjc0b3vgyh/objAnimation2.capx

    Tool capx to convert a 3d animation from many obj files to an array json:

    dropbox.com/s/m2lw100wf0fqmkr/objAnimation2json.capx

    This is yet another 3d test in c2. The main feature is it is a distorted mesh animation. The idea came about from some recent 3d tests on discord. Loading a simple 3d file format like .obj is simple enough but there is no good simple alternative for a 3d animation. Sure there are .dae .fbx and .glb, but they aren't as simple load.

    This example is done by saving an animation to multiple obj files, then the tool capx is used to fill an array with just the vertex locations for every frame. That is loaded faster in the main capx, not to mention is a bit more compact. Then it's a matter of lerping the vertices from one frame to another to animate.

    There are two modes in the capx controlled by the QUADDRAW constant. When off(or 0) the capx will just draw the animation as a wire frame, which is slower, but should work in C3 since it doesn't do anything fiddly.

    With it on it utilizes mostly javascript to do the drawing and transformation of points. The drawing hijacks an objects drawing function and just uses c2's renderer to draw lots of quads. Other than that the rest is just to make transforming all the vertices faster than doing it via events.

    Notes:

    * There is a pause when it starts as it loads the animation json and parses one object file to get the faces and texture coordinates. The obj parsing can probably be made quicker and maybe cleaner by dropping it into js. As is the most useful speedup was avoiding tokenat to get each line of the file.

    * The javascript used reaches into the c2 runtime and won't work after minifying unfortunately.

    Anyways, this whole thing probably isn't useful for anything but it may be fun for someone to play around with and get some ideas.

    I'll see if i can add to this topic other c2 related tests as i come up with them,

    -cheers

  • You can do it with three variables vx, vy, and t. t is the number of seconds you want it to take to hit the player and vx,vy are the horizontal and vertical velocities we will calculate from t. anyway the arrow launch will look like this:

    create arrow at (enemy.x, enemy.y)

    t = 1

    vx = (player.X-enemy.X)/t

    vy = (player.y-enemy.y)/t-arrow.Bullet.Gravity*t/2

    arrow: bullet: set speed distance(0,0,xv,vy)

    arrow: bullet: set angle of motion to angle(0,0,xv,vy)

    dropbox.com/s/68mhi9hrwsjf7fl/bullet_proj_calc.capx

  • The force of gravity between objects can be done with:

    F=G*m1*m2/r^2

    Where

    m1 and m2 are the masses of the two objects and r is the distance between them.

    G is a constant. It comes from

    https://en.m.wikipedia.org/wiki/Newton%27s_law_of_universal_gravitation

    But since we are not dealing with real world scales we can just fudge it.

    You can try the following. Also to get the moon to orbit you just have to have the perpendicular velocity high enough.

    Global number a=0

    Global number r=0

    Global number f=0

    For each planet

    — set a to angle(moon.x, moon.y, planet.x, planet.y)

    — set r to distance(moon.x, moon.y, planet.x, planet.y)

    — set f to 100 * moon.physics.mass * planet.physics.mass/r^2

    — moon: physics: apply force (f*cos(a), f*sin(a))

  • Thanks but there is no way to send me money. This is just a hobby for fun. A near zero cost hobby at that.

    Anyways, I appreciate the thought.

  • Hi,

    In that capx you can set the camera x,y and angle in event 6. So you can set them to anything you want. You could even just set it to the position and angle of a sprite that you move around with your movement behavior of choice.

    I don't have the mode7 effect installed, nor do I have many third party plugins installed.

    I'll be honest, I'm not going to be able to help with the mode7.fx. I don't like it, and have scrapped it.

  • A second example. Arrow keys to drive. Do a lap to see a ghost of the previous lap.

    dropbox.com/s/635epvwa6yl3oh6/mode7js2.capx

  • Like I've said in the mode7.fx topic I've abandoned it. It does some math to get the look, but it's not clean to make positioning other objects work well.

    But I wanted to play with shaders more, although I don't want to make addons. Anyways here's a mode7 implementation that may be useful. I tried to make it as streamlined as possible.

    construct.net/en/forum/construct-2/your-construct-creations-23/mode7-via-webgl-javascript-155359

  • Here's a test to use custom webgl to do mode7 perspective on a texture.

    * It's free to use.

    * Doesn't use the mode7.fx. It's less fiddly.

    * let's you position objects on the ground.

    * Doesn't work with minifier.

    Look at capx for more usage notes.

    dropbox.com/s/8nqw4dy6z2elaa5/mode7js.capx

  • tarek2

    Yeah, that looks like a bug.

    In Event 20 remove the action "node: set dist to dist+2", i forgot to remove that.

    dropbox.com/s/vto9mwobq9uoqsx/power_with_id_multi_source.capx

    HolidayExplanation

    The third example, with that bug fixed, works best for evenly spreading out the power.

    I modified the example to transfer where the power is coming from and tried showing power consumption:

    dropbox.com/s/562xjz7t3rmbrop/power_with_id_multi_source2.capx

    Passing the genId is kind of ambiguous. One will arbitrarily be the owner when there is a tie.

  • Dug up a plugin rex made that looks like it may help.

    c2rexplugins.weebly.com/rex_mode7perspective.html

  • You do not have permission to view this post

  • You do not have permission to view this post

  • I see you used the second example.

    To know what source the power is coming from you could add another parameter to the power function to be the generatorID.

    So when calling the power function from the source nodes it would be

    Power(node.uid, 0, node.generatorID)

    Or however you want to identify the generator.

    Then in the function you can set the Id of the nodes from param(2),

    And when you call the function again, also pass param(2).

    If that makes sense. You’d probably want to reset the id for all the nodes in the same place that powered is set to false.

    I’m alway from my pc till probably Monday, and I don’t really use c3, although looking at projects from my phone is cool.

    So in general you just need to know if something is connected to power and what that power source is? Does the number of linkages from the power source matter?

    You say each component uses power. Is it distributed evenly over everything that’s connected? Or does each component use the power it needs and pass the leftover power down the wire?

  • I thought i'd have a go at this. Can be done with a flood fill.

    dropbox.com/s/7yyocrr06epdufe/power.capx

    It starts at the source, marks it as powered, and recursively follows the connected wires to power them.

    dropbox.com/s/z2ulq22r0qup7um/power_with_id.capx

    But if you want the distance from the source of every component then the above still works for one source.

    dropbox.com/s/vto9mwobq9uoqsx/power_with_id_multi_source.capx

    For multiple sources we have to spread one layer at a time.

    sources are all set to zero. loop over the 0s and set unpowered connected to 1. Once done do the same for two and so on.

    A nice reference. If we are just powering things it's basically a flood fill. Otherwise it's a breadth first search, which isn't too different.

    redblobgames.com/pathfinding/tower-defense

    -cheers