:AS Help: MC Change Direction

Started by: Chimaera | Replies: 3 | Views: 547

Chimaera
2

Posts: 2,490
Joined: Oct 2005
Rep: 10

View Profile
Apr 11, 2008 9:52 PM #113345
Howdy lads, me again..

In my simple little platformer I've sued THE simple code, basically the daddy of C/P games, the real generic one.

This code:
onClipEvent (load) {
var vX:Number = 0;
var vY:Number = 0;
var mX:Number = 10;
var mY:Number = 10;
var s:Number = 1;
var w:Number = _width/2;
var h:Number = _height/2;
var jump:Number = 0;
var keys:Object = {right:39, left:37, up:38};
}
onClipEvent (enterFrame) {
for (a=0; a if (vY>0) {
if (!_root.level.hitTest(_x, _y+h, true)) {
_y += s;
} else {
if (jump>0) {
jump = 0;
}
vY = 0;
break;
}
} else if (vY<0) {
if (!_root.level.hitTest(_x, _y-h, true)) {
_y -= s;
} else {
vY = 0;
break;
}
}
}
for (a=0; a if (vX>0) {
if (!_root.level.hitTest(_x+w, _y, true)) {
_x += s;
} else {
vX = 0;
break;
}
} else if (vX<0) {
if (!_root.level.hitTest(_x-w, _y, true)) {
_x -= s;
} else {
vX = 0;
break;
}
}
}
if (Key.isDown(keys["right"])) {
if (vX vX += s;
}
} else if (Key.isDown(keys["left"])) {
if (vX>-mX) {
vX -= s;
}
} else {
if (vX>0) {
vX -= s;
} else if (vX<0) {
vX += s;
}
}
if (Key.isDown(keys["up"]) && jump == 0) {
vY = -10;
jump = 3;
}
if (!_root.level.hitTest(_x, _y+h, true)) {
if (vY vY += s;
}
} else {
if (jump>0) {
jump = 0;
}
}
}


What would I need to alter so that when left arrow key is down, the MC faces left?
Kitsune
2

Posts: 6,011
Joined: May 2006
Rep: 10

View Profile
Apr 11, 2008 11:06 PM #113392
Maybe this will help you?

if(Key.isDown(Key.LEFT)){
_root.mc.x = -1*= _root.mc.getWidth();
}

This is off the top of my head. I know the getWidth method gets the dimensions of the movie clip or movie as a variable as I've seen done. multiply by negative one and I assume he will face left.

(not sure on x too. I know _x is position and I THINK x is width.)
Steyene

Posts: 2,060
Joined: Apr 2006
Rep: 10

View Profile
Apr 12, 2008 1:05 AM #113481
You can also you x.scale

So for when it is facing right
x.scale = 100;

Then when facing right
x.scale = - 100;


I think that should do it.
Kitsune
2

Posts: 6,011
Joined: May 2006
Rep: 10

View Profile
Apr 12, 2008 2:48 AM #113505
Quote from Steiner
You can also you x.scale

So for when it is facing right
x.scale = 100;

Then when facing right
x.scale = - 100;


I think that should do it.


Are you doing AS3? Now I remember, and in AS2 it's _xscale.