Action Script 3, can someone spot where my code is wrong?
I want to have my characters controlled separately, with 'FireBoy' moving using the left, up and right keys and with 'WaterGirl' moving with the a, w and d keys. However upon editing my code somehow WaterGirl now moves with the right key instead of the d key. Please can someone spot where I have made a mistake and advise me on how to resolve the problem.
My code for main.as is:
package
{
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.events.MouseEvent;
/**
* ...
* @7111211 Harry
*/
public class Main extends Sprite
{
private var leftDown:Boolean = false;
private var rightDown:Boolean = false;
private var aDown:Boolean = false;
private var dDown:Boolean = false;
private var FireBoy:Hero = new Hero();
public var StartButton:Go;
public var WaterGirl:Female = new Female();
public var Door1:Firedoor;
public var Door2:Waterdoor;
public var Fire:Lava;
public var Water:Blue;
public var Green:Gem;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
public function init(e:Event = null):void
{
StartButton = new Go();
StartButton.x = 100;
StartButton.y = 5;
addChild(StartButton);
StartButton.addEventListener(MouseEvent.CLICK, startgame);
}
private function startgame(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
removeChild(StartButton);
FireBoy.y = 495;
addChild(FireBoy);
stage.addEventListener(Event.ENTER_FRAME, HerocheckStuff);
stage.addEventListener(KeyboardEvent.KEY_DOWN, HerokeysDown);
stage.addEventListener(KeyboardEvent.KEY_UP, HerokeysUp);
WaterGirl.x = 70;
WaterGirl.y = 495;
addChild(WaterGirl);
stage.addEventListener(Event.ENTER_FRAME, FemalecheckStuff);
stage.addEventListener(KeyboardEvent.KEY_DOWN, FemalekeysDown);
stage.addEventListener(KeyboardEvent.KEY_UP, FemalekeysUp);
Door1 = new Firedoor();
stage.addChild(Door1);
Door1.x = 5;
Door1.y = 62;
Door2 = new Waterdoor();
stage.addChild(Door2);
Door2.x = 100;
Door2.y = 62;
Fire = new Lava();
stage.addChild(Fire);
Fire.x = 160;
Fire.y = 570;
Water = new Blue();
stage.addChild(Water);
Water.x = 350;
Water.y = 160;
Green = new Gem()
stage.addChild(Green);
Green.x = 500;
Green.y = 100;
graphics.beginFill(0x804000, 1);
graphics.drawRect(0, 0, 800, 40);
graphics.endFill();
graphics.beginFill(0x804000, 1);
graphics.drawRect(0, 170, 600, 40);
graphics.endFill();
graphics.beginFill(0x804000, 1);
graphics.moveTo(800, 200);
graphics.lineTo(800, 700);
graphics.lineTo(400, 700);
graphics.lineTo(100, 700);
graphics.endFill();
graphics.beginFill(0x804000, 1);
graphics.drawRect(0, 580, 800, 40);
graphics.endFill();
}
public function Collision():void
{
if (WaterGirl.hitTestObject(Fire))
{
WaterGirl.x = 70;
WaterGirl.y = 495;
}
if (FireBoy.hitTestObject(Water))
{
FireBoy.x = 15;
FireBoy.y = 495;
}
}
public function HerocheckStuff(e:Event):void
{
if (leftDown)
FireBoy.x -= 5;
if (rightDown)
FireBoy.x += 5;
FireBoy.adjust();
Collision();
Check_Border();
}
public function HerokeysDown(e:KeyboardEvent):void
{
if (e.keyCode == 37)
leftDown = true;
if (e.keyCode == 39)
rightDown = true;
if (e.keyCode == 38)
FireBoy.grav = -15;
Collision();
Check_Border();
}
public function HerokeysUp(e:KeyboardEvent):void
{
if (e.keyCode == 37)
leftDown = false;
if (e.keyCode == 39)
rightDown = false;
}
public function FemalecheckStuff(e:Event):void
{
if (aDown)
WaterGirl.x -= 5;
if (rightDown)
WaterGirl.x += 5;
WaterGirl.adjust2();
Collision();
Check_Border();
}
public function FemalekeysDown(e:KeyboardEvent):void
{
if (e.keyCode == 65)
aDown = true;
if (e.keyCode == 68)
dDown = true;
if (e.keyCode == 87)
WaterGirl.grav = -15;
Collision();
Check_Border();
}
public function FemalekeysUp(e:KeyboardEvent):void
{
if (e.keyCode == 65)
aDown = false;
if (e.keyCode == 68)
dDown = false;
}
public function Check_Border():void
{
if (FireBoy.x <= 0)
{
FireBoy.x = 0;
}
else if (FireBoy.x > 750)
{
FireBoy.x = 750;
}
if (WaterGirl.x <= 0)
{
WaterGirl.x = 0;
}
else if (WaterGirl.x > 750)
{
WaterGirl.x = 750;
}
}
}
}
My code for Hero.as (FireBoy) is:
package
{
import flash.display.Bitmap;
import flash.display.Sprite;
public class Hero extends Sprite
{
[Embed(source="../assets/FireBoy.jpg")]
private static const FireBoy:Class;
private var FireBoy:Bitmap;
public var grav:int = 0;
public var floor:int = 535;
public function Hero()
{
FireBoy = new Hero.FireBoy();
scaleX = 0.1;
scaleY = 0.1;
addChild(FireBoy);
}
public function adjust():void
{
this.y += grav;
if(this.y+this.height/2<floor)
grav++;
else
{
grav = 0;
this.y = floor - this.height / 2;
}
if (this.x - this.width / 2 < 0)
this.x = this.width / 2;
if (this.x + this.width / 2 > 800)
this.x = 800 - this.width / 2;
}
}
}
And finally my code for Female.as (WaterGirl) is:
package
{
import flash.display.Bitmap;
import flash.display.Sprite;
/**
* ...
* @7111211 Harry
*/
public class Female extends Sprite
{
[Embed(source="../assets/WaterGirl.png")]
private static const WaterGirl:Class;
private var WaterGirl:Bitmap;
public var grav:int = 0;
public var floor:int = 535;
public function Female()
{
WaterGirl = new Female.WaterGirl();
scaleX = 0.1;
scaleY = 0.1;
addChild(WaterGirl);
}
public function adjust2():void
{
this.y += grav;
if(this.y+this.height/2<floor)
grav++;
else
{
grav = 0;
this.y = floor - this.height / 2;
}
if (this.x - this.width / 2 < 0)
this.x = this.width / 2;
if (this.x + this.width / 2 > 800)
this.x = 800 - this.width / 2;
}
}
}