level._x = undefined - Hvorfor?!
Hej eksperter!Her er en kode til et spil:
---------------------------
level = 0;
levels = 0;
// Starting positions (level0x, level0y, ..., ..., levelnx, levelny)
array = new Array(675, 100);
setup();
function setup() {
createEmptyMovieClip("particles", 1);
attachMovie("player", "player", 2);
attachMovie("level"+level, "level", 3);
attachMovie("interface", "interface", 4);
// Keys
left = 65;
right = 68;
up = 87;
down = 83;
// Physics
gravity = .5;
friction = .25;
// Position
player._x = array[level+levels];
player._y = array[level+levels+1];
// Current speed
xspeed = 0;
yspeed = 0;
// Acceleration
xacceleration = 1;
yacceleration = 1;
// Rate of movement
xrate = .05;
yrate = .05;
// Maximum speed
maxxspeed = 50;
maxyspeed = 50;
// Level
level._x = 0;
level._y = 0;
setInterval(game, 15);
}
function game() {
// Move left
if (Key.isDown(left)) {
xspeed -= xacceleration;
if (player._currentframe >= 1 && player._currentframe < 9 ) {
player.play();
}
// Move right
} else if (Key.isDown(right)) {
xspeed += xacceleration;
if (player._currentframe >= 9) {
player.play();
}
// Slow down
} else if (xspeed < 0) {
xspeed = Math.min(xspeed+friction, 0);
} else if (xspeed > 0) {
xspeed = Math.max(xspeed-friction, 0);
}
// Move up
if (Key.isDown(up)) {
yspeed += yacceleration;
// Move down
} else if (Key.isDown(down)) {
yspeed -= yacceleration+gravity;
// Fall
} else {
yspeed -= gravity;
}
// Keeping speed above minumum and below maximum
xspeed = Math.max(Math.min(xspeed, maxxspeed), maxxspeed*-1);
yspeed = Math.max(Math.min(yspeed, maxyspeed), maxyspeed*-1);
// Collission
if (level.hitTest(player._x, player._y, true)) {
attachMovie("explosion", "explosion", 10);
explosion._x = player._x;
explosion._y = player._y;
fscommand("quit");
} else {
// Positioning
player._x += xrate*xspeed;
player._y -= yrate*yspeed;
}
}
----------------------------------------------------------
Men den registrerer aldrig hitTest som true; hvorfor ikke?
Jeg har testet med trace, og level._x = undefined.
Hvordan kan dette lade sig gøre???
