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

Username:   Password: 
 RegisterRegister   
 Shooter game
Index -> Programming, Turing -> Turing Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
Thuged_Out_G




PostPosted: Sat Dec 13, 2003 1:05 am   Post subject: Shooter game

this program is really flickery, and the Pic.Draw doesnt seem to stay on the screen :S...as soon as i let go of the mouse, it goes away...any help please

code:

var x, y, button, picID : int
picID := Pic.FileNew ("bullet1.bmp")
drawfill (1, 1, black, black)

proc Shoot
    cls
    Draw.FillArc (x, y, 100, 100, 100, 100, 10)
    drawfillarc (x, y, 100, 100, 100, 100, 10)
    Draw.Oval (x, y, 100, 100, 10)
    Draw.Oval (x, y, 80, 70, 10)
    Draw.Oval (x, y, 60, 50, 10)
    Draw.Oval (x, y, 40, 30, 10)
    Draw.Oval (x, y, 20, 10, 10)
    Draw.Oval (x, y, 100, 0, 10)
    Draw.Oval (x, y, 0, 100, 10)
end Shoot


loop
    Mouse.Where (x, y, button)
    if button = 0 then
        Shoot
    elsif button = 1 then
        Pic.Draw (picID, x, y, picMerge)
        View.Update
    end if
end loop
Sponsor
Sponsor
Sponsor
sponsor
drumersrule123




PostPosted: Sat Dec 13, 2003 1:28 am   Post subject: (No subject)

i put a delay in front of the cls it slowed it down a bit but it didn't flicker that much here is the code

code:
proc Shoot
    delay (150)
    cls
drumersrule123




PostPosted: Sat Dec 13, 2003 1:30 am   Post subject: (No subject)

you probbly don't want to use a delay over 250
Homer_simpson




PostPosted: Sat Dec 13, 2003 12:02 pm   Post subject: (No subject)

u forgot setscreen("offscreenonly")...
code:
setscreen ("offscreenonly")
var x, y, button, picID : int
picID := Pic.FileNew ("bullet1.bmp")
drawfill (1, 1, black, black)

proc Shoot
    cls
    Draw.FillArc (x, y, 100, 100, 100, 100, 10)
    drawfillarc (x, y, 100, 100, 100, 100, 10)
    Draw.Oval (x, y, 100, 100, 10)
    Draw.Oval (x, y, 80, 70, 10)
    Draw.Oval (x, y, 60, 50, 10)
    Draw.Oval (x, y, 40, 30, 10)
    Draw.Oval (x, y, 20, 10, 10)
    Draw.Oval (x, y, 100, 0, 10)
    Draw.Oval (x, y, 0, 100, 10)
end Shoot


loop
    Mouse.Where (x, y, button)
    if button = 0 then
        Shoot
    elsif button = 1 then
        Pic.Draw (picID, x, y, picMerge)
    end if
    View.Update
end loop
DanShadow




PostPosted: Sat Dec 13, 2003 5:05 pm   Post subject: (No subject)

Yeah, when drawing the target over the mouse, "cls", then at the top of the loop, put:
setscreen("offscreenonly")
View.Update
This stops the flickering, thats how I fixed my shooter. Smile
Thuged_Out_G




PostPosted: Sat Dec 13, 2003 6:16 pm   Post subject: (No subject)

ok, all is good now...except when i draw the pic it doesnt stay on screen :S
DanShadow




PostPosted: Sat Dec 13, 2003 6:33 pm   Post subject: (No subject)

Make an array the holds the (x,y) co-ordinates of all shots taken. But make sure that the game doesnt drag on too long, or the array will overflow, heh.
Thuged_Out_G




PostPosted: Sat Dec 13, 2003 7:14 pm   Post subject: (No subject)

im not quite understanding what you mean, the cls in the shoot procedure just keeps getting rid of the pic

code:

var x, y, button, picID : int
picID := Pic.FileNew ("bullet1.bmp")
drawfill (1, 1, black, black)
var shoots : array 1 .. 1000 of int

proc Shoot
    cls
    Draw.FillArc (x, y, 100, 100, 100, 100, 10)
    drawfillarc (x, y, 100, 100, 100, 100, 10)
    Draw.Oval (x, y, 100, 100, 10)
    Draw.Oval (x, y, 80, 70, 10)
    Draw.Oval (x, y, 60, 50, 10)
    Draw.Oval (x, y, 40, 30, 10)
    Draw.Oval (x, y, 20, 10, 10)
    Draw.Oval (x, y, 100, 0, 10)
    Draw.Oval (x, y, 0, 100, 10)
end Shoot

loop
for i : 1 .. 5
    setscreen ("offscreenonly")
    View.Update
    Mouse.Where (x, y, button)
    if button = 0 then
        Shoot
    elsif button = 1 then
        shoots (i) := x
        shoots (i + 1) := y
        Pic.Draw (picID, x-30, y-30, picMerge)
    end if
end for
end loop


is that what you are talking about
Sponsor
Sponsor
Sponsor
sponsor
DanShadow




PostPosted: Sat Dec 13, 2003 8:27 pm   Post subject: (No subject)

code:

%The Bullets Shot Array
var bullet_x, bullet_y : array 1 .. 200 of int
var num : int := 0
%Makes everything in array equal to 999
for i : 1 .. 200
    bullet_x (i) := 700
    bullet_y (i) := 700
end for

var x, y, button, picID : int
picID := Pic.FileNew ("Bullet.bmp")
drawfill (1, 1, black, black)
var shoots : array 1 .. 1000 of int

proc Shoot
    cls
    Draw.FillArc (x, y, 100, 100, 100, 100, 10)
    drawfillarc (x, y, 100, 100, 100, 100, 10)
    Draw.Oval (x, y, 100, 100, 10)
    Draw.Oval (x, y, 80, 70, 10)
    Draw.Oval (x, y, 60, 50, 10)
    Draw.Oval (x, y, 40, 30, 10)
    Draw.Oval (x, y, 20, 10, 10)
    Draw.Oval (x, y, 100, 0, 10)
    Draw.Oval (x, y, 0, 100, 10)
end Shoot

%Procedure to draw past done bullets
procedure drawBullets
    for i : 1 .. 200
        Draw.FillOval (bullet_x (i), bullet_y (i), 5, 5, 255)
    end for
end drawBullets

loop
    num := 0
    for i : 1 .. 5
        setscreen ("offscreenonly")
        View.Update
        Mouse.Where (x, y, button)
        if button = 0 then
            Shoot

            %Draw Previous Bullets
            drawBullets

        elsif button = 1 then
            shoots (i) := x
            shoots (i + 1) := y
            Pic.Draw (picID, x - 30, y - 30, picMerge)

            %When you shoot, this checks array for first open slot
            %Then it records the x and y where you just shot
            %This way, it can redraw that shot place over and over
            loop
                num := num + 1
                exit when bullet_x (num) = 700
            end loop
            bullet_x (num) := x
            bullet_y (num) := y

        end if
    end for
end loop

There ya go. I added onto the code, so everytime it finishes the loop, it redraws a black oval (10*10) where ever you have shot before
enjoy
Homer_simpson




PostPosted: Sun Dec 14, 2003 12:37 am   Post subject: (No subject)

bullshit!!!!
very slow... just draw the picture everytime after cls...


edit...
NVM... i just read what you said Embarassed
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 1 of 1  [ 10 Posts ]
Jump to:   


Style:  
Search: