1 Attachment(s)
Super Simple Platform Game Engine ^_^
Im in the works of making a super simple platform game engine...
and wanted to see if anyone wants to help out/has some ideas/knows why im going to absolutely fail...
anyways its only 154 lines of script or something like that right now, and its functional enough to see the idea...
Im having a little trouble with the walls, and setting up a loop to hit test all the objects instead of a long or statement...
anyways INPUT IS APPRECIATED GREATLY!
and it would be nice if someone could point out how to do the hittests better...
var xspeed = 0;
var yspeed = 0;
var accelleration = 2;
var friction = 0.95;
var maxspeed = 5;
var gravity = 0.25;
var jumpdelay = 0;
var leftKeyDown:Boolean = false;
var upKeyDown:Boolean = false;
var rightKeyDown:Boolean = false;
var downKeyDown:Boolean = false;
var groundcontact:Boolean = false;
var climbingstatus:Boolean = false;
addEventListener(Event.ENTER_FRAME,enterframe);
stage.addEventListener(KeyboardEvent.KEY_DOWN, checkKeysDown);
function checkKeysDown(event:KeyboardEvent):void
{
//making the booleans true based on the keycode
//WASD Keys or arrow keys
if (event.keyCode == 37 || event.keyCode == 65)
{
leftKeyDown = true;
}
if (event.keyCode == 38 || event.keyCode == 87)
{
upKeyDown = true;
}
if (event.keyCode == 39 || event.keyCode == 68)
{
rightKeyDown = true;
}
if (event.keyCode == 40 || event.keyCode == 83)
{
downKeyDown = true;
}
}
//this listener will listen for keys being released
stage.addEventListener(KeyboardEvent.KEY_UP, checkKeysUp);
function checkKeysUp(event:KeyboardEvent):void
{
//making the booleans false based on the keycode
if (event.keyCode == 37 || event.keyCode == 65)
{
leftKeyDown = false;
}
if (event.keyCode == 38 || event.keyCode == 87)
{
upKeyDown = false;
}
if (event.keyCode == 39 || event.keyCode == 68)
{
rightKeyDown = false;
}
if (event.keyCode == 40 || event.keyCode == 83)
{
downKeyDown = false;
}
}
function enterframe(event:Event)
{
if (jumpdelay >= 120)
{
}
else
{
jumpdelay += 1;
}
trace(jumpdelay);
if (leftKeyDown == true)
{
xspeed += 0.25;
}
else if (rightKeyDown == true)
{
xspeed -= 0.25;
}
if (xspeed >= maxspeed || xspeed <= maxspeed * -1)
{
if (xspeed >= 0)
{
xspeed = maxspeed;
}
else
{
xspeed = maxspeed * -1;
}
}
var i = 1;
if (groundcontact == false)
{
yspeed -= gravity;
if (player_mc.hitTestObject(stage_mc.block_mc1) || player_mc.hitTestObject(stage_mc.block_mc2) || player_mc.hitTestObject(stage_mc.block_mc3) || player_mc.hitTestObject(stage_mc.block_mc4))
{
yspeed = 0;
groundcontact = true;
}
}
else if (groundcontact == true)
{
if (player_mc.hitTestObject(stage_mc.block_mc1) || player_mc.hitTestObject(stage_mc.block_mc2) || player_mc.hitTestObject(stage_mc.block_mc3) || player_mc.hitTestObject(stage_mc.block_mc4))
{
stage_mc.y += 1;
}
if (upKeyDown == true)
{
if (jumpdelay <= 119)
{
}
else
{
yspeed += 6;
jumpdelay = 0;
groundcontact = false;
}
}
}
if (player_mc.hitTestObject(stage_mc.skyblock_mc1) || player_mc.hitTestObject(stage_mc.skyblock_mc2) || player_mc.hitTestObject(stage_mc.skyblock_mc3) || player_mc.hitTestObject(stage_mc.skyblock_mc4) || player_mc.hitTestObject(stage_mc.skyblock_mc5))
{
groundcontact = false;
}
if (player_mc.hitTestObject(stage_mc.ladder_mc1) || player_mc.hitTestObject(stage_mc.ladder_mc2))
{
yspeed = 2;
groundcontact = false;
climbingstatus = true;
}
else
{
climbingstatus = false;
}
if (player_mc.hitTestObject(stage_mc.wall_mc1) || player_mc.hitTestObject(stage_mc.wall_mc2))
{
if (climbingstatus = true)
{
xspeed *= -1;
}
else
{
xspeed *= -1;
yspeed *= -1;
}
}
xspeed *= friction;
if (xspeed <= 0.1 && xspeed >= 0)
{
xspeed = 0;
}
if (xspeed >= -0.1 && xspeed <= 0)
{
xspeed = 0;
}
stage_mc.y += yspeed;
stage_mc.x += xspeed;
}
EDIT **** DO NOT VIEW THIS FLA! its SUPER OLD