Tap dancing walk animation
Author |
Message |
petree08
|
Posted: Fri Oct 27, 2006 12:16 pm Post subject: Tap dancing walk animation |
|
|
This is a funny little program i wrote when a saw a walk animation on compsci last year. I didn't even look at the code for it because i was the biggest noob there was, but it inspired me latter on to make this. It may not look anything like the animation i saw before but i still think it's okay
code: |
var Key : array char of boolean
var X : int := maxx div 2
var y : int := 20
var dy : int := 1
var legangle := 1
var legangle2 := -2
var dy2 : int := 1
var dy3 : int := -1
var Head : int := 200
var Headd : int := 1
var Y : int := 201
var Ch : char
procedure Pause
Ch := getchar
end Pause
setscreen ("graphics:max,max,nobuttonbar,offscreenonly")
colorback (7)
loop
X := X + 2
Head := Head + Headd
if Head > 200 then
Headd := -Headd
end if
if Head <= 175 then
Headd := -Headd
end if
legangle2 := legangle2 + dy3
legangle := legangle + dy2
if legangle <= 1 then
dy2 := -dy2
elsif legangle >= 20 then
dy2 := -dy2
end if
if X >= maxx + 50 then
X := 1
end if
if legangle2 <= 1 then
dy3 := -dy3
elsif legangle2 >= 20 then
dy3 := -dy3
end if
if X >= maxx + 50 then
X := 1
end if
y := y + dy
if y > 20 then
dy := -dy
end if
if y < -20 then
dy := -dy
end if
cls
drawline (1, 200, maxx, 200, 0)
drawdot (X, Y, 0)
% person %%%%%%%%
% head
drawfilloval (X, Y + Head, 15, 15, 0)
Draw.Arc (X, Y + Head, 7, 9, 180, 0, 7)
drawfilloval (X - 5, Y + Head + 5, 3, 3, 7)
drawfilloval (X + 5, Y + Head + 5, 3, 3, 7)
%hat
drawfillbox (X - 20, Y + Head + 12, X + 20, Y + Head + 17, 15)
drawfillbox (X - 10, Y + Head + 12, X + 10, Y + Head + 40, 15)
%Body (spine)
drawline (X, Y + Head - 20, X, Y + 75, 0)
%HIPS
drawline (X - 5, Y + 75 - y, X + 5, Y + 75 + y, 0)
% Legs
drawline (X - 5, Y + 75 - y, X - 5, Y + 75 - y - 60, 0)
drawline (X + 5, Y + 75 + y, X + 5, Y + 75 + y - 60, 0)
drawfilloval (X - 13, Y + 75 - y - 60, 7, 3, 15)
drawfilloval (X + 13, Y + 75 + y - 60, 7, 3, 15)
%arms
drawline (X - 5, Y + 150 - y, X + 5, Y + 150 + y, 0)
drawline (X - 5, Y + 150 - y, X - 15, Y + 150 - y - 60, 0)
drawfilloval (X + 20, Y + 150 + y - 60, 7, 3, 0)
drawfilloval (X - 20, Y + 150 - y - 60, 7, 3, 0)
drawline (X + 5, Y + 150 + y, X + 15, Y + 150 + y - 60, 0)
delay (5)
View.Update
Input.KeyDown (Key)
end loop
|
|
|
|
|
|
 |
Sponsor Sponsor

|
|
 |
jamonathin

|
Posted: Fri Oct 27, 2006 2:33 pm Post subject: (No subject) |
|
|
lol.... heres a remake for you - or at least anyone else
code: |
var Key : array char of boolean
var X : int := maxx div 2
var y : int := 20
var dy : int := 1
var legangle := 1
var legangle2 := -2
var dy2 : int := 1
var dy3 : int := -1
var Head : int := 200
var Headd : int := 1
var Y : int := 201
var Ch : char
procedure Pause
Ch := getchar
end Pause
setscreen ("graphics:max,max,nobuttonbar,offscreenonly")
colorback (7)
for i : 1 .. 300
X := X + 5
Head := Head + Headd
if Head > 200 then
Headd := -Headd
end if
if Head <= 175 then
Headd := -Headd
end if
legangle2 := legangle2 + dy3
legangle := legangle + dy2
if legangle <= 1 then
dy2 := -dy2
elsif legangle >= 20 then
dy2 := -dy2
end if
if X >= maxx + 50 then
X := 1
end if
if legangle2 <= 1 then
dy3 := -dy3
elsif legangle2 >= 20 then
dy3 := -dy3
end if
if X >= maxx + 50 then
X := 1
end if
y := y + dy
if y > 20 then
dy := -dy
end if
if y < -20 then
dy := -dy
end if
cls
drawline (1, 200, maxx, 200, 0)
drawdot (X, Y, 0)
% person %%%%%%%%
% head
drawfilloval (X, Y + Head, 15, 15, 0)
Draw.Arc (X, Y + Head, 7, 9, 180, 0, 7)
drawfilloval (X - 5, Y + Head + 5, 3, 3, 7)
drawfilloval (X + 5, Y + Head + 5, 3, 3, 7)
%hat
drawfillbox (X - 20, Y + Head + 12, X + 20, Y + Head + 17, 15)
drawfillbox (X - 10, Y + Head + 12, X + 10, Y + Head + 40, 15)
%Body (spine)
drawline (X, Y + Head - 20, X, Y + 75, 0)
%HIPS
drawline (X - 5, Y + 75 - y, X + 5, Y + 75 + y, 0)
% Legs
drawline (X - 5, Y + 75 - y, X - 5, Y + 75 - y - 60, 0)
drawline (X + 5, Y + 75 + y, X + 5, Y + 75 + y - 60, 0)
drawfilloval (X - 13, Y + 75 - y - 60, 7, 3, 15)
drawfilloval (X + 13, Y + 75 + y - 60, 7, 3, 15)
%arms
drawline (X - 5, Y + 150 - y, X + 5, Y + 150 + y, 0)
drawline (X - 5, Y + 150 - y, X - 15, Y + 150 - y - 60, 0)
drawfilloval (X + 20, Y + 150 + y - 60, 7, 3, 0)
drawfilloval (X - 20, Y + 150 - y - 60, 7, 3, 0)
drawline (X + 5, Y + 150 + y, X + 15, Y + 150 + y - 60, 0)
%delay (5)
View.Update
Input.KeyDown (Key)
end for
var xb, yb : int := maxx
yb := Y + Head
var x, yy, r, a, b : array 1 .. 50 of int
var count : int := 0
for i : 1 .. 50
x (i) := X + Rand.Int (-5, 5)
yy (i) := Y + Head
r (i) := Rand.Int (1, 2)
a (i) := Rand.Int (-10, 10)
b (i) := Rand.Int (-10, 10)
end for
proc spray
for i : 1 .. 50
x (i) += a (i)
yy (i) += b (i)
drawfilloval (x (i), yy (i), r (i), r (i), red)
end for
end spray
for i : 1 .. maxx + 15 by 15
Draw.ThickLine (xb, yb - 1, maxx, yb - 1, 8, black)
drawfilloval (xb, yb, 5, 2, grey)
xb -= 30
if xb <= X then
spray
end if
View.Update
end for
|
lol  |
|
|
|
|
 |
|
|