-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGameObject.as
More file actions
125 lines (95 loc) · 1.95 KB
/
GameObject.as
File metadata and controls
125 lines (95 loc) · 1.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
import flash.display.BitmapData;
class GameObject
{
var mc: MovieClip;
var sprites: Array;
var nextSprite: Number;
var lastSpriteMS: Number;
var playAnimation: Boolean;
var animationFPS: Number;
var xFrac: Number;
var yFrac: Number;
function GameObject(root: MovieClip, bitmapNames: Array, name: String, depth: Number)
{
mc = root.createEmptyMovieClip(name, depth);
sprites = new Array();
for (var i: Number = 0; i < bitmapNames.length; ++i)
{
sprites.push(BitmapData.loadBitmap(bitmapNames[i]));
}
nextSprite = 0;
var firstSprite: BitmapData = sprites[nextSprite];
lastSpriteMS = getTimer();
nextSprite += 1;
playAnimation = false;
animationFPS = 20;
mc.createEmptyMovieClip("inner", 1);
mc.inner.attachBitmap(firstSprite, 1);
mc.inner._x = -firstSprite.width/2;
mc.inner._y = -firstSprite.height/2;
xFrac = 0;
yFrac = 0;
}
function update(deltaTime: Number): Void
{
if (!playAnimation)
{
return;
}
var now: Number = getTimer();
if (now - lastSpriteMS > 1000/animationFPS)
{
mc.inner.attachBitmap(sprites[nextSprite], 1);
nextSprite += 1;
nextSprite %= sprites.length;
lastSpriteMS = now;
}
}
function rotation(): Number
{
return mc._rotation;
}
function translate(x: Number, y: Number): Void
{
var xInt: Number = int(x);
var yInt: Number = int(y);
xFrac += x - xInt;
yFrac += y - yInt;
if (xFrac >= 1)
{
xInt += 1;
xFrac -= 1;
}
if (yFrac >= 1)
{
yInt += 1;
yFrac -= 1;
}
mc._x += xInt;
mc._y += yInt;
}
function rotate(angle: Number): Void
{
mc._rotation += angle;
}
function setRotation(angle: Number): Void
{
mc._rotation = angle;
}
function scale(x: Number, y: Number): Void
{
mc._xscale *= x;
mc._yscale *= y;
}
function right(): Void
{
}
function left(): Void
{
}
function destroy(o: Object): Void
{
Game.currentScene.objects.remove(o);
mc.removeMovieClip();
}
}