
-----------------------------------
marz
Sat Jun 07, 2003 11:45 am

Help with collision star game
-----------------------------------
Hiya! Alright, now for my exam, I have chosen to do a very crappy like game, but hey, it will get me the marks I need. However, I need help badly!  :( Yeah, so at the end of my animation, my game automatically starts. It is about stars falling out of the sky and a ball has to didge them. Now I need to know how you can make the ball dodge the stars, and if you get hit three times, then die.  I dont know how to do that.  Here is my game so far.  Help greatly appriciated!  :D

-----------------------------------
marz
Sat Jun 07, 2003 11:52 am

sorry
-----------------------------------
Ok, sorry that extenstion didnt work.  Here is my actuall game setscreen("graphics,nocursor,noecho")
var move1, move2, move3 : int
Draw.Fill (1, 1, 18, 18)
loop
    move2 := Rand.Int (0, 500)
    move3 := 10
    move1 := Rand.Int (0, 700)
    for decreasing c : 31 .. 18
        Draw.Star (move1, move2, move3, move3, c)
        delay (100)
        Draw.Star (move1, move2, move3, move3, 18)
        move3 := move3 + 8
    end for
var s,font1, star1x, star1y, star2x, star2y, star3x, star3y, star4x, star4y, chop, speed : int 
speed := 300
Draw.Fill (1, 1, 16, 16)
font1 := Font.New ("Tomaha:12")
assert font1 > 0
Font.Draw ("A Starry Night... ", 300, 250, font1, 77)
delay (4000)
Draw.Cls
Draw.Fill(16,16,16,16)    
%stars
s := 10
loop
    Draw.FillStar (15, 460, 35, 480, 92)
    Draw.FillStar (20, 465, 30, 475, 92)
    delay(100)
    Draw.FillBox (20, 465, 30, 475, 16)
    Draw.FillStar (55, 435, 65, 445, 92)
    delay(100)
    Draw.FillBox (55, 435, 65, 445, 16)
    Draw.FillStar (105, 465, 115, 475, 67)
    Draw.FillStar (150, 450, 160, 460, 68)
    Draw.FillStar (450, 450, 460, 460, 69)
    Draw.FillStar (390, 380, 400, 390, 70)
    Draw.FillStar (155, 410, 175, 430, 71)
    Draw.FillStar (380, 420, 400, 440, 93)
    Draw.FillStar (350, 450, 360, 460, 74)
    Draw.FillStar (240, 430, 260, 450, 75)
    Draw.FillStar (470, 350, 480, 360, 9)
    Draw.FillStar (680, 440, 690, 450, 76)
    Draw.FillStar (620, 450, 630, 460, 77)
    Draw.FillStar (580, 430, 560, 450, 78)
    Draw.FillStar (540, 470, 550, 480, 101)
    Draw.FillStar (320, 470, 330, 480, 103)
    Draw.FillStar (250, 470, 260, 480, 103)
    delay (100)
    Draw.FillStar (15, 460, 35, 480, 1)
    Draw.FillStar (20, 465, 30, 475, 1)
    Draw.FillStar (90, 420, 100, 430, 1)
    Draw.FillStar (55, 435, 65, 445, 1)
    Draw.FillStar (100, 460, 120, 480, 1)
    Draw.FillStar (105, 465, 115, 475, 1)
      Draw.FillStar (15, 460, 35, 480, 41)
    delay (100)
    Draw.FillBox (15, 460, 35, 480, 16)
    Draw.FillStar (20, 465, 30, 475, 41)
    delay (100)
    Draw.FillBox (20, 465, 30, 475, 16)
    Draw.FillStar (50, 430, 70, 450, 41)
    delay (100)
    Draw.FillBox (50, 430, 70, 450, 16)
    Draw.FillStar (55, 435, 65, 445, 41)
    delay (100)
    Draw.FillBox (55, 435, 65, 445, 16)
    Draw.FillStar (100, 460, 120, 480, 41)
    delay (100)
    Draw.FillBox (100, 460, 120, 480, 16)
    Draw.FillStar (105, 465, 115, 475, 41)
    delay (150)
    Draw.FillBox (105, 465, 115, 475, 16)
    delay (100)
    Draw.FillStar (15, 460, 35, 480, 41)
    delay (100)
    Draw.FillBox (15, 460, 35, 480, 16)
    Draw.FillStar (20, 465, 30, 475, 41)
    delay (100)
    Draw.FillBox (20, 465, 30, 475, 16)
    Draw.FillStar (70, 270, 90, 290, 41)
    delay (100)
    Draw.FillBox (70, 270, 90, 290, 16)
    Draw.FillStar (25, 190, 95, 135, 41)
    delay (100)
    Draw.FillBox (25, 190, 95, 135, 16)
    
    Draw.FillStar (100, 460, 120, 480, 41)
    delay (100)
    Draw.FillBox (100, 460, 120, 480, 16)
    Draw.FillStar (105, 465, 115, 475, 41)
    delay (100)
    Draw.FillBox (105, 465, 115, 475, 16)
          Draw.FillStar (15, 460, 35, 480, 41)
    delay (100)
    Draw.FillBox (15, 460, 35, 480, 16)
    Draw.FillStar (20, 465, 30, 475, 41)
    delay (100)
    Draw.FillBox (20, 465, 30, 475, 16)
    
    Draw.FillStar (50, 430, 70, 450, 41)
    delay (100)
    Draw.FillBox (50, 430, 70, 450, 16)
    Draw.FillStar (55, 435, 65, 445, 41)
    delay (100)
    Draw.FillBox (55, 435, 65, 445, 16)
    Draw.FillStar (440, 410, 460, 430, 10)
    delay (100)
    Draw.FillBox (440, 410, 460, 430, 16)
    Draw.FillStar(320, 430, 330, 440, 89)
    delay (150)
    Draw.FillBox (320, 430, 330, 440, 16)
    delay (100)
      Draw.FillStar (15, 460, 35, 480, 41)
    delay (100)
    Draw.FillStar (520, 430, 530, 440, 96)
    Draw.FillStar (520, 430, 530, 440, 53)
    delay (100)
    Draw.FillBox (20, 465, 30, 475, 53)
    s := s + 1
    exit when s = 30
Draw.Fill (1, 1, 16, 16)
Font.Draw ("Except the stars start to fall out of the sky... ", 190, 190, font1, 12)
delay (4000)
Draw.Fill (1, 1, 77, 77)
Draw.Fill (1, 1, 16, 16)
font1 := Font.New ("Tomaha:15")
assert font1 > 0
Font.Draw ("Can you dodge the stars?... ", 290, 300, font1, 76)
delay (4000)
Font.Draw("Find out and PLAY!",190, 180, font1, 77)
Draw.Fill(1,1,16,16)
Draw.Cls
Draw.Fill (1, 1, 21, 21)
star1x := 280
star1y := 500
star2x := 390
star2y := 650
star3x := 500
star3y := 820
star4x := 610
star4y := 980
loop
    %star1
    for x : 1..500 by speed 
        Draw.FillStar (star1x, star1y, star1x + 40, star1y + 40, 75)
        Draw.FillStar (star1x, star1y, star1x + 40, star1y + 40, 16)
    end for 

    %box2
    for x : 1..500 by speed 
        Draw.FillStar (star2x, star2y, star2x + 40, star2y + 40, 79)
        Draw.FillStar (star2x, star2y, star2x + 40, star2y + 40, 16)
    end for 


    %box3
    for x : 1..500 by speed 
        Draw.FillStar (star3x, star3y, star3x + 40, star3y + 40, 77)
        Draw.FillStar (star3x, star3y, star3x + 40, star3y + 40, 16)
    end for 


    %box4
    for x : 1..500 by speed 
        Draw.FillStar (star4x, star4y, star4x + 40, star4y + 40, 74)
        Draw.FillStar (star4x, star4y, star4x + 40, star4y + 40, 16)
    end for


    %box1
    for x : 1..500 by speed 
        Draw.FillStar (star1x, star1y, star1x + 40, star1y + 40, 75)
        Draw.FillStar (star1x, star1y, star1x + 40, star1y + 40, 16)
    end for 


    %box2
    for x: 1..500 by speed 
        Draw.FillStar (star2x, star2y, star2x + 40, star2y + 40, 79)
        Draw.FillStar (star2x, star2y, star2x + 40, star2y + 40, 16)
    end for 
    
    %box3
    for x :1..500 by speed 
        Draw.FillStar (star3x, star3y, star3x + 40, star3y + 40, 77)
        Draw.FillStar (star3x, star3y, star3x + 40, star3y + 40, 16)
    end for 


    %box4
    for x : 1..500 by speed 
        Draw.FillStar (star4x, star4y, star4x + 40, star4y + 40, 74)
        Draw.FillStar (star4x, star4y, star4x + 40, star4y + 40, 16)
    end for 
  
    if star1y + 40 < 0 or star2y + 40 < 0 or star3y + 40 < 0 or star4y + 40 < 0
            then
        chop := Rand.Int (1, 4)
        if chop = 1 and star1y + 40 < 0 then
            star1x := 280
            star1y := 500
        elsif chop = 2 and star1y + 40 < 0 then
            star1x := 390
            star1y := 500
        elsif chop = 3 and star1y + 40 < 0 then
            star1x := 500
            star1y := 500
        elsif chop = 4 and star1y + 40 < 0 then
            star1x := 610
            star1y := 500
        elsif chop = 1 and star2y + 40 < 0 then
            star2x := 280
            star2y := 500
        elsif chop = 2 and star2y + 40 < 0 then
            star2x := 390
            star2y := 500
        elsif chop = 3 and star2y + 40 < 0 then
            star2x := 500
            star2y := 500
        elsif chop = 4 and star2y + 40 < 0 then
            star2x := 610
            star2y := 500
        elsif chop = 1 and star3y + 40 < 0 then
            star3x := 280
            star3y := 500
        elsif chop = 2 and star3y + 40 < 0 then
            star3x := 390
           star3y := 500
        elsif chop = 3 and star3y + 40 < 0 then
            star3x := 500
            star3y := 500
        elsif chop = 4 and star3y + 40 < 0 then
            star3x := 610
            star3y := 500
        elsif chop = 1 and star4y + 40 < 0 then
            star4x := 280
            star4y := 500
        elsif chop = 2 and star4y + 40 < 0 then
            star4x := 390
            star4y := 500
        elsif chop = 3 and star4y + 40 < 0 then
            star4x := 500
            star4y := 500
        elsif chop = 4 and star4y + 40 < 0 then
            star4x := 610
            star4y := 500
        end if
    end if
    star1y := star1y - 1
    star2y := star2y - 1
    star3y := star3y - 1
    star4y := star4y - 1
    Draw.Fill (1, 1, 16, 16)
end loop
 end loop
 end loop




-----------------------------------
Andy
Sat Jun 07, 2003 11:52 am


-----------------------------------
hmmm, very intresting game...
of NOTHING dude, you your attatchment is blank

-----------------------------------
AsianSensation
Sat Jun 07, 2003 12:01 pm


-----------------------------------
Yeah, there are a lot of tutorials on collision detection, both circle and triangle, also Input.KeyDown, or if your not using 4.0.3(some letter), then getch will let you get input, there is also a tutorial on that.

-----------------------------------
void
Sat Jun 07, 2003 1:11 pm


-----------------------------------
dude...no offense...but thats one pretty crappy game..ur falling stars are so glitchy that u can barely see them...and you have no ball....after 6/7 months of doing turing you SHOULD know how to use getch with the ords of the arrow keys or Input.KeyDown...its not that hard...there is a tutorial on that...and also...their is a tutorial on smooth animation AND one on collision detection...read them!!...i assure u that if u read them...then ur program will be AT LEAST 3 X as good as it is now, your questoins will be more precise (thus esier to answer)...AND you will get a higher grade than before (at least about 10% higher)...so yea....GO READ TUTORIALS

-----------------------------------
Andy
Sat Jun 07, 2003 2:03 pm


-----------------------------------
damn, sorry that i have to do this but, marz, but i have to agree with void on this one, your game does suck. go to the tutorial section and read all the tutorials and then maybe your game wouldn't suck anymore.

-----------------------------------
PaddyLong
Sat Jun 07, 2003 6:57 pm


-----------------------------------
void... I would have to disagree with your statements about after 6/7 months of using turing you should know how to use getch and the ords of arrow keys...

those are things for specific tasks ... I think it is more important to learn the logics of programming before you start trying to learn specific things like getch and ords of arrow keys...

-----------------------------------
Homer_simpson
Sat Jun 07, 2003 9:04 pm


-----------------------------------
i owned turing after 2 weeks of using it... :wink:

-----------------------------------
Andy
Sat Jun 07, 2003 9:11 pm


-----------------------------------
and catalyst owned everyone after 4 months
programming isn't that hard, that is if you want to learn it.

-----------------------------------
void
Sun Jun 08, 2003 10:28 am


-----------------------------------
PaddyLong...i think ur an idiot for disagreeing with me..and ur reasoning for doing so is dumber than the fact that you actually disagreed.....using getch is something u learn along with get and put...the first two things in turing...if you used what u call "programming logistics" then...you would think...what is the only way i can get 1 Key input from the user...so that i can use the arrow keys....hmm....WHY NOT GETCH....and for the arrow keys...use ord..something i learned in the first  week of using turing..and something my CS teacher taught us back in november....NOT TOO HARD NOW IS IT???....this is using logics....NO ONE TOLD HIM TO MEMORIZE THE ASCII CODES AND OTHER SUCH "SPECIFICS"....in programing there are VERY few specifics...and 50% if that is created by people with logic...and memorized by those without...so if you would please not be such a dumbass...much appreciation 
**The preceding did not express the feelings of CompSci.ca or any of its webmasters or members (other than me...void..the heartless feind)

-----------------------------------
void
Sun Jun 08, 2003 12:19 pm


-----------------------------------

var w : int := Window.Open ("fullscreen,nocursor")
var x, y, colr : int
colorback (black)
cls
loop
    randint (x, 1, maxx - 50)
    randint (colr, 1, maxcolor)
    for decreasing a : maxy .. 1
        drawfillstar (x, a, x + 50, a + 50, colr)
        delay (1)
        drawfillstar (x, a, x + 50, a + 50, 256)
    end for
end loop

wow...if you take out the huge intro...i think my program and urs do the same thing....very interesting isnt it?

-----------------------------------
Andy
Sun Jun 08, 2003 12:58 pm


-----------------------------------
LOL, go void, way to kill the lil programmer's confidence
