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:
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