Computer Science Canada

The Helicopter Game

Author:  C++onrad [ Wed Aug 29, 2012 1:41 pm ]
Post subject:  The Helicopter Game

This is my Helicopter Game... I promised some members this game over 6 months ago and I apologize for that but this was the finished product.. I am currently at University for Integrated Telecommunications and Computer Technologies. Although we do not use "turing" code anymore and this is farely basic... I do not currently have time to recall turing codes and fix the small bugs it has... however for the majority it does work and enjoy I guess...
[syntax = "turing"]
% This Program Completed by : Conrad Trzcinski
%
% Program Name: Helicopter.T
%
% Knowledgeable Instructor: Mr. Reaume
%
% Description: This program is a game called Super-Heli.



% My Variables
var xpositiona, y1, y2, dummy : int
xpositiona := 400
y1 := Rand.Int (200, 400)
y2 := Rand.Int (200, 400)

var icolor, icolor2, iXposition, iYposition, xdirection, ydirection, font, font1, font2, font3, xmouse, ymouse, button : int
% Helicopter Controls
var yaltitude, mx, my, btn : int

var ch : string (1)

% Text Fonts
font := Font.New ("serif:50")
font1 := Font.New ("serif:25")
font2 := Font.New ("serif:15")
font3 := Font.New ("serif:9")

% Colors
icolor2 := 21
icolor := 1


% Positions
iXposition := 0
iYposition := 0
xdirection := 1
ydirection := 1
yaltitude := 0
View.Set ("graphics,offscreenonly,nocursor")


loop
yaltitude := 0
% Menu
loop
Mouse.Where (xmouse, ymouse, button)

Draw.Cls
% Background
drawfillbox (300, 240, 350, 260, 41)


% Background
drawfillbox (0, 0, maxx, maxy, 100)


% Cloud 1
drawfilloval (90, 350, 130, 80, white)
drawfilloval (70, 280, 80, 40, white)
drawfilloval (200, 310, 60, 50, white)
drawfilloval (230, 380, 60, 50, white)

% Cloud 2
drawfilloval (400, 150, 130, 80, white)
drawfilloval (380, 80, 80, 40, white)
drawfilloval (410, 220, 80, 40, white)
drawfilloval (520, 110, 70, 50, white)
drawfilloval (520, 190, 80, 50, white)
drawfilloval (300, 180, 60, 50, white)
drawfilloval (300, 120, 40, 30, white)


% Helicopter
drawfillbox (iXposition + 85, iYposition + 5, iXposition + 155, iYposition + 10, black) % Base Connected to Legs
drawfillbox (iXposition + 100, iYposition + 10, iXposition + 105, iYposition + 20, black) % Base leg 1
drawfillbox (iXposition + 135, iYposition + 10, iXposition + 140, iYposition + 20, black) % Base leg 2
drawfillbox (iXposition + 118, iYposition + 80, iXposition + 123, iYposition + 65, black) % Main Rotor
drawfillbox (iXposition + 25, iYposition + 40, iXposition + 130, iYposition + 50, black) % Rotor rectangle
drawfilloval (iXposition + 120, iYposition + 85, 70, 5, icolor2) % Rotor Blades
drawfilloval (iXposition + 120, iYposition + 45, 40, 30, black) % Cockpit
drawfillbox (iXposition + 10, iYposition + 40, iXposition + 15, iYposition + 70, black) % Rotor rectangle
drawfilloval (iXposition + 15, iYposition + 48, 15, 15, icolor2) % Rear Rotor
drawfilloval (iXposition + 85, iYposition + 45, 20, 15, black) % Smaller circle from main body of helicopter



% Menu Selections
Draw.Text ("Super-Heli", 190, 325, font, icolor - 1)
Draw.Text ("Play", 300, 180, font1, icolor - 1)
Draw.Text ("Controls", 275, 120, font1, icolor - 1)


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% If Played %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if xmouse > 290 and xmouse < 370 and ymouse > 170 and ymouse < 220 and button = 1 then
Draw.Cls
View.Update

%%% Background %%%
loop

drawfillbox (0, 0, maxx, maxy, 100)
drawfillbox (0, 0, 640, 50, white)
drawfillbox (0, 350, maxx, maxy, white)
drawfillbox (xpositiona, y1, xpositiona + 40, y2, white)
xpositiona := xpositiona - 1

if xpositiona < 0 then
xpositiona := 640
dummy := Rand.Int (50, 350)
if dummy <= 200 then
y1 := 50
y2 := dummy
else
y1 := 350
y2 := dummy
end if
end if

%Helicopter
drawfillbox (75, 192 + yaltitude, 125, 196 + yaltitude, black) % Base Connected to Legs
drawfillbox (90, 192 + yaltitude, 95, 200 + yaltitude, black) % Base leg 1
drawfillbox (107, 192 + yaltitude, 112, 210 + yaltitude, black) % Base leg 2
drawfillbox (97, 240 + yaltitude, 102, 249 + yaltitude, black) % Main Rotor Rectangle
drawfillbox (25, 218 + yaltitude, 110, 223 + yaltitude, black) % Rotor rectangle
drawfilloval (100, 248 + yaltitude, 50, 5, icolor2) % Rotor Blades
drawfilloval (100, 220 + yaltitude, 30, 20, black) % Cockpit
drawfillbox (24, 215 + yaltitude, 27, 238 + yaltitude, black) % Rotor rectangle
drawfilloval (24, 223 + yaltitude, 10, 10, icolor2) % Rear Rotor Blades
drawfilloval (75, 220 + yaltitude, 15, 10, black) % Smaller circle from main body of helicopter
View.Update

icolor2 := icolor2 + 1

mousewhere (mx, my, btn)
if btn = 1 then
yaltitude += 1
else
yaltitude -= 1
end if
if icolor2 = 31 then
icolor2 := 21
end if

if whatdotcolor (125, 192 + yaltitude) = white then
exit
end if

if whatdotcolor (12, 192 + yaltitude) = white then
exit
end if

if whatdotcolor (150, 253 + yaltitude) = white then
exit
end if

delay (3)
end loop
end if

if whatdotcolor (125, 192 + yaltitude) = white then
exit
end if
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% End Background %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%






%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% If Controls selected %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if xmouse > 270 and xmouse < 390 and ymouse > 100 and ymouse < 150 and button = 1 then
Draw.Cls
View.Update

loop
drawfillbox (0, 0, maxx, maxy, 100)

% Cloud 1
drawfilloval (90, 350, 130, 80, white)
drawfilloval (70, 280, 80, 40, white)
drawfilloval (200, 310, 60, 50, white)
drawfilloval (230, 380, 60, 50, white)

% Cloud 2
drawfilloval (400, 150, 130, 80, white)
drawfilloval (380, 80, 80, 40, white)
drawfilloval (410, 220, 80, 40, white)
drawfilloval (520, 110, 70, 50, white)
drawfilloval (520, 190, 80, 50, white)
drawfilloval (300, 180, 60, 50, white)
drawfilloval (300, 120, 40, 30, white)
Draw.Text ("Controls", 265, 335, font1, black)
Draw.Text ("Press B to go Back", 15, 360, font2, black)
Draw.Text ("Welcome to Super-Heli, the classic game that never gets boring!", 70, 285, font2, black)
Draw.Text ("The controls of this game are basic, to raise your helicopter,", 80, 255, font2, black)
Draw.Text ("simply click your mouse to ascend your helicopter vertically,", 77, 225, font2, black)
Draw.Text ("to descend your helicopter, let go of the mouse button.", 100, 195, font2, black)
Draw.Text ("But be careful don't touch the white sections or it's game over!", 70, 165, font2, black)
Draw.Text ("Good luck and have fun!", 230, 125, font2, black)
Draw.Text ("Trademark to the IGC (International Gaming Corporation) Do not copy this game.", 115, 15, font3, black)

View.Update
getch (ch)
if ch = "b" then
exit
else
end if

end loop


else
end if


%drawfillbox (290,170,370,220,41)
%drawfillbox (270,100,390,150,41)




icolor := icolor + 1
if icolor = 62 then
icolor := 1
end if
icolor2 := icolor2 + 1
if icolor2 = 31 then
icolor2 := 21
end if
iXposition := iXposition + xdirection
iYposition := iYposition + ydirection

if iXposition > 455 or iXposition < 0 then
xdirection := -xdirection
end if

if iYposition > 215 or iYposition < 0 then
ydirection := -ydirection
end if


delay (5)
View.Update

end loop

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% GAME OVER SCREEN %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cls
drawfillbox (0, 0, maxx, maxy, 100)

% Cloud 1
drawfilloval (90, 350, 130, 80, white)
drawfilloval (70, 280, 80, 40, white)
drawfilloval (200, 310, 60, 50, white)
drawfilloval (230, 380, 60, 50, white)

% Cloud 2
drawfilloval (400, 150, 130, 80, white)
drawfilloval (380, 80, 80, 40, white)
drawfilloval (410, 220, 80, 40, white)
drawfilloval (520, 110, 70, 50, white)
drawfilloval (520, 190, 80, 50, white)
drawfilloval (300, 180, 60, 50, white)
drawfilloval (300, 120, 40, 30, white)
Draw.Text ("Game Over", 190, 200, font, black)
View.Update
delay (2000)
end loop
[/syntax]

>>>>>>>>>Adjust the delay for your computer's handling...<<<<<<<<<<<<

Author:  C++onrad [ Wed Aug 29, 2012 1:42 pm ]
Post subject:  Re: The Helicopter Game

FFS.... the turing notation is killing me....

Author:  C++onrad [ Wed Aug 29, 2012 1:48 pm ]
Post subject:  RE:The Helicopter Game

sorry to like quad post but could an admin like edit the original post so that it's turing code is legit... thanks

Author:  QuantumPhysics [ Thu Aug 30, 2012 12:29 pm ]
Post subject:  RE:The Helicopter Game

Wow... drawing is so much easier here than C++. What kind of programming language is this? And every piece of syntax is almost in plain English. But from what i 'read' in your code. It looks very good - assuming the positions of the drawing system are like that on a Cartesian plane I drew it out and it looks very nice Smile Good job man.
EDIT: If its' a trademark then put the trademark symbol into your text - "Trademark (?) of IGC" (just to make it look more ideal)

Smile

Either than that nice PROgram

Author:  Aange10 [ Thu Aug 30, 2012 6:23 pm ]
Post subject:  RE:The Helicopter Game

I remember you! Good job! Smile

Author:  C++onrad [ Fri Aug 31, 2012 7:33 am ]
Post subject:  RE:The Helicopter Game

Haha thanks guys, and yeah aange10 koodos to you too for helping me complete this... I don't remember my previous log on info but yes this is me =D
Thanks Again!

Author:  swagster97 [ Wed Jan 02, 2013 4:29 pm ]
Post subject:  Re: The Helicopter Game

***hey im making a game on turing for a school project, and i'm on the menu part. I just got to the instructions page, but i don't know how to get it all the way back to the menu... how exactly did you make the 'getch' not show up in the top corner like it usually does when you do a 'get command' ???

Author:  Insectoid [ Wed Jan 02, 2013 5:19 pm ]
Post subject:  RE:The Helicopter Game

View.Set("nocurser") will remove the flashing rectangle at the top of the screen.

As for returning to the menu- you're gonna want to keep your menu in a loop. Your game procedure (or however you've set it up) should be called from inside that loop. When the game ends, the menu loop will resume automatically. Here's a brief example:

code:

proc game
    %game code here
    %when the game finishes, let this procedure exit as normal
end game

proc menu
    %create menu buttons
    loop   
        if game button is clicked then
            %destroy buttons (if you're using Turing's GUI), otherwise they'll still be there in the game         
            game
            %re-create buttons (again, if using Turing's GUI)
        end if
    end loop
end menu


: