Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 More than just 1 appear, and not all dispear after maxy
Index -> Programming, Turing -> Turing Help
Goto page Previous  1, 2
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
amz_best




PostPosted: Fri Sep 05, 2014 7:37 pm   Post subject: RE:More than just 1 appear, and not all dispear after maxy

Pic.Draw (bullet, bulletX (i), bulletY (i), picCopy)
It loads game but...
still no bullet appear, it always did apear before when only 1 bullet shot xD
Sponsor
Sponsor
Sponsor
sponsor
Zren




PostPosted: Fri Sep 05, 2014 7:56 pm   Post subject: RE:More than just 1 appear, and not all dispear after maxy

You've got a lot of other code in there (that you copy pasted) so I don't think you fully understand what they do.

So let's start from scratch, and only get the bullets working.


Game Loop
Turing:

View.Set ("offscreenonly")
initialize ()
loop
    % Input

    % Update

    % Draw Frame
    cls
    View.Update ()

    Time.DelaySinceLast (1000 div 10) % ~10 FPS
end loop




1 Bullet
Turing:

var bulletPicId := Pic.New(0, 0, 16, 16) % Pic.FileNew(...)

var bulletX : int
var bulletY : int

View.Set ("offscreenonly")
bulletX := 0
bulletY := 0
loop
    % Input

    % Update

    % Draw Frame
    cls
    Draw.FillBox(0, 0, maxx, maxy, black)
    Pic.Draw(bulletPicId, bulletX, bulletY, picMerge)
    View.Update ()

    Time.DelaySinceLast (1000 div 10) % ~10 FPS
end loop



10 Bullets (overlaping)

Turing:

var bulletPicId := Pic.New(0, 0, 16, 16) % Pic.FileNew(...)

var bulletX : array 1 .. 10 of int
var bulletY : array 1 .. 10 of int

View.Set ("offscreenonly")
for i : 1.. 10
    bulletX(i) := 0
    bulletY(i) := 0
end for
loop
    % Input

    % Update

    % Draw Frame
    cls
    Draw.FillBox(0, 0, maxx, maxy, black)
    for i : 1 .. 10
        Pic.Draw(bulletPicId, bulletX(i), bulletY(i), picMerge)
    end for
    View.Update ()

    Time.DelaySinceLast (1000 div 10) % ~10 FPS
end loop




Ship

Turing:

var bulletPicId := Pic.New(0, 0, 16, 16) % Pic.FileNew(...)
var shipPicId := Pic.New(0, 0, 16, 16) % Pic.FileNew(...)

var bulletX : array 1 .. 10 of int
var bulletY : array 1 .. 10 of int
var shipX : int
var shipY : int

View.Set ("offscreenonly")
for i : 1.. 10
    bulletX(i) := 0
    bulletY(i) := 0
end for
shipX := 0
shipY := 0
loop
    % Input

    % Update

    % Draw Frame
    cls
    Draw.FillBox(0, 0, maxx, maxy, black)
    Pic.Draw(shipPicId, shipX, shipY, picMerge)
    for i : 1 .. 10
        Pic.Draw(bulletPicId, bulletX(i), bulletY(i), picMerge)
    end for
    View.Update ()

    Time.DelaySinceLast (1000 div 10) % ~10 FPS
end loop



Basic Input. Move the ship

Turing:

var bulletPicId := Pic.New(0, 0, 16, 16) % Pic.FileNew(...)
var shipPicId := Pic.New(0, 0, 16, 16) % Pic.FileNew(...)

var bulletX : array 1 .. 10 of int
var bulletY : array 1 .. 10 of int
var shipX : int
var shipY : int
var chars : array char of boolean
var shipMoveSpeed : int

View.Set ("offscreenonly")
for i : 1.. 10
    bulletX(i) := 0
    bulletY(i) := 0
end for
shipX := 0
shipY := 0
shipMoveSpeed := 10
loop
    % Input
    Input.KeyDown (chars)
    if chars (KEY_LEFT_ARROW) then       
        shipX -= shipMoveSpeed
    else if chars (KEY_RIGHT_ARROW) then   
        shipX += shipMoveSpeed   
    end if           

    % Update

    % Draw Frame
    cls
    Draw.FillBox(0, 0, maxx, maxy, black)
    Pic.Draw(shipPicId, shipX, shipY, picMerge)
    for i : 1 .. 10
        Pic.Draw(bulletPicId, bulletX(i), bulletY(i), picMerge)
    end for
    View.Update ()

    Time.DelaySinceLast (1000 div 10) % ~10 FPS
end loop




Homework:
1) Have bullets move upward every frame.
2) Move 1 bullet back to (shipX, shipY) when space is pressed.

DO NOT try to copy paste this into your own code until you fully understand it.

Turing:

var bulletPicId := Pic.New(0, 0, 16, 16) % Pic.FileNew(...)
var shipPicId := Pic.New(0, 0, 16, 16) % Pic.FileNew(...)

var bulletX : array 1 .. 10 of int
var bulletY : array 1 .. 10 of int
var shipX : int
var shipY : int
var chars : array char of boolean
var shipMoveSpeed : int

View.Set ("offscreenonly")
for i : 1.. 10
    bulletX(i) := 0
    bulletY(i) := 0
end for
shipX := 0
shipY := 0
shipMoveSpeed := 10
loop
    % Input
    Input.KeyDown (chars)
    if chars (KEY_LEFT_ARROW) then       
        shipX -= shipMoveSpeed
    else if chars (KEY_RIGHT_ARROW) then   
        shipX += shipMoveSpeed   
    end if
    if chars (' ') then       
        % ... Spawn bullet
    end if

    % Update
    % ... Move bullets

    % Draw Frame
    cls
    Draw.FillBox(0, 0, maxx, maxy, black)
    Pic.Draw(shipPicId, shipX, shipY, picMerge)
    for i : 1 .. 10
        Pic.Draw(bulletPicId, bulletX(i), bulletY(i), picMerge)
    end for
    View.Update ()

    Time.DelaySinceLast (1000 div 10) % ~10 FPS
end loop
amz_best




PostPosted: Fri Sep 05, 2014 8:32 pm   Post subject: Re: More than just 1 appear, and not all dispear after maxy

ok, i will be back in like 2 days with my homework complete xD
amz_best




PostPosted: Sun Sep 07, 2014 12:18 pm   Post subject: Re: More than just 1 appear, and not all dispear after maxy

HOMEWORK COMPLETE! but now, we have a glitch :s everytime a shoot from what looks like
y=0..50
the bullet just stays there, on the bottom of the screen... and not move.... wat do i do?
Turing:

%sey.mo.raz << neccesary to open file DO NOT DELETE!





%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ARRAYS, CONSTANTS, BOOLEAN AND INT VAR'S %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%----------------------------------------------%
%----------------------------------------------%
var b_KeyUp : boolean := false                 %
var b_notMoving : boolean := false             %
                                               %
var i_rightTurnCoolDown : int := 6             %
var i_leftTurnCoolDown : int  := 6             %
                                               %
var b_leftKeyDown : boolean := false           %
var b_rightKeyDown : boolean := false          %
                                               %
var shipReset: boolean := false                %
                                               %
var shipX: int := (maxx div 2)                 %
var shipY: int := (maxy div 8)                 %                     
var shipSpeedX: int  := 20                     %
var shipSpeedY: int  := 10                     %                                   
                                               %                             
var speed : int := 1                           %
var size : int := 10                           %
                                               %
var fire : boolean := false                    %
var firey : int := size                        %
var firespeed : int := 1                       %
var firesize : int := 3                        %
var firerate : real := 1                       %
                                               %
var control : array char of boolean            %
                                               %
var bulletX : array 0 .. 300 of int        %
var bulletY : array 0 .. 300 of int        %
var pos_array_size : int := -1                 %
                                               %
var time_after_shot : real := 0                %
                                               %
const c_NumberOfStars := 400                   %
var starX : array 1 .. c_NumberOfStars of int  %
var starY : array 1 .. c_NumberOfStars of int  %
var controls : array char of boolean           %
                                               %
%----------------------------------------------%
%----------------------------------------------%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%





View.Set ("offscreenonly")
setscreen ("graphics:max;max,")




%%%%%%%%%%%%%%%%%%%%%%
% PICTURES TO UPLOAD %
%%%%%%%%%%%%%%%%%%%%%%


%-------------------------------------------------
var ShipC : int := Pic.FileNew ("ShipC.jpg")     %
var ShipL3 : int := Pic.FileNew ("ShipL3.jpg")   %
var ShipR3 : int := Pic.FileNew ("ShipR3.jpg")   %
var ShipL2 : int := Pic.FileNew ("ShipL2.jpg")   %
var ShipR2 : int := Pic.FileNew ("ShipR2.jpg")   %
var ShipL1 : int := Pic.FileNew ("ShipL1.jpg")   %
var ShipR1 : int := Pic.FileNew ("ShipR1.jpg")   %
                                                 %
var bullet : int := Pic.FileNew ("bullet.jpg")   %
%-------------------------------------------------







%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  THE FOR STATEMENTS FOR THEM BULLETS AND THEM STARS%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%-------------------------------------------------
for i : 0..30
    bulletY(i) := 0
    bulletX(i) := 0
end for             

for star : 1 .. c_NumberOfStars        %
    starX (star) := Rand.Int (0, maxx) %
    starY (star) := Rand.Int (0, maxy) %
end for                         
%-------------------------------------------------






loop
 
    Input.KeyDown (controls)


    %MOVE SHIP UP
%--------------------------------------------------   
    if controls (KEY_UP_ARROW) then
        shipY += shipSpeedY
    end if
%--------------------------------------------------   
   
   
    %MOVE SHIP LEFT
%--------------------------------------------------   
    if controls (KEY_LEFT_ARROW) then
    b_leftKeyDown := true   
        if i_rightTurnCoolDown = 6 then
            shipX -= shipSpeedX
            i_leftTurnCoolDown -= 1
            b_KeyUp := true
        else
            b_KeyUp := false
        end if   
    end if
%--------------------------------------------------   
   
   

    %MOVE SHIP RIGHT
%--------------------------------------------------   
    if controls (KEY_RIGHT_ARROW) then
    b_rightKeyDown := true
        if i_leftTurnCoolDown = 6 then
            shipX += shipSpeedX
            i_rightTurnCoolDown -= 1
            b_KeyUp := true
        else
            b_KeyUp := false
        end if   
    end if
%--------------------------------------------------   
   
   
   
    %STOP HOLD LEFT AND RIGHT GLITCH
%--------------------------------------------------   
    if b_rightKeyDown = true and b_leftKeyDown = true then
        shipReset := true
        shipSpeedX := 0
        else
        shipSpeedX := 20
    end if
%--------------------------------------------------
   
   
   
    %MOVE SHIP DOWN
%--------------------------------------------------   
    if controls (KEY_DOWN_ARROW) then
        shipY -= shipSpeedY
    end if
%--------------------------------------------------
   
   
    %SHOOT BULLET
%--------------------------------------------------
 if controls (chr (32)) and fire = false then
        fire := true
        pos_array_size += 1
        bulletX(pos_array_size) := shipX + 30               
        bulletY(pos_array_size) := shipY
    end if
%--------------------------------------------------
   
   


    %MAKE SURE SHIP DOESNT LEAVE THE SCREEN
%-------------------------------------------
    if shipX > maxx - 85 then
        shipX := maxx - 85
    end if
    if shipX < -10 then
        shipX := -10
    end if

    if shipY > maxy - 100 then
        shipY := maxy - 100
    end if
    if shipY < -10 then
        shipY := -10
    end if
%-------------------------------------------

   
   
    %MAKE SURE CHANGING PICTURE OF SHIP REMAINS SMOOTH AND NOT GLITCHED...
    %-----------------------------------------
    if b_KeyUp = false then
        i_rightTurnCoolDown := 6
        i_leftTurnCoolDown := 6
    end if


    if b_KeyUp = true then
        b_KeyUp := false
    end if

    if b_rightKeyDown = true then
        b_rightKeyDown := false
    end if
   
    if b_leftKeyDown = true then
        b_leftKeyDown := false
    end if

   
   
    if i_rightTurnCoolDown < 0 then
        i_rightTurnCoolDown := 0
    end if

    if i_leftTurnCoolDown < 0 then
        i_leftTurnCoolDown := 0
    end if
    %--------------------------------------

   
   

%after cls, we actually put the drawing part.....
    cls
    Draw.FillBox (0, 0, maxx, maxy, black)

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %            D  R  A  W         E  N  T  I  T  T  E  S           %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

        %entities cannot be made before cls otherways they will not appear, LEARNED DIS DA HARD WAY!!!

%------------------------------------------------------------------------------
    %RANDOMELY GENERATE STARS                                                 %       
    for star : 1 .. c_NumberOfStars                                           %
        starY (star) -= Rand.Int (1, 5)                                       %
        if starY (star) < 0 then                                              %
            starY (star) := maxy                                              %
            starY (star) := Rand.Int (100, maxx)                              %
        end if                                                                %
        Draw.FillOval (starX (star), starY (star) + starY (star), 1, 1, white)%
    end for                                                                   %
%------------------------------------------------------------------------------   
   
 



 
   
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %     MAKE THEM BULLETS!!! MY BEUTIFUL BULLET MAKING CODE!     %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %-----------------------------------------------------------------------------------------------------------------------------------------------
   
            for i : 0..pos_array_size
        Pic.Draw (bullet, bulletX(i)+firesize, bulletY(i)+firesize, picCopy)
        if bulletY(i) >= 1 then
            bulletY(i) += 10
        end if
    end for
       
    for i : 0 ..pos_array_size
        if bulletY(i) > maxy then
            for a : 0 .. pos_array_size - i
                bulletY(i+a) := bulletY(i+a+1)
                bulletX(i+a) := bulletX(i+a+1)
            end for
            pos_array_size -=1
         end if
    end for
   
   
    if fire = true then
        time_after_shot += 0.08
    end if
       
   
    if time_after_shot >= firerate then
        fire := false
        time_after_shot := 0
    end if
    %-----------------------------------------------------------------------------------------------------------------------------------------------   
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

   
   
   
   
   
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %    SHIP CREATE/ SHIP TURN LEFT OR RIGHT CREATE ASWELL...  %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
   
   
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %-----------------------------------------------------------------------------------------------------------------------------------------------   
    if i_rightTurnCoolDown > 0 and i_leftTurnCoolDown > 0 or i_rightTurnCoolDown < 6 and i_leftTurnCoolDown < 6 then
        b_notMoving := true
        Pic.Draw (ShipC, shipX, shipY, picCopy)
   elsif i_rightTurnCoolDown < 1 then
        Pic.Draw (ShipR3, shipX, shipY, picCopy)
        b_notMoving := false
       
    elsif i_leftTurnCoolDown < 1 then
        Pic.Draw (ShipL3, shipX, shipY, picCopy)
        b_notMoving := false

    elsif i_rightTurnCoolDown < 5 and i_rightTurnCoolDown > 1 then
        Pic.Draw (ShipR2, shipX, shipY, picCopy)
        b_notMoving := false

    elsif i_leftTurnCoolDown < 5 and i_leftTurnCoolDown > 1 then
        Pic.Draw (ShipL2, shipX, shipY, picCopy)
        b_notMoving := false

       
    end if

    if shipReset = true then
        Pic.Draw (ShipC, shipX, shipY, picCopy)
        shipReset := false
    end if
    %-----------------------------------------------------------------------------------------------------------------------------------------------   
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

   
   




   
    View.Update
    Time.DelaySinceLast (1000 div 60) %FPS!!!
end loop


oh, and i also did a bit organizing Smile
amz_best




PostPosted: Sun Sep 07, 2014 12:28 pm   Post subject: RE:More than just 1 appear, and not all dispear after maxy

for a temp fix, i simply added

%SHOOT BULLET
%--------------------------------------------------
if controls (chr (32)) and fire = false then
fire := true
pos_array_size += 1
bulletX(pos_array_size) := shipX + 30
bulletY(pos_array_size) := shipY
end if
%--------------------------------------------------


tooo:


%SHOOT BULLET
%--------------------------------------------------
if controls (chr (32)) and fire = false then
fire := true
pos_array_size += 1
bulletX(pos_array_size) := shipX + 30
bulletY(pos_array_size) := shipY + 50
end if
%--------------------------------------------------
Display posts from previous:   
   Index -> Programming, Turing -> Turing Help
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 2 of 2  [ 20 Posts ]
Goto page Previous  1, 2
Jump to:   


Style:  
Search: