A Flash Developer Resource Site

Results 1 to 8 of 8

Thread: Super Simple Platform Game Engine ^_^

Threaded View

  1. #1
    Senior Member
    Join Date
    Mar 2011
    Location
    Riverside ish...
    Posts
    173

    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
    Attached Files Attached Files
    Last edited by YBAB; 04-15-2011 at 10:46 PM.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  




Click Here to Expand Forum to Full Width

HTML5 Development Center