Projectile Shooting... STILL -.-* 
	 
	
		| Author | 
		Message | 
	 
		 
		Alex C.
 
 
 
    
		 | 
		
		
			
				  Posted: Wed Jan 18, 2012 12:57 pm    Post subject: Projectile Shooting... STILL -.-*  | 
	
				
				 | 
			 
			 
				
  | 
			 
			
				Sigh... I STILL can't figure out how to shoot a projectile   ... I have looked through several help topics with minimal sucess and I just dont understand how to make my object shoot... please help
 
 
oh, I'm using 4.1
 
 
	  | Turing: | 	 		  
View.Set ("nobuttonbar,offscreenonly")
colorback (30)
var shipx, shipy  : int := 0
var font1  : int := Font.New ("verdana:12")
var ship  : int := Pic.FileNew ("Cargo_Ship.gif")
var BULLET  : int := Pic.FileNew ("Bullets.gif")
var chars  : array char of boolean
var Bullets  : int := 1
var Bulletx, Bullety  : flexible array 1 ..  10 of int
var BulletCount  : int := 0
var Reloading  : int := 0
var x, y  : array 1 ..  10 of int
for i  : 1 ..  10
    x  (i ) := maxx div 2
end for
for i  : 1 ..  10
    y  (i ) := 15
end for
loop
    Input.KeyDown (chars )
    if chars  (KEY_UP_ARROW) then
        shipy  := shipy +  3
    end if
    if chars  (KEY_RIGHT_ARROW) then
        shipx  := shipx +  3
    end if
    if chars  (KEY_LEFT_ARROW) then
        shipx  := shipx -  3
    end if
    if chars  (KEY_DOWN_ARROW) then
        shipy  := shipy -  3
    end if
    if chars  (chr (27)) then
        ` close (1)
    end if
    if chars  (' ') and Reloading  = 0 then
        if Bullets  mod 2 = 0 then     
            for i  : -Bullets  .. Bullets  by 2
                if i  not=  0 then
                    BulletCount + = 1
                    Bulletx  (BulletCount ) := x  (1) + i  * 4
                    Bullety  (BulletCount ) := y  (1) -  abs (i ) * 5
                    Reloading  := 20
                end if
            end for
        else
            for i  : -Bullets  div 2 .. Bullets  div 2
                BulletCount + = 1
                Bulletx  (BulletCount ) := x  (1) + i  * 8
                Bullety  (BulletCount ) := y  (1) -  round (abs (i ) * 2. 5)
                Reloading  := 20
            end for
        end if
        if Reloading >  0 then
            Reloading - = 1
        end if
    end if
    if shipx <=  0 then
        shipx + = 3
    end if
    if shipx >=  maxx -  100 then
        shipx - = 3
    end if
    if shipy <=  0 then
        shipy + = 3
    end if
    if shipy >=  maxy -  100 then
        shipy - = 3
    end if
    Font.Draw ("Use the arrow keys to move the ship,", 5,  maxy -  30, font1,  brightblue)
    Font.Draw ("and press ESC to exit", 5,  maxy -  48, font1,  brightblue)
    Pic.Draw (ship, shipx, shipy,  2)
    for q  : 1 ..  max (BulletCount,  1)
        if q <= BulletCount  then
            for decreasing i  : 10 ..  0
                Pic.Draw (BULLET, Bulletx  (q ), Bullety  (q ), 2)
            end for
            %Bullety (q) += 10 div dash
            if Bullety  (q ) >=  maxy then
                Bulletx  (q ) := Bulletx  (BulletCount )
                Bullety  (q ) := Bullety  (BulletCount )
                Bullety  (q ) + = 10
                BulletCount - = 1
            end if
        end if
    end for
    delay (10)
    View.Update
    cls
end loop
  | 	  
 
 
Please specify what version of Turing you are using
 
<Answer Here> | 
			 
			
				 | 
			 
		  | 
	 
	 
		 | 
		
		 | 
	 
	  
		  | 
	 
		 
		Sponsor Sponsor 
		 
  
		 | 
		
 | 
	 
	 
		  | 
	 
				 
		Alex C.
 
 
 
    
		 | 
		
		
			
				  Posted: Thu Jan 19, 2012 8:47 am    Post subject: RE:Projectile Shooting... STILL -.-*  | 
	
				
				 | 
			 
			 
				
  | 
			 
			
				| um... help please? | 
			 
			
				 | 
			 
		  | 
	 
	 
		 | 
		
		 | 
	 
	  
		  | 
	 
				 
		Alex C.
 
 
 
    
		 | 
		
		
			
				  Posted: Thu Jan 19, 2012 9:01 am    Post subject: RE:Projectile Shooting... STILL -.-*  | 
	
				
				 | 
			 
			 
				
  | 
			 
			
				  | 
			 
			
				 | 
			 
		  | 
	 
	 
		 | 
		
		 | 
	 
	  
		  | 
	 
				 
		Raknarg
 
  
 
    
		 | 
		
		
			
				  Posted: Thu Jan 19, 2012 10:42 am    Post subject: RE:Projectile Shooting... STILL -.-*  | 
	
				
				 | 
			 
			 
				
  | 
			 
			
				| Ok. So explain to me the logic behind how you're shooting the bullets. | 
			 
			
				 | 
			 
		  | 
	 
	 
		 | 
		
		 | 
	 
	  
		  | 
	 
				 
		Alex C.
 
 
 
    
		 | 
		
		
			
				  Posted: Thu Jan 19, 2012 12:20 pm    Post subject: Re: Projectile Shooting... STILL -.-*  | 
	
				
				 | 
			 
			 
				
  | 
			 
			
				um... i'm sorry but i don't understand (i sorta fail at progrmming)
 
but i did figure out how to shoot  bullets in relation to my ship...
 
 
the problem is now i can't figure out how to erase it once it hits the maxy...
 
 
	  | Turing: | 	 		   
View.Set ("nobuttonbar,offscreenonly")
colorback (30)
var shipx, shipy  : int := 0
var font1  : int := Font.New ("bank_gothic:12")
var ship  : int := Pic.FileNew ("Cargo_Ship.gif")
var BULLET  : int := Pic.FileNew ("Bullets.gif")
var chars  : array char of boolean
var bullets  : int := 0
var bulletx  : flexible array 1 ..  3 of int 
var bullety  : flexible array 1 ..  3 of int 
var Reloading  : int := 20
var x, y  : array 1 ..  10 of int
for i  : 1 ..  10
    x  (i ) := maxx div 2
end for
for i  : 1 ..  10
    y  (i ) := 15
end for
loop
    Input.KeyDown (chars )
    if chars  (KEY_UP_ARROW) then
        shipy  := shipy +  3
    end if
    if chars  (KEY_RIGHT_ARROW) then
        shipx  := shipx +  3
    end if
    if chars  (KEY_LEFT_ARROW) then
        shipx  := shipx -  3
    end if
    if chars  (KEY_DOWN_ARROW) then
        shipy  := shipy -  3
    end if
    if chars  (chr (27)) then
        Window.Hide (defWinID )
    end if
    if chars  (' ') and Reloading >=  20 and bullets <  3
      then
        Reloading  := 0
        bullets + = 1
         bulletx  (bullets ) := shipx
 
        bullety  (bullets ) := shipy
         put bullets
     end if
    % Slight collison detection to make sure the ship is within boundaries
    if shipx <=  0 then
        shipx + = 3
    end if
    if shipx >=  maxx -  100 then
        shipx - = 3
    end if
    if shipy <=  0 then
        shipy + = 3
    end if
    if shipy >=  maxy -  100 then
        shipy - = 3
    end if
    Font.Draw ("Use the arrow keys to move the ship,", 5,  maxy -  30, font1,  brightblue)
    Font.Draw ("and press ESC to exit", 5,  maxy -  48, font1,  brightblue)
    Pic.Draw (ship, shipx, shipy,  2)
    % Moves your bullet forward
    if bullets >  0 then
        for i  : 1 .. bullets
 
            bullety  (i ) + = 5
        end for
    end if
    % Draws the bullet in relation to the ship
    put bullets
     if bullets >  0 then
        for b  : 1 .. bullets
             Pic.Draw (BULLET, bulletx  (b ) +  40, bullety  (b ) +  75,  2)
        end for
    end if
    % The reload counter with delay...
    Reloading + = 1
    delay (10)
    % Updates the scren then refreshes it...
    View.Update
    cls
end loop
  | 	 
  | 
			 
			
				 | 
			 
		  | 
	 
	 
		 | 
		
		 | 
	 
	  
		  | 
	 
				 
		Alex C.
 
 
 
    
		 | 
		
		
			
				  Posted: Thu Jan 19, 2012 1:09 pm    Post subject: RE:Projectile Shooting... STILL -.-*  | 
	
				
				 | 
			 
			 
				
  | 
			 
			
				never mind, i'm succesful!  
 
 
	  | Turing: | 	 		   
View.Set ("nobuttonbar,offscreenonly")
colorback (30)
var shipx, shipy  : int := 0
var font1  : int := Font.New ("bank_gothic:12")
var ship  : int := Pic.FileNew ("Cargo_Ship.gif")
var BULLET  : int := Pic.FileNew ("Bullets.gif")
var chars  : array char of boolean
var bullets  : array 1 ..  3 of boolean := init (false,  false,  false)
var bulletx  : array 1 ..  3 of int: = init (0,  0,  0)
var bullety  : array 1 ..  3 of int: = init (0,  0,  0)
var Reloading  : int := 20
var x, y  : array 1 ..  10 of int
for i  : 1 ..  10
    x  (i ) := maxx div 2
end for
for i  : 1 ..  10
    y  (i ) := 15
end for
loop
    Input.KeyDown (chars )
    if chars  (KEY_UP_ARROW) then
        shipy  := shipy +  3
    end if
    if chars  (KEY_RIGHT_ARROW) then
        shipx  := shipx +  3
    end if
    if chars  (KEY_LEFT_ARROW) then
        shipx  := shipx -  3
    end if
    if chars  (KEY_DOWN_ARROW) then
        shipy  := shipy -  3
    end if
    if chars  (chr (27)) then
        Window.Hide (defWinID )
    end if
    if chars  (' ') and Reloading >=  20 then
        if bullets  (1) = false then
            Reloading  := 0
            bullets  (1) := true
            bulletx  (1) := shipx
 
            bullety  (1) := shipy
         elsif bullets  (2) = false then
            Reloading  := 0
            bullets  (2) := true
            bulletx  (2) := shipx
 
            bullety  (2) := shipy
         elsif bullets  (3) = false then
            Reloading  := 0
            bullets  (3) := true
            bulletx  (3) := shipx
 
            bullety  (3) := shipy
         end if
    end if
    % Moves your bullet forward
    for i  : 1 ..  3
        if bullets  (i ) = true then
            bullety  (i ) + = 5
        end if
    end for
    % Slight collison detection to make sure the ship is within boundaries
    if shipx <=  0 then
        shipx + = 3
    end if
    if shipx >=  maxx -  100 then
        shipx - = 3
    end if
    if shipy <=  0 then
        shipy + = 3
    end if
    if shipy >=  maxy -  100 then
        shipy - = 3
    end if
    % Destroys the bullet if it is off screen
    for d  : 1 ..  3
        if bullety  (d ) >=  maxy then
            bullets  (d ) := false
        end if
    end for
    % LOLZ  :P
    Font.Draw ("Use the arrow keys to move the ship,", 5,  maxy -  30, font1,  brightblue)
    Font.Draw ("and press ESC to exit", 5,  maxy -  48, font1,  brightblue)
    Pic.Draw (ship, shipx, shipy,  2)
    % Draws the bullet in relation to the ship
    for b  : 1 ..  3
        if bullets  (b ) = true then
            Pic.Draw (BULLET, bulletx  (b ) +  40, bullety  (b ) +  70,  2)
        end if
    end for
    % The reload counter with delay...
    Reloading + = 2
    delay (10)
    % Updates the scren then refreshes it...
    View.Update
    cls
end loop
  | 	 
  | 
			 
			
				 | 
			 
		  | 
	 
	 
		 | 
		
		 | 
	 
	  
		  | 
	 
				 
		Beastinonyou
 
  
 
    
		 | 
		
		
			
				  Posted: Thu Jan 19, 2012 1:10 pm    Post subject: Re: Projectile Shooting... STILL -.-*  | 
	
				
				 | 
			 
			 
				
  | 
			 
			
				Wouldn't it be as simple as:
 
 
	  | Turing: | 	 		  
if bulletX <=  maxx or bulletY <=  maxy then  % Depending which you're checking X/Y
     % Continue drawing bullet
end if
% If the bullet's coordinates exceed the maximum, it shouldn't be drawing that bullet
  | 	 
  | 
			 
			
				 | 
			 
		  | 
	 
	 
		 | 
		
		 | 
	 
	  
		  | 
	 
				 
		 | 
	 
 
	
	
	 
	
	 |