Where I am up to now:
The boy moves in all directions and it flips in four directions when you use the arrow keys, the boy is also animated while walking and animated to pick up water and pick apples. I'm struggling to get the hitTests on the walls to work (stopping the boy from leaving the path) and I am also having a problem stopping the walking animation when the arrows are released. I've tried to remove the boy_mc child and replace it with stoppedBoy_mc, but I cannot get it to work at the moment.
Problems I had:
- Flipping of the boy was the biggest problem, I started by putting them into their own functions but that didn't work. To get it to work, they had to each have their own function in the gameLoop.
In terms of graphics, I added more detail to the boy and redrew the mother. Next I have to add the health bars I made in photoshop. Should be done by Monday.
Here is the code:
stop();
// Add child variables
var boy_mc:FrontBoy = new FrontBoy();
var sideBoy_mc:SideBoy = new SideBoy();
var backBoy_mc:BackBoy = new BackBoy();
var stopboy_mc:StoppedBoy = new StoppedBoy();
var stopSideBoy_mc:StoppedSideBoy = new StoppedSideBoy();
var stopBackBoy_mc:StoppedBackBoy = new StoppedBackBoy();
sideBoy_mc.x = 100;
sideBoy_mc.y = 950;
addChild(sideBoy_mc);
//var isStoppedSideBoyPresent:Boolean = false;
// Variable for Boy's position
var boyXPos:Number = boy_mc.x;
var boyYPos:Number = boy_mc.y;
// Speed Constant
const BOY_SPEED:Number = 4;
// Which way is the boy facing variables
var isBoyLeft:Boolean = false;
var isBoyBack:Boolean = false;
var isBoyDown:Boolean = false;
var isBoyRight:Boolean = true;
// Movement Button Pressed Booleans (isRightPressed)
var isRightPressed:Boolean = false;
var isLeftPressed:Boolean = false;
var isUpPressed:Boolean = false;
var isDownPressed:Boolean = false;
// GameLoop & KeyboardEvent EventListeners
stage.addEventListener(Event.ENTER_FRAME, gameLoop)
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed)
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyReleased)
// The GameLoop
function gameLoop(event:Event):void
{
//moveBoy();
//flipBoy();
moveBoyUp();
moveBoyDown();
moveBoyRight();
moveBoyLeft();
boyHitWall();
}
function boyHitWall():void
{
var boyOriginalXPos:Number = boy_mc.x;
var boyOriginalYPos:Number = boy_mc.y;
var backOriginalXPos:Number = backBoy_mc.x;
var backOriginalYPos:Number = backBoy_mc.y;
var sideOriginalXPos:Number = sideBoy_mc.x;
var sideOriginalYPos:Number = sideBoy_mc.y;
if(pathOutline_mc.hitTestPoint(boy_mc.x, boy_mc.y, true))
{
boy_mc.x = boyOriginalXPos;
boy_mc.y = boyOriginalYPos;
}
if(pathOutline_mc.hitTestPoint(backBoy_mc.x, backBoy_mc.y, true))
{
backBoy_mc.x = backOriginalXPos;
backBoy_mc.y = backOriginalYPos;
}
if(pathOutline_mc.hitTestPoint(sideBoy_mc.x, sideBoy_mc.y, true))
{
sideBoy_mc.x = sideOriginalXPos;
sideBoy_mc.y = sideOriginalYPos;
}
}
//Moving boy Up
function moveBoyUp():void
{
if(isBoyRight == true && isUpPressed == true)
{
boyXPos = sideBoy_mc.x;
boyYPos = sideBoy_mc.y;
removeChild(sideBoy_mc);
isBoyRight = false;
backBoy_mc.x = boyXPos;
backBoy_mc.y = boyYPos;
addChild(backBoy_mc);
isBoyBack = true;
}
if(isBoyLeft == true && isUpPressed == true)
{
boyXPos = sideBoy_mc.x;
boyYPos = sideBoy_mc.y;
removeChild(sideBoy_mc);
isBoyLeft = false;
backBoy_mc.x = boyXPos;
backBoy_mc.y = boyYPos;
addChild(backBoy_mc);
isBoyBack = true;
}
if(isBoyDown == true && isUpPressed == true)
{
boyXPos = boy_mc.x;
boyYPos = boy_mc.y;
removeChild(boy_mc);
isBoyDown = false;
backBoy_mc.x = boyXPos;
backBoy_mc.y = boyYPos;
addChild(backBoy_mc);
isBoyBack = true;
}
if(isBoyBack == true && isUpPressed == true)
{
backBoy_mc.y -= BOY_SPEED;
//backBoy_mc.scaleX -= .01;
//backBoy_mc.scaleY -= .01;
}
}
// Moving boy Down
function moveBoyDown():void
{
if(isBoyRight == true && isDownPressed == true)
{
boyXPos = sideBoy_mc.x;
boyYPos = sideBoy_mc.y;
removeChild(sideBoy_mc);
isBoyRight = false;
boy_mc.x = boyXPos;
boy_mc.y = boyYPos;
boy_mc.scaleX = .9;
boy_mc.scaleY = .9;
addChild(boy_mc);
isBoyDown = true;
}
if(isBoyLeft == true && isDownPressed == true)
{
boyXPos = sideBoy_mc.x;
boyYPos = sideBoy_mc.y;
removeChild(sideBoy_mc);
isBoyLeft = false;
boy_mc.x = boyXPos;
boy_mc.y = boyYPos;
addChild(boy_mc);
isBoyDown = true;
}
if(isBoyBack == true && isDownPressed == true)
{
boyXPos = backBoy_mc.x;
boyYPos = backBoy_mc.y;
removeChild(backBoy_mc);
isBoyBack = false;
boy_mc.x = boyXPos;
boy_mc.y = boyYPos;
addChild(boy_mc);
isBoyDown = true;
}
if(isBoyDown == true && isDownPressed == true)
{
boy_mc.y += BOY_SPEED;
//boy_mc.scaleX += .01;
//boy_mc.scaleY += .01;
}
}
// Moving boy Right
function moveBoyRight():void
{
if(isBoyDown == true && isRightPressed == true)
{
boyXPos = boy_mc.x;
boyYPos = boy_mc.y;
removeChild(boy_mc);
isBoyDown = false;
sideBoy_mc.x = boyXPos;
sideBoy_mc.y = boyYPos;
sideBoy_mc.scaleX = 1;
addChild(sideBoy_mc);
isBoyRight = true;
}
if(isBoyLeft == true && isRightPressed == true && isLeftPressed == false)
{
isBoyLeft = false;
sideBoy_mc.scaleX = 1;
isBoyRight = true;
}
if(isBoyBack == true && isRightPressed == true)
{
boyXPos = backBoy_mc.x;
boyYPos = backBoy_mc.y;
removeChild(backBoy_mc);
isBoyBack = false;
sideBoy_mc.x = boyXPos;
sideBoy_mc.y = boyYPos;
sideBoy_mc.scaleX = 1;
addChild(sideBoy_mc);
isBoyRight = true;
}
if(isBoyRight == true && isRightPressed == true)
{
sideBoy_mc.x += BOY_SPEED;
}
/*
// If Right Key is Released, remove sideBoy and add stoppedsideChild
if(isBoyRight == true && isRightPressed == false && isStoppedSideBoyPresent == false)
{
boyXPos = sideBoy_mc.x;
boyYPos = sideBoy_mc.y;
removeChild(sideBoy_mc);
stopSideBoy_mc.x = boyXPos;
stopSideBoy_mc.y = boyYPos;
addChild(stopSideBoy_mc)
isStoppedSideBoyPresent == true;
}
// If Right Key is Pressed again, remove stopped child and add sideChild
if(isStoppedSideBoyPresent == true && isRightPressed == true && isBoyRight == true)
{
boyXPos = stopSideBoy_mc.x;
boyYPos = stopSideBoy_mc.y;
removeChild(stopSideBoy_mc);
sideBoy_mc.x = boyXPos;
sideBoy_mc.y = boyYPos;
addChild(sideBoy_mc);
isStoppedSideBoyPresent == false;
}*/
}
// Moving boy Left
function moveBoyLeft():void
{
if(isBoyDown == true && isLeftPressed == true)
{
boyXPos = boy_mc.x;
boyYPos = boy_mc.y;
removeChild(boy_mc);
isBoyDown = false;
sideBoy_mc.x = boyXPos;
sideBoy_mc.y = boyYPos;
sideBoy_mc.scaleX = -1;
addChild(sideBoy_mc);
isBoyLeft = true;
}
if(isBoyRight == true && isLeftPressed == true && isRightPressed == false)
{
isBoyRight = false;
sideBoy_mc.scaleX = -1;
isBoyLeft = true;
}
if(isBoyBack == true && isLeftPressed == true)
{
boyXPos = backBoy_mc.x;
boyYPos = backBoy_mc.y;
removeChild(backBoy_mc);
isBoyBack = false;
sideBoy_mc.x = boyXPos;
sideBoy_mc.y = boyYPos;
sideBoy_mc.scaleX = -1;
addChild(sideBoy_mc);
isBoyLeft = true;
}
if(isBoyLeft == true && isLeftPressed == true)
{
sideBoy_mc.x -= BOY_SPEED;
}
}
/*function stopMovingBoyUp():void
{
if(isUpPressed == false)
{
backBoy_mc.y -= 0;
}
}*/
/*
Function that flips boy, adds child 'boy' facing a different direction, changes the
global variable 'boyXPos' and 'boyYPos'
*/
/*function flipBoy():void
{
// If right is pressed
if (isBoyBack == true && isRightPressed == true && isUpPressed == false)
{
removeChild(backBoy_mc);
backBoy_mc.x = boyXPos;
backBoy_mc.y = boyYPos;
boyXPos = sideBoy_mc.x;
boyYPos = sideBoy_mc.y;
addChild(sideBoy_mc);
isBoyRight = true;
isBoyBack = false;
}
if (isBoyDown == true && isRightPressed == true && isDownPressed == false)
{
removeChild(boy_mc);
boy_mc.x = boyXPos;
boy_mc.y = boyYPos;
boyXPos = sideBoy_mc.x;
boyYPos = sideBoy_mc.y;
addChild(sideBoy_mc);
isBoyRight = true;
isBoyDown = false;
}
// If Left is Pressed
if (isBoyBack == true && isLeftPressed == true && isUpPressed == false)
{
removeChild(backBoy_mc);
backBoy_mc.x = boyXPos;
backBoy_mc.y = boyYPos;
boyXPos = sideBoy_mc.x;
boyYPos = sideBoy_mc.y;
addChild(sideBoy_mc);
sideBoy_mc.scaleX = -1;
sideBoy_mc.scaleY = -1;
isBoyLeft = true;
isBoyBack = false;
}
if (isBoyDown == true && isLeftPressed == true && isDownPressed == false)
{
removeChild(boy_mc);
boy_mc.x = boyXPos;
boy_mc.y = boyYPos;
boyXPos = sideBoy_mc.x;
boyYPos = sideBoy_mc.y;
addChild(sideBoy_mc);
sideBoy_mc.scaleX = -1;
sideBoy_mc.scaleY = -1;
isBoyLeft = true;
isBoyDown = false;
}
// If Down is Pressed
if (isBoyBack == true && isDownPressed == true && isUpPressed == false)
{
removeChild(backBoy_mc);
backBoy_mc.x = boyXPos;
backBoy_mc.y = boyYPos;
boyXPos = boy_mc.x;
boyYPos = boy_mc.y;
addChild(boy_mc);
isBoyDown = true;
isBoyBack = false;
}
if (isBoyLeft == true && isDownPressed == true && isLeftPressed == false)
{
removeChild(sideBoy_mc);
sideBoy_mc.x = boyXPos;
sideBoy_mc.y = boyYPos;
boyXPos = boy_mc.x;
boyYPos = boy_mc.y;
addChild(boy_mc);
isBoyDown = true;
isBoyLeft = false;
}
if (isBoyRight == true && isDownPressed == true && isRightPressed == false)
{
removeChild(sideBoy_mc);
sideBoy_mc.x = boyXPos;
sideBoy_mc.y = boyYPos;
boyXPos = sideBoy_mc.x;
boyYPos = sideBoy_mc.y;
addChild(boy_mc);
isBoyDown = true;
isBoyRight = false;
}
// If up is pressed
if (isBoyDown == true && isUpPressed == true && isDownPressed == false)
{
removeChild(boy_mc);
boy_mc.x = boyXPos;
boy_mc.y = boyYPos;
boyXPos = backBoy_mc.x;
boyYPos = backBoy_mc.y;
addChild(backBoy_mc);
isBoyBack = true;
isBoyDown = false;
}
if (isBoyLeft == true && isUpPressed == true && isLeftPressed == false)
{
removeChild(sideBoy_mc);
sideBoy_mc.x = boyXPos;
sideBoy_mc.y = boyYPos;
boyXPos = backBoy_mc.x;
boyYPos = backBoy_mc.y;
addChild(backBoy_mc);
isBoyBack = true;
isBoyLeft = false;
}
if (isBoyRight == true && isUpPressed == true && isRightPressed == false)
{
removeChild(sideBoy_mc);
sideBoy_mc.x = boyXPos;
sideBoy_mc.y = boyYPos;
boyXPos = backBoy_mc.x;
boyYPos = backBoy_mc.y;
addChild(backBoy_mc);
isBoyBack = true;
isBoyRight = false;
}
}
*/
// Movement of Boy from gameLoop, using the isRightPressed variables
/*function moveBoy():void
{
if (isRightPressed == true)
{
sideBoy_mc.scaleX = 1;
sideBoy_mc.x += BOY_SPEED;
}
if (isLeftPressed == true)
{
sideBoy_mc.scaleX = -1;
sideBoy_mc.x -= BOY_SPEED;
}
if (isUpPressed == true)
{
backBoy_mc.y -= BOY_SPEED;
}
if (isDownPressed == true)
{
boy_mc.y += BOY_SPEED;
boy_mc.scaleX += .02;
boy_mc.scaleY += .02;
}
}*/
/*
OnKeyPressed Function: Tests if the KeyPressed variables are true and
isBoy(Left,Right,Up,Down) variables
*/
function onKeyPressed(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.RIGHT)
{
isRightPressed = true;
}
if (event.keyCode == Keyboard.LEFT)
{
isLeftPressed = true;
}
if (event.keyCode == Keyboard.UP)
{
isUpPressed = true;
}
if (event.keyCode == Keyboard.DOWN)
{
isDownPressed = true;
}
}
//OnKeyReleased Function: Tests if the KeyPressed variables are false
function onKeyReleased(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.RIGHT)
{
isRightPressed = false;
}
if (event.keyCode == Keyboard.LEFT)
{
isLeftPressed = false;
}
if (event.keyCode == Keyboard.UP)
{
isUpPressed = false;
}
if (event.keyCode == Keyboard.DOWN)
{
isDownPressed = false;
}
}
Blaize Media's Popular Posts
-
THE CONTENTS OF THIS DOCUMENT ARE PRIVATE AND CONFIDENTIAL A Zombie Film by ...
-
THE CONTENTS OF THIS DOCUMENT ARE PRIVATE AND CONFIDENTIAL ZOMBIE FILM by ...
-
I've started to write 2 new scripts, one about zombies but the film's is going to be based on the burka conflict in Australia. Also ...
-
Not happy with the finished product http://www.youtube.com/watch?v=CS5uq8mP3ug
-
Most of the filming for the dinosaur film is completed, I have also done some colour correction on the footages and some visual effects. I h...
No comments:
Post a Comment