EntityParent and the dissapearing Entity !!!

Blitz3D Forums/Blitz3D Programming/EntityParent and the dissapearing Entity !!!

BODYPRINT(Posted 2003) [#1]
Hi,

I'm having trouble using the EntityParent command with my Types.

I have 2 types defined :-

Type planet
Field olddist
Field entity
Field scale
End Type

Type bullet
Field entity
Field stage
Field speed
End Type

And I have template sprite for the bullets:-

flare=LoadSprite("bullet.bmp",3)

When I hit the Mouse button, I create a new bullet type:-

If MouseHit(1) And mult=0 Then
ship.bullet=New bullet
ship\entity=CopyEntity(flare)
ship\stage=1
EntityType ship\entity,BULLET_COL
EntityRadius ship\entity,5
PositionEntity ship\entity,EntityX(cam),EntityY(cam),EntityZ(cam)
RotateEntity ship\entity,EntityPitch(cam),EntityYaw(cam),EntityRoll(cam)
ship\speed=acc+30
End If

Pretty Straight forward so far. When the bullet hits a planet though I want to attatch the bullet to the planet so that my "explosion" rotates with the planets rotation.

My collision code looks like this:-

For ship.bullet=Each bullet

If ship\stage=1 Then
MoveEntity ship\entity,0,0,ship\speed
hit=EntityCollided (ship\entity,PLANET_COL)
If hit Then
ship\stage=2
ship\speed=1
EntityParent ship\entity,hit,1
ElseIf EntityDistance(ship\entity,cam)>40000 Then
ship\stage=4
End If
End If

If ship\stage=2 Then
ship\speed=ship\speed+1
ScaleSprite ship\entity,ship\speed,ship\speed
If ship\speed=200 Then ship\stage=3
End If

If ship\stage=3 Then
ship\speed=ship\speed-1
ScaleSprite ship\entity,ship\speed,ship\speed
If ship\speed=0 Then ship\stage=4
End If

If ship\stage=4 Then
FreeEntity ship\entity
Delete ship
End If
Next

Stage 1:- Checks for A Planet Collision or Distance.
Variable "hit" contains the handle of the planet.
EntityParent then assigns hit as the bullet parent.

Stage 2:- Uses the bullet speed field as a sprite scale variable as the bullet is now stationary.
When it gets to the ScaleSprite command I get an "Entity Does Not Exist error!"

When I omit the EntityParent command everything works fine, I just don't get the rotation with the planet.

Can anybody plaese explain why the EntityParent command is removing my sprite entity?

Sorry about my post...How do u add those pretty code boxes?
:-)

Thanks
Phil.


BODYPRINT(Posted 2003) [#2]
Never mind.

The problem seems to be in my LOD function.

When the planets were further away I was swapping them for lower quality spheres for speed.

Somewhere in the process the entity handles must be getting screwed up.

I Will stick to fixed planets for now and tackle the LOD again when my brain has recovered.

Now for constant game speed !!!!
YIPPEE this is fun !!!

Phil.

P.S. I'd still like to know how to put code in the boxes in the forum please.


Shambler(Posted 2003) [#3]
Certainly its [ code ] 'your code here' followed by [ / code ]

leave the spaces out though.



BODYPRINT(Posted 2003) [#4]

Thanks Shambler