newbie question...
Blitz3D Forums/Blitz3D Beginners Area/newbie question...| 
 | ||
| well this might seem like a very newbie question... but I just started 2 days ago with some book I bought. Graphics 300,400,0,2 Type luis Field x,y Field image Field dirx End Type Global player.luis = New luis player\image = LoadImage ("pingui.bmp") ScaleImage player\image,.20,.20 While Not KeyDown(1) Cls DrawImage player\image,player\x,player\y testpingui() player\x = player\x + player\dirx Flip Wend Function testpingui() player\x = 100 player\y = 100 player\dirx = Rand (-1,1) If player\x < 0 Or player\x > 290 player\dirx = -player\dirx EndIf End Function All i want is to make this image move right and left , and when it gets out of screen , reverse direction, but all i get is the image shaking or something , whats up with that!!! any help plz. | 
| 
 | ||
| I think the "player\dirx = Rand (-1,1)" is the reason.  You're calling this every loop, so the direction is getting reset every frame, which would cause shaking (assuming the random number didn't somehow turn up 1 the whole time). | 
| 
 | ||
| Ok here is a working version with as little alteration as possible 
Graphics 300,400,0,2 
Type luis 
Field x,y 
Field image 
Field dirx 
End Type 
Global player.luis = New luis 
player\image = LoadImage ("pingui.bmp") 
ScaleImage player\image,.20,.20 
;position pingui and set the start direction here
player\x = 100 
player\y = 100 
player\dirx = 1 
While Not KeyDown(1) 
Cls 
DrawImage player\image,player\x,player\y 
testpingui() 
player\x = player\x + player\dirx 
Flip 
Wend 
Function testpingui() 
If player\x < 0 Or player\x > 290 
player\dirx = -player\dirx 
EndIf 
End Function 
Note that Rand(-1,1) might have returned 0 and so resulted in no movement at all. | 
| 
 | ||
| You also forgot to set the BackBuffer. Enter this below the Graphics command: SetBuffer BackBuffer() | 
| 
 | ||
| Could be using BlitzPlus, which doesn't require to set it...i think :) | 
| 
 | ||
| thx !=) |