| i am wokring on a simple pong game to get used to BMAX and OOP 
 when i run it all i get is a blank screen, can someone help me?
 
 
  Graphics 640,480
'this is a pong clone and my first game in BMAX
Global num_players = 1'the number of players
Global phase = 0'the current phase of the game
Global sup_phase = 0
Global paused = False
Global player_1_score
Global player_2_score
Type thing'this is the basic type for all objects in this game
	Field X,Y'my referrence for where the objects are
	Field speed_X,speed_Y
	Field dir
	Field width,height
	Field true_X,true_Y'ths drawing point of the rects
	Method draw()
		SetColor 255,255,255
		DrawRect(X,Y,width,height)
	End Method
End Type
Type bar Extends thing
	Field player
	Field speed
	Method controls()
		If num_players = 1
			If player = 1
				If KeyDown(KEY_UP)
					dir = 0
				ElseIf KeyDown(KEY_DOWN)
					dir = 1
				Else
					dir = 2
				EndIf
			ElseIf player = 2
				AI()
			EndIf
		ElseIf num_players = 2
			If player = 1'checks which player are you and sets up the controls
				If KeyDown(KEY_W)
					dir = 0
				ElseIf KeyDown(KEY_S)
					dir = 1
				Else
					dir = 2
				EndIf
			ElseIf player = 2
				If KeyDown(KEY_UP)
					dir = 0
				ElseIf KeyDown(KEY_DOWN)
					dir = 1
				Else
					dir = 2
				EndIf
			EndIf
		EndIf
	End Method
	Method move()'moves the bars
		If dir = 0
			X:+ speed
		ElseIf dir = 1
			X:- speed
		EndIf
	End Method
	Method AI()'this is for the AI of a pong padle
		If dot.X >= GraphicsWidth() / 3'makes sure the dut is close enough to care
			If dot.Y > Y - height - 15'then moves accordingly
				dir = 1
			ElseIf dot.Y < Y + height + 15
				dir = 0
			Else
				dir = 2
			EndIf
		EndIf
	End Method
	Function create_bar(which)'this function creates a new player bar
		Local newbar:bar
		newbar = New bar
		If which = 1
			newbar.player = 1
			newbar.X = 10
		ElseIf which = 2
			newbar.player = 2
			newbar.X = GraphicsWidth() - 10
		EndIf
		newbar.Y = GraphicsHeight() / 2
		newbar.speed = 5
		newbar.dir = 2
		newbar.width = 10
		newbar.height = 35
		newbar.true_X = newbar.X - (newbar.width / 2)
		newbar.true_Y = newbar.Y - (newbar.height / 2)
		ListAddLast(player_list,newbar)
	End Function
End Type
Type ball Extends thing
	Field RED,BLUE,GREEN
	Method physics()'this will check when the dot hits either a horizontail wall or a paddle and then move it
		X:+ speed_X
		Y:+ speed_Y
		If Y <= height + 3
			If speed_X >= 2
				speed_Y = Rand(2,6)
				speed_X = 8 - speed_Y
				speed_Y = -speed_Y
			ElseIf speed_X <= -2
				speed_Y = Rand(2,6)
				speed_X = 8 - speed_Y
				speed_X = -speed_X
				speed_Y = -speed_Y
			EndIf
		ElseIf Y >= GraphicsHeight() - height + 3
			If speed_X >= 2
				speed_Y = Rand(2,6)
				speed_X = 8 - speed_Y
			ElseIf speed_X <= -2
				speed_Y = Rand(2,6)
				speed_X = 8 - speed_Y
				speed_X = -speed_X
			EndIf
		EndIf
			For Local players:bar = EachIn player_list
				If RectsOverlap(X,Y,width,height,players.X,players.Y,players.width,players.height)
					If players.player = 1
						If speed_Y >= 2
							speed_X = Rand(2,6)
							speed_Y = 8 - speed_X
						ElseIf speed_Y <= -2
							speed_X = Rand(2,6)
							speed_Y = 8 - speed_X
							speed_Y = -speed_Y
						EndIf
					EndIf
				EndIf
			Next
	End Method
	Method score()
		If X <= -height
			player_1_score:+ 1
		ElseIf X >= GraphicsWidth() + height
			player_2_score:+ 1
		EndIf
	End Method
End Type
Global player_list:TList = CreateList()
For num = 1 To 2
	bar.create_bar(num)'this loop creates the 2 player bars
Next
Global dot:ball
dot = New ball
dot.X = GraphicsWidth() / 2
dot.Y = GraphicsHeight() / 2
dot.speed_Y = Rand(2,6)
dot.speed_X = 8 - dot.speed_Y
dot.width = 10
dot.height = 10
dot.true_X = dot.X - dot.width
dot.true_Y = dot.Y - dot.height
While Not KeyHit(KEY_ESCAPE)
		If paused = False
			If KeyHit(KEY_P) Then paused = True
			For Local player:bar = EachIn player_list
				player.move()
				player.controls()
				player.draw()
			Next
			dot.physics()
			dot.score()
			dot.draw()
		ElseIf paused = True
			If KeyHit(KEY_P) Then paused = False
			For Local player_B:bar = EachIn player_list
				player_B.draw()
			Next
			dot.draw()
			dot.score()
		EndIf
Wend
Function RectsOverlap:Int(x0, y0, w0, h0, x2, y2, w2, h2)
    If x0 > (x2 + w2) Or (x0 + w0) < x2 Then Return False
    If y0 > (y2 + h2) Or (y0 + h0) < y2 Then Return False
    Return True
End Function
 
 |