Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '-1 = 65535
- spriteA = AddSprite(1,1) 'jogador
- PropSprite spriteA,65,0
- spriteB = AddSprite(1,1) 'inimigo
- PropSprite spriteB,66,0
- spriteP = AddSprite(1,1) 'projetil
- PropSprite spriteP,3,0
- '''posicao inicial do jogador A
- jogadorX = 100
- jogadorY = 150
- '''posicao inicial do inimigo B
- inimigoX = 200
- inimigoY = 100
- '''posicao do projetil disparado por B
- projetilX = 0
- projetilY = 0
- '''gatilho pra disparar o projetil
- dispara = 0
- Do
- '''''''''''''''''''''''''''''''''''''
- jj = j
- j = JoyPad(0) 'controle do jogador A
- eixoX = j.3-j.2
- eixoY = j.1-j.0
- jogadorX+=eixoX
- jogadorY+=eixoY
- '''''''''''''''''''''''''''''''''''''
- '''''''''''''''''''''''''''''''''''''
- jjB = jB
- jB = JoyPad(1) 'controle do jogador B
- eixoXb = jB.3-jB.2
- eixoYb = jB.1-jB.0
- inimigoX+=eixoXb
- inimigoY+=eixoYb
- '''''''''''''''''''''''''''''''''''''
- 'se o projetil nao foi disparado (ou chegou no ponto final), dispara ele
- If dispara = 0 Then
- dispara = 1
- projetilX = inimigoX
- projetilY = inimigoY
- dXa = inimigoX - jogadorX
- dYa = inimigoY - jogadorY
- dXa = valorAbsoluto(dXa)
- dYa = valorAbsoluto(dYa)
- 'determina o valor que se acrescenta no X a depender da posicao do jogador e inimigo
- If inimigoX = jogadorX Then
- xInc = 0
- ElseIf inimigoX > jogadorX Then
- xInc = -1
- ElseIf inimigoX < jogadorX Then
- xInc = 1
- EndIf
- 'determina o valor que se acrescenta no Y a depender da posicao do jogador e inimigo
- If inimigoY = jogadorY Then
- yInc = 0
- ElseIf inimigoY > jogadorY Then
- yInc = -1
- ElseIf inimigoY < jogadorY Then
- yInc = 1
- EndIf
- 'INICIO DO ALGORITMO DE BRESENHAM PARA FAZER O PROJETIL ANDAR
- erro = dXa - dYa
- erroTemp = dXa - dYa
- ElseIf dispara = 1 Then
- 'PRIMEIRO PASSO DO ALGORITMO
- eXY = erro
- eX = erro + dYa
- eY = erro - dXa
- tempX = eX + eXY
- If (tempX < 32767) Then
- projetilX+=xInc
- erroTemp-=dYa
- EndIf
- tempY = eY + eXY
- If (tempY > 32767) Then
- projetilY+=yInc
- erroTemp+=dXa
- EndIf
- erro = erroTemp
- dispara = 2
- ElseIf dispara >= 2 Then
- 'PASSO DE RECORRENCIA DO ALGORITMO
- eXY = erro + dXa - dYa
- eX = erro + dYa
- eY = erro - dXa
- tempX = eX + eXY
- If (tempX < 32767) Then
- projetilX+=xInc
- erroTemp-=dYa
- EndIf
- tempY = eY + eXY
- If (tempY > 32767) Then
- projetilY+=yInc
- erroTemp+=dXa
- EndIf
- erro = erroTemp
- EndIf
- 'se o projetil fica fora do campo de visao da tela, redispara ele
- If (projetilX > 320 Or projetilX < 4 Or projetilY < 4 Or projetilY > 224) Then
- dispara = 0
- EndIf
- MoveSprite spriteP,projetilX+128,projetilY+128
- MoveSprite spriteA,jogadorX+128,jogadorY+128
- MoveSprite spriteB,inimigoX+128,inimigoY+128
- Sleep 1
- Loop
- 'funcao valor absoluto
- Declare Function valorAbsoluto(teste As Integer)
- If teste > 32767 Then
- valor = teste*(-1)
- valor-=1
- Return valor
- Else
- valor = teste
- Return valor
- EndIf
- End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement