Got physics? *Solved*

Posted by Mordi on Oct. 10, 2008, 9:56 a.m.

Do you know anything about GMPhysics? I have a slight annoying problem to deal with in a small game I am making.

I have made a level editor where you can place objects. The weapons, which I made a long time ago, don't fall through the floor. This week I made mines, but they fall through the floor when they are created at level-startup. The thing is, weapons and mines are created in the same script (at the same time), but when mines are created in-game (not at level-startup) they don't fall through the floor.

Here is the code for all the objects involved in this bug:

Quote:
Information about object: o_block

Sprite: m_block

Solid: true

Visible: true

Depth: -2

Persistent: false

Parent: o_solidparent

Mask: m_block

Create Event:

execute code:

h = create_body(x,y,STATIC,SHAPE_BOX,image_xscale*64,i

mage_yscale*64);

set_body_rotation(h, image_angle);

grass = true;

obj = object_index;

Draw Event:

execute code:

draw_sprite_ext(s_ground,0,x,y,image_xscale,image_

yscale,image_angle,c_white,1);

if (grass = true) { draw_sprite_ext(s_grass,0,x,y,image_xscale,image_y

scale,image_angle,c_white,1) }

Quote:
Information about object: o_mine

Sprite: s_mine

Solid: false

Visible: true

Depth: -3

Persistent: false

Parent: o_object_parent

Mask: <same as sprite>

Create Event:

execute code:

h = create_body(x,y,0.5,SHAPE_BOX,sprite_width,sprite_

height);

set_body_collide_ext(h);

obj = object_index;

image_speed = 0.2;

radius = 200; //Bomb detection and explosion radius

damage = 38; //Amount of damage the mine makes

soundTimer = 0;

soundInterval = 75;

sndTimer = global.snd_minetimer;

sndBoom = global.snd_mineexplode;

Destroy Event:

execute code:

sc_explode(x, y, radius, damage, sndBoom)

Alarm Event for alarm 0:

execute code:

instance_destroy();

End Step Event:

execute code:

if instance_exists(o_player)

{

if !(room = rm_editor)

{

//Check if player is close, so it can explode:

if (distance_to_object(o_player) < radius) and (alarm[0] = -1)

{

alarm[0] = room_speed * 1.7;

image_blend = c_red;

soundInterval = 10;

soundTimer = 10;

}

//Play constant beeping sound:

if (soundTimer = 0)

{

FMODSoundPlay3d(sndTimer,x,y);

soundTimer = soundInterval;

}

else

{

soundTimer -= 1;

}

}

}

As I said, everything works _except_ mines (when they are created at room start).

The sprite of the mine is about 40x15 or so.

Block is 64x64.

Anyone have a clue???

Here is the GMC topic: http://gmc.yoyogames.com/index.php?showtopic=400670

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

In other news, here is a song:

http://willhostforfood.com/users/Mordi/Mordi%20-%20I%20Should%20Have%20Told%20You%20[Noisy%20Pillars].mp3

Remix of a C64 chiptune.

Comments

Juju 16 years, 11 months ago

Is the code for the mines exactly the same as that for the weapons?

Mordi 16 years, 11 months ago

It's almost exactly the same. As for the physics-handling, they are identical.

Castypher 16 years, 11 months ago

Ask marbs about GMPhysics, he's one of the best people I know.

But remember that currently, there isn't a compatible GMPhysics DLL for GM7, unless I'm a bit out of date. Since everyone states how much they hate GM7, I'm going to assume you're using 6, in which case you talk to marbs.

But unfortunately, I think marbs said something about taking a break from 64Digits. You might not find him around.

Mordi 16 years, 11 months ago

I'm using the DLL with GM7. Seems to work perfectly, except for this little bug… =(

Juju 16 years, 11 months ago

Aaah right, that'd explain it. If you're using Windows XP, I'd thoroughly recommend using GM6.1 instead as the current GMPhysics engine for GM7 lacks a great number of features and documentation.

Mordi 16 years, 11 months ago

DOH! There's no way to reverse.

Unless there is some sort of GM7 to GM6 converter?

Mordi 16 years, 11 months ago

"THIS BLOG HAS BEEN TAGGED:

Please refrain from being rude to other members. Failure to follow this rule will result in penalties."

What the heck? The mods around here are _really_ immature…

flashback 16 years, 11 months ago

Don't delete staff posts.

Mordi 16 years, 11 months ago

Even when the post is totally unecessary?

Why don't you disable the option to do so if you don't want me to do it? :/

flashback 16 years, 11 months ago

If you want serious help, you don't post on a general blog site for it, because you will get people making jokes.

Because we trust people to have an IQ over 40.