Can I interfere with physics? Change direction of bodies?

Hi guys.

In my current game, I have moving objects outside the screen given linear impulse to go toward the screen and collide with other static object there. I want to make it more fun by having the moving objects not only go toward those static objects but maybe move randomly around the strait line that linear impulse give them. So for instance the moving object would go toward one of the static object in a strait line to begin with but then randomly wooble around that line (to make it more difficult to shoot…my game is space shooter) Wooble could be just a sinus function or a circle and so on. But the moving should still move toward the static object.

I guess the questions can I interfere with the physics moving body while under physics linear impulse ? Or do I need to forget about physics and use math formula to move the object myself? I rather not since I am also using physics for collision between those bodies.

Any suggestions? Sorry if my explanation is not so great! Please ask away if not.

THANKS!

Mo [import]uid: 100814 topic_id: 29103 reply_id: 329103[/import]

Hi there, here is a general response, maybe this is enough to get you on a good path.

If you separate it into two, you have a generator (a sin wave) and a function (applying force) for a certain duration of time.

If you use a function that applies force each frame you can modify the path of the object in question. The amount of force you apply is a value that comes from your sine-wave table.

It can be more number-efficient to read the sine-wave value from a table than to generate sine wave values in real time.

So in each frame you can read from this table the current value:

sinetable = { 128,131,134,137,140,143,146,149,152,156,159,162,16 5,168,171,174, 176,179,182,185,188,191,193,196,199,201,204,206,20 9,211,213,216, 218,220,222,224,226,228,230,232,234,236,237,239,24 0,242,243,245, 246,247,248,249,250,251,252,252,253,254,254,255,25 5,255,255,255, 255,255,255,255,255,255,254,254,253,252,252,251,25 0,249,248,247, 246,245,243,242,240,239,237,236,234,232,230,228,22 6,224,222,220, 218,216,213,211,209,206,204,201,199,196,193,191,18 8,185,182,179, 176,174,171,168,165,162,159,156,152,149,146,143,14 0,137,134,131, 128,124,121,118,115,112,109,106,103,99, 96, 93, 90, 87, 84, 81, 79, 76, 73, 70, 67, 64, 62, 59, 56, 54, 51, 49, 46, 44, 42, 39, 37, 35, 33, 31, 29, 27, 25, 23, 21, 19, 18, 16, 15, 13, 12, 10, 9, 8, 7, 6, 5, 4, 3, 3, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15, 16, 18, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 42, 44, 46, 49, 51, 54, 56, 59, 62, 64, 67, 70, 73, 76, 79, 81, 84, 87, 90, 93, 96, 99, 103,106,109,112,115,118,121,124 };

if you need it to oscillate around 0 you would need to subtract 127 from the above numbers so that it goes between -127 and 127.

Also you need to scale the number appropriately so that the amount of impulse / force is appropriate for your mass. If you apply 255 force to a small object it will just go flying off the stage in a blink… so some patience and tuning is required.

Or it could be that you just apply force to the right for X time, then to the left for X time and alternate. If this moves the object with acceleration then you get a sin-like effect by applying alternating linear forces (instead of applying sinusoidal forces) it all depends on the exact effect you are looking for.

I hope this helps!
[import]uid: 150267 topic_id: 29103 reply_id: 117340[/import]

Thanks raz5! I appreciate it. Yes changing the linear velocity inside an enter frame seems to work great! So far I only used random changes (scaled properly as you said) I will need to dust up my Mathis skill to actually use sin to move the object around an actual linear trajectory ( the moving object moves in a direct line toward a static object screen but oscillate around the travel line with a sin wave type fashion. I will assume a simple addition will work but I am not sure if the moving object will keep the same general direction toward the static object. Any suugestions?

In any event, even the random vx and by give a great effect! Obviously the goal is to make it more difficult to shoot the moving object before it collides with a bunch of static objects on the screen.

Thanks a lot again!

Mo [import]uid: 100814 topic_id: 29103 reply_id: 117428[/import]