C,
pasted
on Jun 11:
|
////////////////////////////////////////////////////////////////////////////////////////////////////
var THIS:Object = this;
////////////////////////////////////////////////////////////////////////////////////////////////////
THIS.ENGINE =
{
CORE:
{
CAMERA:
{
CENTER:
{
X:0.0,
Y:0.0
},
TRANSFORM:
{
POSITION:
{
X:0.0,
Y:0.0
}
}
},
FPS:0.0,
INPUT:
{
KEYS:new Array ()
},
MATH:
{
ANGLE_IN_DEGREE:function (a:Object, b:Object)
{
return ((THIS.ENGINE.CORE.MATH.ANGLE_IN_RADIAN (a, b) / Math.PI) * 180.0);
},
ANGLE_IN_RADIAN:function (a:Object, b:Object)
{
var angle:Number = Math.atan2 ((b._y - a._y), (b._x - a._x));
return angle;
}
},
OBJECTS:new Array (),
STATES:new Array ()
},
EVENT:
{
ON_ENTER_FRAME:function ()
{
var object:Object = null;
var state:Object = null;
for (object in THIS.ENGINE.CORE.OBJECTS)
{
object = THIS.ENGINE.CORE.OBJECTS [object];
THIS.ENGINE.FN.OBJECT.RENDER (object);
}
state = THIS.ENGINE.CORE.STATES [0];
((state == null) ? null : state.UPDATE (THIS.ENGINE));
return THIS.ENGINE;
},
ON_KEY_DOWN:function ()
{
THIS.ENGINE.CORE.INPUT.KEYS [Key.getCode ()] = 1.0;
return THIS.ENGINE;
},
ON_KEY_UP:function ()
{
THIS.ENGINE.CORE.INPUT.KEYS [Key.getCode ()] = 0.0;
return THIS.ENGINE;
},
ON_MOUSE_DOWN:function ()
{
return THIS.ENGINE;
},
ON_MOUSE_UP:function ()
{
return THIS.ENGINE;
}
},
FN:
{
CORE:
{
INITIALIZE:function ()
{
var i:Number = 0;
THIS.ENGINE.CORE.INPUT.KEYS.length = 256;
for (i = 0; i != THIS.ENGINE.CORE.INPUT.KEYS.length; ++i)
{
THIS.ENGINE.CORE.INPUT.KEYS [i] = 0;
}
return THIS.ENGINE;
}
},
OBJECT:
{
ANIMATION:function (object:Object, from:Number, to:Number, loop:Boolean, event:Object)
{
delete object.onEnterFrame;
object.onEnterFrame = null;
object.ANIMATION = new Object ();
object.ANIMATION.CURRENT_FRAME = from;
object.ANIMATION.EVENT = event;
object.ANIMATION.FROM = from;
object.ANIMATION.LOOP = loop;
object.ANIMATION.TO = to;
object.gotoAndStop (object.ANIMATION.CURRENT_FRAME);
object.onEnterFrame = function ()
{
this.ANIMATION.CURRENT_FRAME = Math.min (this.ANIMATION.TO, this.ANIMATION.CURRENT_FRAME);
this.gotoAndStop (this.ANIMATION.CURRENT_FRAME++);
if (this.ANIMATION.CURRENT_FRAME == this.ANIMATION.TO)
{
if (this.ANIMATION.LOOP == false)
{
delete this.onEnterFrame;
this.onEnterFrame = null;
this.ANIMATION.EVENT.ON_COMPLETE (this);
}
else
{
this.ANIMATION.CURRENT_FRAME = this.ANIMATION.FROM;
}
}
return;
};
return THIS.ENGINE;
},
ADD:function (object:Object)
{
var i:Number = THIS.ENGINE.CORE.OBJECTS.indexOf (object, 0);
THIS.ENGINE.CORE.OBJECTS.splice (i, 1);
THIS.ENGINE.CORE.OBJECTS.push (object);
THIS.ENGINE.FN.OBJECT.RENDER (object);
return THIS.ENGINE;
},
DIRECTION:function (object:Object, target:Object, directions:Array)
{
var angle:Number = Math.floor (-THIS.ENGINE.CORE.MATH.ANGLE_IN_DEGREE (target, object) + 180.0);
var rotation:Number = (angle - 270.0);
if (rotation < 0.0)
{
rotation = (rotation + 360.0);
}
var d:Number = Math.floor (rotation / (360.0 / 32.0));
var direction:Number = directions [d];
return direction;
},
RENDER:function (object:Object)
{
if (object._visible == false)
{
}
else
{
object.Z = ((object._y + THIS.ENGINE.CORE.CAMERA.TRANSFORM.POSITION.Y) / THIS.ENGINE.CORE.CAMERA.CENTER.Y);
object.Y = 0.0;
object.X = ((object._x - THIS.ENGINE.CORE.CAMERA.CENTER.X) * object.Z);
object.SCALE = (object.Z * 100.0);
object._alpha = object.alpha;
object._xscale = object._yscale = object.SCALE;
object.swapDepths (object._y);
}
return THIS.ENGINE;
}
},
PATH:
{
CONNECT:function (node_a:Object, node_b:Object, vice_versa:Boolean)
{
if (node_a.CONNECT == null)
{
node_a.CONNECT = new Object ();
}
node_a.CONNECT [node_b] = node_b;
trace ("connecting " + node_a._name + " TO " + node_b._name);
if (vice_versa == false)
{
}
else
{
THIS.ENGINE.FN.PATH.CONNECT (node_b, node_a, false);
}
return THIS.ENGINE;
},
FIND:function (node_a:Object, node_b:Object)
{
var move:Object = null;
var node:Object = null;
var object:Object = null;
var path:Array = null;
if ((node_a.CONNECT == null) || (node_b.CONNECT == null))
{
}
else
{
move = new Object ();
move.CLOSE = new Object ();
move.OPEN = new Array ();
object = new Object ();
object.NODE = node_a;
object.PARENT = null;
move.OPEN.push (object);
do
{
if (move.OPEN.length == 0)
{
object = null;
break;
}
else
{
object = move.OPEN.shift ();
if (object.NODE == node_b)
{
break;
}
else
{
move.CLOSE [object.NODE] = object;
for (node in object.NODE.CONNECT)
{
node = object.NODE.CONNECT [node];
if (move.CLOSE [node] == null)
{
move.OPEN.push ({NODE:node, PARENT:object});
}
}
}
}
}
while (true);
for (node in node_a.CONNECT)
{
node = node_a.CONNECT [node];
}
if (object == null)
{
path = null;
}
else
{
path = new Array ();
do
{
if (object.PARENT == null)
{
break;
}
else
{
path.unshift (object.NODE);
object = object.PARENT;
}
}
while (true);
if (path.length == 0)
{
path = null;
}
}
}
return path;
}
},
STATE:
{
CHANGE:function (state:Object)
{
try
{
THIS.ENGINE.CORE.STATES [0].DEINITIALIZE (THIS.ENGINE);
}
catch (error:Error)
{
}
if (state == null)
{
}
else
{
THIS.ENGINE.CORE.STATES.unshift (state);
THIS.ENGINE.CORE.STATES [0].INITIALIZE (THIS.ENGINE);
}
return THIS.ENGINE;
}
},
TWEEN:
{
RE_START:function (object:Object)
{
var o:Object = null;
var vector:Number = 0.0;
object.TWEEN.EVENT.ON_RE_START (object);
object.TWEEN.STEP = 0;
for (o in object.TWEEN.FROM)
{
if (object [o] == null)
{
}
else
{
object [o] = object.TWEEN.FROM [o];
}
}
return THIS.ENGINE;
},
START:function (object:Object)
{
object.TWEEN.EVENT.ON_START (object);
object.onEnterFrame = function ()
{
var distance:Number = 0.0;
var o:Object = null;
var vector:Number = 0.0;
if (this.TWEEN == null)
{
}
else
{
if (this.TWEEN.TO == null)
{
}
else
{
for (o in this.TWEEN.TO)
{
if (this [o] == null)
{
}
else
{
vector = (this.TWEEN.TO [o] - this.TWEEN.FROM [o]);
vector = (vector / this.TWEEN.STEPS);
this [o] = (this [o] + vector);
}
}
if (this.TWEEN.STEP == this.TWEEN.STEPS)
{
for (o in this.TWEEN.TO)
{
if (this [o] == null)
{
}
else
{
this [o] = this.TWEEN.TO [o];
}
}
this.TWEEN.EVENT.ON_COMPLETE (this);
if (this.TWEEN.TO.LOOP)
{
THIS.ENGINE.FN.TWEEN.RE_START (this);
}
else
{
THIS.ENGINE.FN.TWEEN.STOP (this);
}
}
else
{
this.TWEEN.STEP++;
this.TWEEN.EVENT.ON_UPDATE (this);
}
}
}
return;
};
return THIS.ENGINE;
},
STOP:function (object:Object)
{
if (object.TWEEN == null)
{
}
else
{
delete object.TWEEN.onEnterFrame;
delete object.TWEEN;
}
return;
},
TO:function (object:Object, to:Object, time:Number, event:Object)
{
var o:Object = null;
var from:Object = new Object ();
THIS.ENGINE.FN.TWEEN.STOP (object);
for (o in to)
{
if (object [o] == null)
{
}
else
{
from [o] = object [o];
}
}
object.TWEEN =
{
OBJECT:object,
FROM:from,
EVENT:event,
STEP:0,
STEPS:(THIS.ENGINE.CORE.FPS * time),
TIME:time,
TO:to
};
THIS.ENGINE.FN.TWEEN.START (object);
return THIS.ENGINE;
}
}
}
};
////////////////////////////////////////////////////////////////////////////////////////////////////
THIS.onEnterFrame = THIS.ENGINE.EVENT.ON_ENTER_FRAME;
THIS.onKeyDown = THIS.ENGINE.EVENT.ON_KEY_DOWN;
THIS.onKeyUp = THIS.ENGINE.EVENT.ON_KEY_UP;
THIS.onMouseUp = THIS.ENGINE.EVENT.ON_MOUSE_UP;
////////////////////////////////////////////////////////////////////////////////////////////////////
THIS.STATE =
{
DEINITIALIZE:function (engine:Object)
{
return;
},
INITIALIZE:function (engine:Object)
{
var i:Number = 0;
var object:Object = null;
THIS.MC_PLAYER.ANIMATION = "idle";
THIS.MC_PLAYER.DIRECTION = 0;
THIS.MC_PLAYER.DIRECTIONS =
[
0, 0,
45, 45, 45, 45, 45,
90, 90, 90,
135, 135, 135, 135, 135,
180, 180, 180,
225, 225, 225, 225, 225,
270, 270, 270,
315, 315, 315, 315, 315,
0
];
THIS.MC_PLAYER.LOOK_AT =
{
_x:0.0,
_y:0.0
};
THIS.MC_PLAYER.NODE =
{
CURRENT:THIS.MC_NODE_1,
TO:null
};
THIS.MC_PLAYER.PATH = null;
THIS.MC_PLAYER.TWEEN = null;
engine.FN.OBJECT.ADD (THIS.MC_PLAYER);
engine.FN.OBJECT.ADD (THIS.MC_NODE_0);
engine.FN.OBJECT.ADD (THIS.MC_NODE_1);
engine.FN.OBJECT.ADD (THIS.MC_NODE_2);
engine.FN.OBJECT.ADD (THIS.MC_NODE_3);
engine.FN.OBJECT.ADD (THIS.MC_NODE_4);
engine.FN.OBJECT.ADD (THIS.MC_NODE_5);
engine.FN.OBJECT.ADD (THIS.MC_NODE_6);
engine.FN.OBJECT.ADD (THIS.MC_NODE_7);
engine.FN.OBJECT.ADD (THIS.MC_NODE_8);
engine.FN.OBJECT.ADD (THIS.MC_NODE_9);
engine.FN.OBJECT.ADD (THIS.MC_NODE_10);
engine.FN.OBJECT.ADD (THIS.MC_NODE_11);
engine.FN.OBJECT.ADD (THIS.MC_NODE_12);
engine.FN.OBJECT.ADD (THIS.MC_NODE_13);
engine.FN.OBJECT.ADD (THIS.MC_NODE_14);
engine.FN.OBJECT.ADD (THIS.MC_NODE_15);
engine.FN.OBJECT.ADD (THIS.MC_NODE_16);
engine.FN.PATH.CONNECT (THIS.MC_NODE_0, THIS.MC_NODE_1, true);
engine.FN.PATH.CONNECT (THIS.MC_NODE_1, THIS.MC_NODE_2, true);
engine.FN.PATH.CONNECT (THIS.MC_NODE_1, THIS.MC_NODE_4, true);
engine.FN.PATH.CONNECT (THIS.MC_NODE_2, THIS.MC_NODE_3, true);
engine.FN.PATH.CONNECT (THIS.MC_NODE_3, THIS.MC_NODE_6, true);
engine.FN.PATH.CONNECT (THIS.MC_NODE_4, THIS.MC_NODE_5, true);
engine.FN.PATH.CONNECT (THIS.MC_NODE_5, THIS.MC_NODE_6, true);
engine.FN.PATH.CONNECT (THIS.MC_NODE_6, THIS.MC_NODE_7, true);
engine.FN.PATH.CONNECT (THIS.MC_NODE_7, THIS.MC_NODE_8, true);
for (object in engine.CORE.OBJECTS)
{
object = engine.CORE.OBJECTS [object];
switch (object._name)
{
case "MC_PLAYER" :
{
break;
}
case "MC_NODE_0" :
case "MC_NODE_1" :
case "MC_NODE_2" :
case "MC_NODE_3" :
case "MC_NODE_4" :
case "MC_NODE_5" :
case "MC_NODE_6" :
case "MC_NODE_7" :
case "MC_NODE_8" :
case "MC_NODE_9" :
case "MC_NODE_10" :
case "MC_NODE_11" :
case "MC_NODE_12" :
case "MC_NODE_13" :
case "MC_NODE_14" :
case "MC_NODE_15" :
case "MC_NODE_16" :
{
object.onRelease = function ()
{
if (THIS.MC_PLAYER.PATH == null)
{
THIS.MC_PLAYER.PATH = THIS.ENGINE.FN.PATH.FIND (THIS.MC_PLAYER.NODE.CURRENT, this);
THIS.MC_PLAYER.ANIMATION = "pre_walk";
}
return;
};
break;
}
default :
{
break;
}
}
}
THIS.ENGINE.CORE.CAMERA.CENTER.X = (Stage.width * 0.5);
THIS.ENGINE.CORE.CAMERA.CENTER.Y = Stage.height;
THIS.ENGINE.CORE.CAMERA.TRANSFORM.POSITION.X = 0.0;
THIS.ENGINE.CORE.CAMERA.TRANSFORM.POSITION.Y = (Stage.height * 0.5);
THIS.ENGINE.CORE.FPS = 60.0;
Key.addListener (THIS);
return;
},
UPDATE:function (engine:Object)
{
THIS.MC_LAYER_MIDDLE.swapDepths (THIS.MC_LAYER_MIDDLE._y);
THIS.MC_LAYER_TOP.swapDepths (THIS.getNextHighestDepth ());
if (THIS.MC_PLAYER.PATH == null)
{
THIS.MC_PLAYER._x = THIS.MC_PLAYER.NODE.CURRENT._x;
THIS.MC_PLAYER._y = THIS.MC_PLAYER.NODE.CURRENT._y;
}
else
{
switch (THIS.MC_PLAYER.ANIMATION)
{
case "pre_walk" :
case "walk" :
{
THIS.MC_PLAYER.DIRECTION = THIS.ENGINE.FN.OBJECT.DIRECTION (THIS.MC_PLAYER, THIS.MC_PLAYER.PATH [0], THIS.MC_PLAYER.DIRECTIONS);
break;
}
default :
{
break;
}
}
}
THIS.MC_PLAYER.MC_SPRITE.gotoAndStop (THIS.MC_PLAYER.ANIMATION + "_" + THIS.MC_PLAYER.DIRECTION);
switch (THIS.MC_PLAYER.ANIMATION)
{
case "pre_walk" :
{
THIS.MC_PLAYER.ANIMATION = null;
THIS.ENGINE.FN.OBJECT.ANIMATION
(
THIS.MC_PLAYER.MC_SPRITE.MC_ANIMATION,
1,
THIS.MC_PLAYER.MC_SPRITE.MC_ANIMATION._totalframes,
false,
{
ON_COMPLETE:function (object:Object)
{
THIS.MC_PLAYER.ANIMATION = "walk";
return;
}
}
);
break;
}
case "walk" :
{
THIS.MC_PLAYER.ANIMATION = null;
THIS.ENGINE.FN.OBJECT.ANIMATION
(
THIS.MC_PLAYER.MC_SPRITE.MC_ANIMATION,
1,
THIS.MC_PLAYER.MC_SPRITE.MC_ANIMATION._totalframes,
true,
{
ON_COMPLETE:function (object:Object)
{
THIS.MC_PLAYER.ANIMATION = "walk";
return;
}
}
);
if (THIS.MC_PLAYER.TWEEN == null)
{
THIS.ENGINE.FN.TWEEN.TO
(
THIS.MC_PLAYER,
{
_x:THIS.MC_PLAYER.PATH [0]._x,
_y:THIS.MC_PLAYER.PATH [0]._y
},
1.0,
{
ON_COMPLETE:function (object)
{
THIS.MC_PLAYER.NODE.TO = THIS.MC_PLAYER.PATH.shift ();
THIS.MC_PLAYER.NODE.CURRENT = THIS.MC_PLAYER.NODE.TO;
if (THIS.MC_PLAYER.PATH.length == 0)
{
THIS.MC_PLAYER.ANIMATION = "stop";
}
else
{
THIS.MC_PLAYER.ANIMATION = "walk";
}
return;
},
ON_START:function (object)
{
return;
},
ON_UPDATE:function (object)
{
return;
}
}
);
}
break;
}
case "stop" :
{
THIS.MC_PLAYER.ANIMATION = null;
THIS.ENGINE.FN.OBJECT.ANIMATION
(
THIS.MC_PLAYER.MC_SPRITE.MC_ANIMATION,
1,
THIS.MC_PLAYER.MC_SPRITE.MC_ANIMATION._totalframes,
false,
{
ON_COMPLETE:function (object:Object)
{
THIS.MC_PLAYER.ANIMATION = "idle";
THIS.MC_PLAYER.PATH = null;
return;
}
}
);
break;
}
case "idle" :
{
THIS.MC_PLAYER.MC_SPRITE.MC_ANIMATION.gotoAndStop (1);
break;
}
default :
{
break;
}
}
return;
}
};
////////////////////////////////////////////////////////////////////////////////////////////////////
THIS.ENGINE.FN.CORE.INITIALIZE ();
THIS.ENGINE.FN.STATE.CHANGE (THIS.STATE);
////////////////////////////////////////////////////////////////////////////////////////////////////
THIS.stop ();
////////////////////////////////////////////////////////////////////////////////////////////////////
|
Output:
|
Line 4: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'THIS'
Line 8: error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token
Line 499: error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token
Line 500: error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token
Line 501: error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token
Line 502: error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token
Line 506: error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token
Line 790: error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token
Line 792: error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token
Line 796: error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token
|
|