Here is a Shorter Version of my Question Below
BlitzPlus Forums/BlitzPlus Programming/Here is a Shorter Version of my Question Below| 
 | ||
| Here's a shorter version of my question so that there isn't as much to sift through (I hope). I was trying to make  it so that when the player gets to the ORBE character, it pushes the ORBE in which ever direction the player is going. But, I ran into some problems. 1) When the player goes up, the ORBE goes up when the player has NOT collided with the ORBE. 2) The ORBE is not colliding at all, even when I have the "ImageCollide" commands in it 3) My problems actually started when I put in the following command: If (o <> Null) Then DrawImage (ORBE,(b\x + o\x),o\y) EndIf Maybe I did something wrong here or I didn't put it in right. I hope that I could get help with this. Below, inside the code, I commented where I think the problems are located so that they could be more easily found. Thanks! 
Graphics 900, 900
SetBuffer BackBuffer()
;Loading images
 
EATUM = LoadImage ("Eatum.png") 
ORBE = LoadImage("Orbe.png")
BACKGROUND =  LoadImage("Clouds.jpg")
;Setting up the image types
Type EATUM
Field x,y
End Type 	
Type ORBE
	Field x,y
End Type 
Type BACKGROUND
	
	Field x,y
	Field image
	
	
End Type 
;giving the images a shorter name and telling their locations
e.EATUM= New EATUM
e\x = 70
e\y = 200
o.ORBE = New ORBE
o\x = 100
o\y = -200
b.BACKGROUND = New BACKGROUND
b\x = -500
b\y = 20
b\image = BACKGROUND 
While Not KeyDown (1)  
Cls
		
		
TileImage (b\image,b\x,b\y)
;this moves the player to the left and if the player runs into the ORBE, 
;the ORBE is supposed to be pushed to the left
If KeyDown(203)
b\x = b\x + 4
 
	If (o <> Null) Then
	
	
			If ImagesCollide(EATUM, e\x, e\y,0,ORBE, o\x, o\y,0) Then 
			
			o\x = o\x - 3
			EndIf 
	EndIf
	
EndIf
	
;this moves the player to the right and if the player runs into the 
;ORBE, the ORBE is supposed to be pushed to the rght
If KeyDown(205)
 
b\x = b\x - 4
 
	If (o <> Null) Then
	
		If ImagesCollide(EATUM,e\x,e\y,0,ORBE,o\x,o\y,0) Then 
				
			 o\x = o\x + 3
	
	
	
		EndIf 
	EndIf
EndIf 
;Here's one of the problems that I've had. I was trying to make it so 
;that when the player collides with the ORBE, the ORBE goes 
;up when  the player collides with it. But, the problem is that when 
;the player goes up and gets to a certain proximity to the ORBE, the 
;ORBE goes up at a time when the player HAS NOT collided with it. So 
;thus, I was wondering what am I doing wrong here. Gosh, computers 
;do some strange things...
If KeyDown(200)
 e\y = e\y - 3
	If (o <> Null) Then
		If ImagesCollide(EATUM,e\x,e\y,0,ORBE, o\x,o\y,0) Then 
		
			 o\y = o\y - 3
 
		EndIf 
	EndIf
	
EndIf 	
			
;this moves the player down and if the player runs into the ORBE 
;while going down, the ORBE is supposedly to be pushed down.
If KeyDown(208) 
e\y = e\y + 3
	If (o <> Null) Then
		If ImagesCollide(EATUM,e\x,e\y,0,ORBE, o\x,o\y,0) Then
		
			  o\y = o\y + 3
		EndIf 
	EndIf 
	
EndIf 
;here's where another problem lies. Here, I was trying to make it so 
;that the player has to actually get to the ORBE in order
;to push it. But, it won't collide at all even though I put in 
;the "ImagesCollide" command. And once again, when the player 
;pushes the up button, when it gets to a certain PROXIMITY to the 
;ORBE, the ORBE may moves up when the player HASN'T collided with
;it. Thus, how do I fix this. Thanks
If (o <> Null) Then
	
			DrawImage (ORBE,(b\x + o\x),o\y) 
EndIf 
DrawImage (EATUM,e\x,e\y)
	
	
	Flip
Wend 				
 |