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

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




PostPosted: Mon Apr 14, 2008 10:42 am   Post subject: Animation problem

How to make my bug move I mean like just the wings . I lost 2 marks just because my bug is not moving. So I need my bug to do something besides going around the screen

here's the code


%code for animation
procedure drawhills ()
drawfilloval (90, 20, 100, 200, 49)
drawfilloval (270, 20, 100, 100, 49)
drawfilloval (440, 20, 100, 200, 49)
drawfilloval (610, 20, 100, 300, 49)
end drawhills

procedure drawBackground (curcolor : int)
drawfillbox (0, 0, maxx, maxy, curcolor)
end drawBackground

procedure drawStar (x1, y1, x2, y2, col, nDelay : int)
drawfillstar (x1, y1, x2, y2, col)
if (nDelay > 0) then
View.Update
delay (nDelay)
end if
end drawStar


procedure drawStars (nDelay : int)
drawStar (100, 300, 115, 315, 14, nDelay)
drawStar (200, 200, 215, 215, 14, nDelay)
drawStar (300, 200, 315, 215, 14, nDelay)
drawStar (200, 350, 215, 365, 14, nDelay)
drawStar (350, 280, 365, 295, 14, nDelay)
drawStar (10, 200, 25, 215, 14, nDelay)
drawStar (10, 350, 25, 365, 14, nDelay)
drawStar (500, 350, 515, 365, 14, nDelay)
drawStar (500, 450, 515, 465, 14, nDelay)
end drawStars

var x1, y1 : int := 0
var key : array char of boolean

procedure drawMyObject(x1,y1:int)
Draw.FillBox (x1, y1, x1 + 50, y1 + 50, blue)
end drawMyObject

procedure drawBug(x1,y1:int)
drawfilloval( x1+20,y1+20, 20, 20, red)
drawfilloval( x1+30,y1+30, 4, 4, yellow)
drawfilloval( x1+10,y1+30, 4, 4, yellow)
drawline( x1+20,y1, x1+20, y1+40, black)
drawfilloval( x1+20,y1+42, 2, 2, black)
end drawBug

procedure drawMovableObject

drawBug(x1,y1)
Input.KeyDown (key)
if key (KEY_RIGHT_ARROW) and x1 + 50 not= maxx then
x1 += 1
elsif key (KEY_LEFT_ARROW) and x1 not= 0 then
x1 -= 1
elsif key (KEY_UP_ARROW) and y1 + 50 not= maxy then
y1 += 1
elsif key (KEY_DOWN_ARROW) and y1 not= 0 then
y1 -= 1
end if


end drawMovableObject


setscreen ("graphics: 600,600")
View.Set ('noecho, nocursor,offscreenonly')



var color1 : int := black
var color2 : int := 151
var color3 : int := 57
var color4 : int := 83
var color5 : int := 103
var color6 : int := 102
var color7 : int := 11
var curcolor : int := color1
var sunDelay : int := 10
var starDelay : int := 300
var loopDelay : int := 3000

loop

% Sun is moving up
for x : 50 .. 500
if x = 50 then
curcolor := color1
elsif x = 70 then
curcolor := color2
elsif x = 100 then
curcolor := color3
elsif x = 150 then
curcolor := color4
elsif x = 200 then
curcolor := color5
elsif x = 250 then
curcolor := color6
elsif x > 300 then
curcolor := color7
end if
drawBackground (curcolor)


drawfilloval (450, x, 50, 50, yellow)
if (x < 150) then
drawStars (0)
end if
drawhills ()
drawMovableObject()
View.Update
delay (sunDelay)
drawfilloval (450, x, 50, 50, curcolor)
end for

% Sun is moving to the left
for decreasing y : 450 .. 100
drawBackground (curcolor)
drawhills ()
drawfilloval (y, 500, 50, 50, yellow)
drawMovableObject()
View.Update
delay (sunDelay)
drawfilloval (y, 500, 50, 50, color7)
end for

% Sun is moving down
for decreasing i : 500 .. 10
if i = 500 then
curcolor := color7
elsif i = 480 then
curcolor := color6
elsif i = 350 then
curcolor := color5
elsif i = 250 then
curcolor := color4
elsif i = 150 then
curcolor := color3
elsif i = 50 then
curcolor := color2
elsif i < 30 then
curcolor := color1
end if
drawBackground (curcolor)
drawfilloval (100, i, 50, 50, yellow)

if (i = 150) then
drawhills ()
drawMovableObject()
drawStars (starDelay)
elsif (i < 150) then
drawStars (0)
end if
drawhills ()
drawMovableObject()
View.Update
delay (sunDelay)
drawfilloval (100, i, 50, 50, curcolor)
drawhills ()
end for

delay (loopDelay)
end loop
Sponsor
Sponsor
Sponsor
sponsor
Tony




PostPosted: Mon Apr 14, 2008 11:30 am   Post subject: RE:Animation problem

in your procedure to draw a bug, add another argument for a frame
code:

procedure drawBug(x1,y1, frame:int)

Where frame increments each time through the loop. This creates a loop internal to the bug, and you can draw it in different steps.
Latest from compsci.ca/blog: Tony's programming blog. DWITE - a programming contest.
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  [ 2 Posts ]
Jump to:   


Style:  
Search: