18. april 2005 - 15:34
Der er
4 kommentarer
bounds problem
hvordan kan jeg lave sådan en bound hvis man styre sig selv oppe fra og ens movieclips instance name er: person
og bounds instance name er: land
det skal lige siges at det er bagrunden der bevæger sig og den har denne action:
onClipEvent (enterFrame) {
if (Key.isDown(Key.UP) && Key.isDown(Key.RIGHT)) {
setProperty(this, _y, this._y + 1);
setProperty(this, _x, this._x - 1);
} else if (Key.isDown(Key.DOWN) && Key.isDown(Key.RIGHT)) {
setProperty(this, _y, this._y - 1);
setProperty(this, _x, this._x - 1);
} else if (Key.isDown(Key.UP) && Key.isDown(Key.LEFT)) {
setProperty(this, _y, this._y + 1);
setProperty(this, _x, this._x + 1);
} else if (Key.isDown(Key.DOWN) && Key.isDown(Key.LEFT)) {
setProperty(this, _y, this._y - 1);
setProperty(this, _x, this._x + 1);
} else if (Key.isDown(Key.LEFT)) {
setProperty(this, _x, this._x +1);
} else if (Key.isDown(Key.RIGHT)) {
setProperty(this, _x, this._x - 1);
} else if (Key.isDown(Key.DOWN)) {
setProperty(this, _y, this._y - 1);
} else if (Key.isDown(Key.UP)) {
setProperty(this, _y, this._y + 1);
} else if (Key.isDown(Key.SPACE)) {
setProperty(this, _y, this._y -1);
setProperty(this, _x, this._x -1);
}
}
såååå hvad er actionen til kortet så at ens bil (et andet movieclip) ikke støder ind i "land" movieclippet?
svar udbedes tak
18. april 2005 - 16:18
#1
For også lige at gøre din kode lidt nyere og kortere:
Følgende sættes i 1. frame på det mc hvori baggrunden og bilen ligger:
onEnterFrame = function(){
var xspeed = 0;
var yspeed = 0;
if(Key.isDown(Key.SPACE)){
xpeed = -1;
yspeed = -1;
}
if(Key.isDown(Key.LEFT))
xspeed = 1;
else if(Key.isDown(Key.RIGHT))
xpseed = -1;
if(Key.isDown(Key.UP))
yspeed = 1;
else if(Key.isDown(Key.DOWN))
yspeed = -1;
BAGGRUND._x += xspeed;
BAGGRUND._y += yspeed;
if(BAGGRUND.hitTest(BIL){
BAGGRUND._x -= xspeed;
BAGGRUND._y -= yspeed;
}
};
Sådan ca. ;)
18. april 2005 - 17:18
#3
joo... men ovenstående er bare lidt smartere...
I hvert fald skal du have de der setProperty væk - det er noget Flash4/5 snask, som man ikke vil røre med en ildtang... Her er en mindre ændring så:
onClipEvent (enterFrame) {
var xspeed = 0;
var yspeed = 0;
if (Key.isDown(Key.UP) && Key.isDown(Key.RIGHT)) {
yspeed = 1;
xpeed = -1;
} else if (Key.isDown(Key.DOWN) && Key.isDown(Key.RIGHT)) {
yspeed = -1;
xspeed = -1;
} else if (Key.isDown(Key.UP) && Key.isDown(Key.LEFT)) {
yspeed = 1;
xspeed = 1;
} else if (Key.isDown(Key.DOWN) && Key.isDown(Key.LEFT)) {
yspeed = -1;
xspeed = 1;
} else if (Key.isDown(Key.LEFT)) {
xspeed = 1;
} else if (Key.isDown(Key.RIGHT)) {
xspeed = -1
} else if (Key.isDown(Key.DOWN)) {
yspeed = -1;
} else if (Key.isDown(Key.UP)) {
yspeed = 1;
} else if (Key.isDown(Key.SPACE)) {
yspeed = -1;
xspeed = -1;
}
this._x += xspeed;
this._y += yspeed;
if(this.hitTest(this._parent.land)){
this._x -= xspeed;
this._y -= yspeed;
}
}
Det skulle vist være den simpleste omformning af dit script...