Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.21 KB | None | 0 0
  1. '-1 = 65535
  2.  
  3. spriteA = AddSprite(1,1) 'jogador
  4. PropSprite spriteA,65,0
  5.  
  6. spriteB = AddSprite(1,1) 'inimigo
  7. PropSprite spriteB,66,0
  8.  
  9. spriteP = AddSprite(1,1) 'projetil
  10. PropSprite spriteP,3,0
  11.  
  12. '''posicao inicial do jogador A
  13. jogadorX = 100
  14. jogadorY = 150
  15.  
  16. '''posicao inicial do inimigo B
  17. inimigoX = 200
  18. inimigoY = 100
  19.  
  20. '''posicao do projetil disparado por B
  21. projetilX = 0
  22. projetilY = 0
  23.  
  24. '''gatilho pra disparar o projetil
  25. dispara = 0
  26.  
  27.  
  28. Do
  29.  
  30. '''''''''''''''''''''''''''''''''''''
  31. jj = j
  32. j = JoyPad(0) 'controle do jogador A
  33.  
  34. eixoX = j.3-j.2
  35. eixoY = j.1-j.0
  36.  
  37. jogadorX+=eixoX
  38. jogadorY+=eixoY
  39. '''''''''''''''''''''''''''''''''''''
  40.  
  41. '''''''''''''''''''''''''''''''''''''
  42. jjB = jB
  43. jB = JoyPad(1) 'controle do jogador B
  44.  
  45.  
  46. eixoXb = jB.3-jB.2
  47. eixoYb = jB.1-jB.0
  48.  
  49. inimigoX+=eixoXb
  50. inimigoY+=eixoYb
  51. '''''''''''''''''''''''''''''''''''''
  52.  
  53. 'se o projetil nao foi disparado (ou chegou no ponto final), dispara ele
  54. If dispara = 0 Then
  55. dispara = 1
  56.  
  57. projetilX = inimigoX
  58. projetilY = inimigoY
  59.  
  60. dXa = inimigoX - jogadorX
  61. dYa = inimigoY - jogadorY
  62.  
  63. dXa = valorAbsoluto(dXa)
  64. dYa = valorAbsoluto(dYa)
  65.  
  66. 'determina o valor que se acrescenta no X a depender da posicao do jogador e inimigo
  67. If inimigoX = jogadorX Then
  68. xInc = 0
  69. ElseIf inimigoX > jogadorX Then
  70. xInc = -1
  71. ElseIf inimigoX < jogadorX Then
  72. xInc = 1
  73. EndIf
  74.  
  75. 'determina o valor que se acrescenta no Y a depender da posicao do jogador e inimigo
  76. If inimigoY = jogadorY Then
  77. yInc = 0
  78. ElseIf inimigoY > jogadorY Then
  79. yInc = -1
  80. ElseIf inimigoY < jogadorY Then
  81. yInc = 1
  82. EndIf
  83.  
  84. 'INICIO DO ALGORITMO DE BRESENHAM PARA FAZER O PROJETIL ANDAR
  85. erro = dXa - dYa
  86. erroTemp = dXa - dYa
  87.  
  88. ElseIf dispara = 1 Then
  89.  
  90. 'PRIMEIRO PASSO DO ALGORITMO
  91. eXY = erro
  92. eX = erro + dYa
  93. eY = erro - dXa
  94.  
  95. tempX = eX + eXY
  96.  
  97. If (tempX < 32767) Then
  98. projetilX+=xInc
  99.  
  100. erroTemp-=dYa
  101.  
  102. EndIf
  103.  
  104. tempY = eY + eXY
  105.  
  106. If (tempY > 32767) Then
  107. projetilY+=yInc
  108.  
  109. erroTemp+=dXa
  110.  
  111. EndIf
  112.  
  113. erro = erroTemp
  114.  
  115. dispara = 2
  116.  
  117. ElseIf dispara >= 2 Then
  118.  
  119. 'PASSO DE RECORRENCIA DO ALGORITMO
  120. eXY = erro + dXa - dYa
  121. eX = erro + dYa
  122. eY = erro - dXa
  123.  
  124. tempX = eX + eXY
  125.  
  126. If (tempX < 32767) Then
  127.  
  128. projetilX+=xInc
  129.  
  130. erroTemp-=dYa
  131.  
  132. EndIf
  133.  
  134. tempY = eY + eXY
  135.  
  136. If (tempY > 32767) Then
  137. projetilY+=yInc
  138.  
  139. erroTemp+=dXa
  140.  
  141. EndIf
  142.  
  143. erro = erroTemp
  144.  
  145.  
  146. EndIf
  147.  
  148. 'se o projetil fica fora do campo de visao da tela, redispara ele
  149. If (projetilX > 320 Or projetilX < 4 Or projetilY < 4 Or projetilY > 224) Then
  150. dispara = 0
  151. EndIf
  152.  
  153.  
  154. MoveSprite spriteP,projetilX+128,projetilY+128
  155. MoveSprite spriteA,jogadorX+128,jogadorY+128
  156. MoveSprite spriteB,inimigoX+128,inimigoY+128
  157.  
  158. Sleep 1
  159.  
  160. Loop
  161.  
  162. 'funcao valor absoluto
  163. Declare Function valorAbsoluto(teste As Integer)
  164.  
  165. If teste > 32767 Then
  166. valor = teste*(-1)
  167. valor-=1
  168. Return valor
  169. Else
  170. valor = teste
  171. Return valor
  172. EndIf
  173.  
  174. End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement