My IF won't work
Blitz3D Forums/Blitz3D Beginners Area/My IF won't work
| ||
| HEEELP! My IF won't work! I am trying to make a simple "camera floating" effect. When the camera's height reaches a certain level, it's supposed to come back down, but nothing's happenning. Here's my code
Graphics3D 800,600
SetBuffer BackBuffer()
cam = CreateCamera()
PositionEntity cam,0,0.6,0
plane = CreatePlane()
ptex = LoadTexture("bluesky2.bmp")
ScaleTexture ptex,1200,1200
EntityTexture plane,ptex
FreeTexture ptex
gravity#=0.5
cam_grav#=-0.5
While Not KeyDown(1)
MoveEntity cam,0,gravity#,0
If EntityY(cam,1)=100 Then gravity#=-0.5
UpdateWorld
RenderWorld
Text 0,0, Str(EntityY(cam))
Text 0,40,Str(gravity#)
Flip
Wend
End
|
| ||
| Use Entityy( cam,1) >=100 then gravity# = -.5 Either that or start the camera at 0,.5,0 ... .6 is not a multiply of .5 so the ypos will never equal 100 Stevie |
| ||
| what about, gravityamount#=.5 while not keydown(1) ;update gravity gravity#=gravity#=+gravityamount# If EntityY(cam,1)>100 or EntityY(cam,1)<0 gravityamount#=-gravityamount# endif wend if i`ve typed it right your camera should float up until 100 then come back down till 0 then go up and so forth! plus u can alter the amount of gravity by using gravityamount varible. LKFX |
| ||
| 6 is not a multiply of .5 so the ypos will never equal 100 Even if he uses multiples, rounding errors may make the comparison fail when it is expected to succeed. I would only dare compare integers like that, using a range for floating point values instead (as with LKFX's code). EDIT: Eg http://www.blitzbasic.com/Community/posts.php?topic=25990&hl=floating%20point%20error |