Style Jezzball game

Blitz3D Forums/Blitz3D Beginners Area/Style Jezzball game

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

Hi! I'm trying to make a Jezzball clone but i'm stuck with a problem, i really don't know how to create the rectangles...
My code is below:
AppTitle "Jezzball Clone v 0.2"
Graphics 800,600,16,2
SetBuffer BackBuffer()

; Constantes para o teclado
Const botaoEsquerdo = 1
Const botaoDireito = 2

; Variáveis de ajuda
Global podeCriarLinhas = True ; só pode criar uma linha por vez !
Const velocidadeLinha = 1

; definindo um tipo para o cursor
Type CURSOR
	Field x ; posição no eixo x do cursor
	Field y ; posição no eixo y do cursor
	Field altura ; altura do cursor
	Field largura ; largura do cursor
End Type

; definindo paredes
Type PAREDE
	Field x ; x da parede
	Field y ; y da parede
	Field altura ; altura da parede
	Field largura ; largura da parede
End Type

; definindo tipo pra linhas
Type LINHA_HORIZONTAL
	Field x ; posição x da linha
	Field xFim ; fim do x da linha
	Field y ; posição y da linha
	Field yFim ; fim do y da linha
End Type

Type LINHA_VERTICAL
	Field x ; posição x da linha
	Field xFim ; fim do x da linha
	Field y ; posição y da linha
	Field yFim ; fim do y da linha
End Type

; Criação do cursor
cursor.CURSOR = New CURSOR
cursor\x = 320
cursor\y = 240
cursor\altura = 4
cursor\largura = 4

; Criação das paredes
paredePrincipal.PAREDE = New PAREDE
paredePrincipal\x = 220
paredePrincipal\y = 20
paredePrincipal\altura = 560
paredePrincipal\largura = 560

; LOOP!
While Not KeyHit(1)
Cls
	
	; Movimentação do cursor
	cursor\x = MouseX()
	cursor\y = MouseY()
	
	; Criando linhas	
	If (MouseHit(botaoEsquerdo) And podeCriarLinhas = True) And ((MouseX() > paredePrincipal\x) And (MouseX() < paredePrincipal\y + paredePrincipal\altura)) And ((MouseY() > paredePrincipal\y) And (MouseY() < paredePrincipal\x + paredePrincipal\largura))
		linhaH.LINHA_HORIZONTAL = New LINHA_HORIZONTAL
		linhaH\x = MouseX()
		linhaH\xFim = MouseX()
		linhaH\y = MouseY()
		linhaH\yFim = MouseY()
	EndIf

	If (MouseHit(botaoDireito) And podeCriarLinhas = True) And ((MouseX() > paredePrincipal\x) And (MouseX() < paredePrincipal\y + paredePrincipal\altura)) And ((MouseY() > paredePrincipal\y) And (MouseY() < paredePrincipal\x + paredePrincipal\largura))
		linhaV.LINHA_VERTICAL = New LINHA_VERTICAL
		linhaV\x = MouseX()
		linhaV\xFim = MouseX()
		linhaV\y = MouseY()
		linhaV\yFim = MouseY()
	EndIf
	
	; Var para criação de linhas
	podeCriarLinhas = True
	
	; Desenhando linha horizontal
	For linhaH = Each LINHA_HORIZONTAL
		If (linhaH\x > paredePrincipal\x)
			linhaH\x = linhaH\x - velocidadeLinha
			podeCriarLinhas = False ; ainda ta desenhando alguma linha
		EndIf
		If (linhaH\xFim < paredePrincipal\y + paredePrincipal\altura)
			linhaH\xFim = linhaH\xFim + velocidadeLinha
			podeCriarLinhas = False ; ainda ta desenhando alguma linha
		EndIf
		Line linhaH\x,linhaH\y,linhaH\xFim,linhaH\yFim
	Next
	
	; Desenhando linha vertical
	For linhaV = Each LINHA_VERTICAL
		If (linhaV\y > paredePrincipal\y)
			linhaV\y = linhaV\y - 1
			podeCriarLinhas = False ; ainda ta desenhando alguma linha
		EndIf
		If (linhaV\yFim < paredePrincipal\x + paredePrincipal\largura)
			linhaV\yFim = linhaV\yFim + 1
			podeCriarLinhas = False ; ainda ta desenhando alguma linha
		EndIf
		Line linhaV\x,linhaV\y,linhaV\xFim,linhaV\yFim
	Next
		
	; Desenhando cursor
	Rect cursor\x,cursor\y,cursor\largura,cursor\altura,1

	; Desenhando parede principal
	Rect paredePrincipal\x,paredePrincipal\y,paredePrincipal\largura,paredePrincipal\altura,0
	
	debug()
	
Flip
Wend

Function debug()
	Text 10,10,"MouseX: "+MouseX()
	Text 10,20,"MouseY: "+MouseY()
	Text 10,30,"Criar linhas? "+podeCriarLinhas
End Function