SHARE
TWEET

Untitled

a guest Oct 23rd, 2019 122 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top