In such a mess


creating platform game uni , nothing work ... created control pad move hero .. no errors showing can not work

 

anyone help.. complete dumbwit here no sleep in 3days

 

 

 

package {

          import flash.display.*;

          import flash.events.*;

          import flash.text.*;

          import flash.utils.gettimer;

                    import flash.ui.keyboard;

          import flash.events.keyboardevent;

          import flash.events.mouseevent;

          import flash.events.touchevent;

          import flash.ui.multitouch;

          import flash.ui.multitouchinputmode;

 

 

          public class platformgame extends movieclip {

                    // movement constants

                    static const gravity:number = .002;

 

 

                    // screen constants

                    static const edgedistance:number = 100;

 

 

                    // object arrays

                    private var fixedobjects:array;

                    private var otherobjects:array;

 

                    // hero , enemies

                    private var hero:object;

                    private var enemies:array;

 

                    // game state

                    private var playerobjects:array;

                    private var gamescore:int;

                    private var gamemode:string = "start";

                    private var playerlives:int;

                    private var lasttime:number = 0;

                    private var level:int = 1;

 

                    // start game

                    public function startplatformgame() {

                              playerobjects = new array();

                              gamescore = 0;

                              gamemode = "play";

                              playerlives = 3;

                    }

 

                    // start level

                    public function startgamelevel() {

 

                              // create characters

                              createhero();

                              addenemies();

 

                              // examine level , note objects

                              examinelevel();

 

                              // add listeners

                              this.addeventlistener(event.enter_frame,gameloop);

 

           function ondown(e:mouseevent):void {

          mcwheel.removeeventlistener(mouseevent.mouse_down, ondown);

          stage.addeventlistener(mouseevent.mouse_up, onup);

          this.addeventlistener(event.enter_frame, onenter);

}

 

 

function onup(e:mouseevent):void {

          mcwheel.addeventlistener(mouseevent.mouse_down, ondown);

          stage.removeeventlistener(mouseevent.mouse_up, onup);

          this.removeeventlistener(event.enter_frame, onenter);

}

 

 

function onenter(e:event):void {

          var xx:number = mcwheel.mousex;

          var yy:number = mcwheel.mousey;

          var angle:number;

 

 

 

          if(angle==0){

            

          hero.jump("jump",0.1);

            

             }

            

           else if(angle==-90){

                      

                     hero.moveleft("walk",0.1);

             }

            

           else if(angle==180 || angle==-180){

                      

                      hero.moveleft("walk",0.1);

             }

            

           else if(angle==90){

                     

                      hero.jump("jump",0.1);

             }

             

 

 

 

 

 

 

 

 

}

 

 

 

 

 

 

 

 

                              // set game state

                              gamemode = "play";

                              addscore(0);

                              showlives();

                    }

 

                    // creates hero object , sets properties

                    public function createhero() {

                              hero = new object();

                              hero.mc = gamelevel.hero;

                              hero.dx = 0.0;

                              hero.dy = 0.0;

                              hero.inair = false;

                              hero.direction = 1;

                              hero.animstate = "stand";

                              hero.walkanimation = new array(2,3,4,5,6,7,8);

                              hero.animstep = 0;

                              hero.jump = false;

                              hero.moveleft = false;

                              hero.moveright = false;

                              hero.jumpspeed = .8;

                              hero.walkspeed = .15;

                              hero.width = 30.0;

                              hero.height = 43.0;

                              hero.startx = hero.mc.x;

                              hero.starty = hero.mc.y;

                    }

 

                    // finds enemies in level , creates object each

                    public function addenemies() {

                              enemies = new array();

                              var i:int = 1;

                              while (true) {

                                        if (gamelevel["enemy"+i] == null) break;

                                        var enemy = new object();

                                        enemy.mc = gamelevel["enemy"+i];

                                        enemy.dx = 0.0;

                                        enemy.dy = 0.0;

                                        enemy.inair = false;

                                        enemy.direction = 1;

                                        enemy.animstate = "stand"

                                        enemy.walkanimation = new array(2,3,4,5);

                                        enemy.animstep = 0;

                                        enemy.jump = false;

                                        enemy.moveright = true;

                                        enemy.moveleft = false;

                                        enemy.jumpspeed = 1.0;

                                        enemy.walkspeed = .03;

                                        enemy.width = 30.0;

                                        enemy.height = 30.0;

                                        enemies.push(enemy);

                                        i++;

                              }

                    }

 

                    // @ level children , note walls, floors , items

                    public function examinelevel() {

                              fixedobjects = new array();

                              otherobjects = new array();

                              for(var i:int=0;i<this.gamelevel.numchildren;i++) {

                                        var mc = this.gamelevel.getchildat(i);

 

                                        // add floors , walls fixedobjects

                                        if ((mc floor) || (mc wall)) {

                                                  var floorobject:object = new object();

                                                  floorobject.mc = mc;

                                                  floorobject.leftside = mc.x;

                                                  floorobject.rightside = mc.x+mc.width;

                                                  floorobject.topside = mc.y;

                                                  floorobject.bottomside = mc.y+mc.height;

                                                  fixedobjects.push(floorobject);

 

                                        // add treasure, key , door otherojects

                                        } else if ((mc treasure) || (mc key) || (mc door) || (mc chest)) {

                                                  otherobjects.push(mc);

                                        }

                              }

                    }

 

                    // note key presses, set hero properties

                    public function keydownfunction(event:keyboardevent) {

                              if (gamemode != "play") return; // don't move until in play mode

 

                              if (event.keycode == 37) {

                                        hero.moveleft = true;

                              } else if (event.keycode == 39) {

                                        hero.moveright = true;

                              } else if (event.keycode == 32) {

                                        if (!hero.inair) {

                                                  hero.jump = true;

                                        }

                              }

                    }

 

                    public function keyupfunction(event:keyboardevent) {

                              if (event.keycode == 37) {

                                        hero.moveleft = false;

                              } else if (event.keycode == 39) {

                                        hero.moveright = false;

                              }

                    }

 

                    // perform game tasks

                    public function gameloop(event:event) {

 

                              // time differentce

                              if (lasttime == 0) lasttime = gettimer();

                              var timediff:int = gettimer()-lasttime;

                              lasttime += timediff;

 

                              // perform tasks if in play mode

                              if (gamemode == "play") {

                                        movecharacter(hero,timediff);

                                        moveenemies(timediff);

                                        checkcollisions();

                                        scrollwithhero();

                              }

                    }

 

                    // loop through enemies , move them

                    public function moveenemies(timediff:int) {

                              for(var i:int=0;i<enemies.length;i++) {

 

                                        // move

                                        movecharacter(enemies[i],timediff);

 

                                        // if hit wall, turn around

                                        if (enemies[i].hitwallright) {

                                                  enemies[i].moveleft = true;

                                                  enemies[i].moveright = false;

                                        } else if (enemies[i].hitwallleft) {

                                                  enemies[i].moveleft = false;

                                                  enemies[i].moveright = true;

                                        }

                              }

                    }

 

                    // primary function character movement

                    public function movecharacter(char:object,timediff:number) {

                              if (timediff < 1) return;

 

 

                              // assume character pulled down gravity

                              var verticalchange:number = char.dy*timediff + timediff*gravity;

                              if (verticalchange > 15.0) verticalchange = 15.0;

                              char.dy += timediff*gravity;

 

                              // react changes key presses

                              var horizontalchange = 0;

                              var newanimstate:string = "stand";

                              var newdirection:int = char.direction;

                              if (char.moveleft) {

                                        // walk left

                                        horizontalchange = -char.walkspeed*timediff;

                                        newanimstate = "walk";

                                        newdirection = -1;

                              } else if (char.moveright) {

                                        // walk right

                                        horizontalchange = char.walkspeed*timediff;

                                        newanimstate = "walk";

                                        newdirection = 1;

                              }

                              if (char.jump) {

                                        // start jump

                                        char.jump = false;

                                        char.dy = -char.jumpspeed;

                                        verticalchange = -char.jumpspeed;

                                        newanimstate = "jump";

                              }

 

                              // assume no wall hit, , hanging in air

                              char.hitwallright = false;

                              char.hitwallleft = false;

                              char.inair = true;

 

                              // find new vertical position

                              var newy:number = char.mc.y + verticalchange;

 

                              // loop through fixed objects see if character has landed

                              for(var i:int=0;i<fixedobjects.length;i++) {

                                        if ((char.mc.x+char.width/2 > fixedobjects[i].leftside) && (char.mc.x-char.width/2 < fixedobjects[i].rightside)) {

                                                  if ((char.mc.y <= fixedobjects[i].topside) && (newy > fixedobjects[i].topside)) {

                                                            newy = fixedobjects[i].topside;

                                                            char.dy = 0;

                                                            char.inair = false;

                                                            break;

                                                  }

                                        }

                              }

 

                              // find new horizontal position

                              var newx:number = char.mc.x + horizontalchange;

 

                              // loop through objects see if character has bumped wall

                              for(i=0;i<fixedobjects.length;i++) {

                                        if ((newy > fixedobjects[i].topside) && (newy-char.height < fixedobjects[i].bottomside)) {

                                                  if ((char.mc.x-char.width/2 >= fixedobjects[i].rightside) && (newx-char.width/2 <= fixedobjects[i].rightside)) {

                                                            newx = fixedobjects[i].rightside+char.width/2;

                                                            char.hitwallleft = true;

                                                            break;

                                                  }

                                                  if ((char.mc.x+char.width/2 <= fixedobjects[i].leftside) && (newx+char.width/2 >= fixedobjects[i].leftside)) {

                                                            newx = fixedobjects[i].leftside-char.width/2;

                                                            char.hitwallright = true;

                                                            break;

                                                  }

                                        }

                              }

 

                              // set position of character

                              char.mc.x = newx;

                              char.mc.y = newy;

 

                              // set animation state

                              if (char.inair) {

                                        newanimstate = "jump";

                              }

                              char.animstate = newanimstate;

 

                              // move along walk cycle

                              if (char.animstate == "walk") {

                                        char.animstep += timediff/60;

                                        if (char.animstep > char.walkanimation.length) {

                                                  char.animstep = 0;

                                        }

                                        char.mc.gotoandstop(char.walkanimation[math.floor(char.animstep)]);

 

                              // not walking, show stand or jump state

                              } else {

                                        char.mc.gotoandstop(char.animstate);

                              }

 

                              // changed directions

                              if (newdirection != char.direction) {

                                        char.direction = newdirection;

                                        char.mc.scalex = char.direction;

                              }

                    }

 

                    // scroll right or left if needed

                    public function scrollwithhero() {

                              var stageposition:number = gamelevel.x+hero.mc.x;

                              var rightedge:number = stage.stagewidth-edgedistance;

                              var leftedge:number = edgedistance;

                              if (stageposition > rightedge) {

                                        gamelevel.x -= (stageposition-rightedge);

                                        if (gamelevel.x < -(gamelevel.width-stage.stagewidth)) gamelevel.x = -(gamelevel.width-stage.stagewidth);

                              }

                              if (stageposition < leftedge) {

                                        gamelevel.x += (leftedge-stageposition);

                                        if (gamelevel.x > 0) gamelevel.x = 0;

                              }

                    }

 

                    // check collisions enemies, items

                    public function checkcollisions() {

 

                              // enemies

                              for(var i:int=enemies.length-1;i>=0;i--) {

                                        if (hero.mc.hittestobject(enemies[i].mc)) {

 

                                                  // hero jumping down onto enemy?

                                                  if (hero.inair && (hero.dy > 0)) {

                                                            enemydie(i);

                                                  } else {

                                                            herodie();

                                                  }

                                        }

                              }

 

                              // items

                              for(i=otherobjects.length-1;i>=0;i--) {

                                        if (hero.mc.hittestobject(otherobjects[i])) {

                                                  getobject(i);

                                        }

                              }

                    }

 

                    // remove enemy

                    public function enemydie(enemynum:int) {

                              var pb:pointburst = new pointburst(gamelevel,"another 1 bites dust!",enemies[enemynum].mc.x,enemies[enemynum].mc.y-20);

                              gamelevel.removechild(enemies[enemynum].mc);

                              enemies.splice(enemynum,1);

                    }

 

                    // enemy got player

                    public function herodie() {

                              // show dialog box

                              var dialog:dialog = new dialog();

                              dialog.x = 175;

                              dialog.y = 100;

                              addchild(dialog);

 

                              if (playerlives == 0) {

                                        gamemode = "gameover";

                                        dialog.message.text = "game over!";

                              } else {

                                        gamemode = "dead";

                                        dialog.message.text = "sorry died!";

                                        playerlives--;

                              }

 

                              hero.mc.gotoandplay("die");

                    }

 

                    // player collides objects

                    public function getobject(objectnum:int) {

                              // award points treasure

                              if (otherobjects[objectnum] treasure) {

                                        var pb:pointburst = new pointburst(gamelevel,100,otherobjects[objectnum].x,otherobjects[objectnum].y);

                                        gamelevel.removechild(otherobjects[objectnum]);

                                        otherobjects.splice(objectnum,1);

                                        addscore(100);

 

                              // got key, add inventory

                              } else if (otherobjects[objectnum] key) {

                                        pb = new pointburst(gamelevel,"woop got key!" ,otherobjects[objectnum].x,otherobjects[objectnum].y);

                                        playerobjects.push("key");

                                        gamelevel.removechild(otherobjects[objectnum]);

                                        otherobjects.splice(objectnum,1);

                                        addscore(200);

 

                              // hit door, end level if hero has key

                              } else if (otherobjects[objectnum] door) {

                                        if (playerobjects.indexof("key") == -1) return;

                                        if (otherobjects[objectnum].currentframe == 1) {

                                                  otherobjects[objectnum].gotoandplay("open");

                                                  levelcomplete();

                                        }

 

                              // got chest, game won

                              } else if (otherobjects[objectnum] chest) {

                                        otherobjects[objectnum].gotoandstop("open");

                                        gamecomplete();

                              }

 

                    }

 

                    // add points score

                    public function addscore(numpoints:int) {

                              gamescore += numpoints;

                              scoredisplay.text = string(gamescore);

                    }

 

                    // update player lives

                    public function showlives() {

                              livesdisplay.text = string(playerlives);

                    }

 

                    // level over, bring dialog

                    public function levelcomplete() {

                              gamemode = "done";

                              var dialog:dialog = new dialog();

                              dialog.x = 175;

                              dialog.y = 100;

                              addchild(dialog);

                              dialog.message.text = "level complete!";

                    }

 

                    // game over, bring dialog

                    public function gamecomplete() {

                              gamemode = "gameover";

                              var dialog:dialog = new dialog();

                              dialog.x = 175;

                              dialog.y = 100;

                              addchild(dialog);

                              dialog.message.text = "you found boo!";

                    }

 

                    // dialog button clicked

                    public function clickdialogbutton(event:mouseevent) {

                              removechild(movieclip(event.currenttarget.parent));

 

                              // new life, restart, or go next level

                              if (gamemode == "dead") {

                                        // reset hero

                                        showlives();

                                        hero.mc.x = hero.startx;

                                        hero.mc.y = hero.starty;

                                        gamemode = "play";

                              } else if (gamemode == "gameover") {

                                        cleanup();

                                        gotoandstop("start");

                              } else if (gamemode == "done") {

                                        cleanup();

                                        nextframe();

                              }

 

                              // give stage keyboard focus

                              stage.focus = stage;

                    }

 

                    // clean game

                    public function cleanup() {

                              removechild(gamelevel);

                              this.removeeventlistener(event.enter_frame,gameloop);

                              stage.removeeventlistener(keyboardevent.key_down,keydownfunction);

                              stage.removeeventlistener(keyboardevent.key_up,keyupfunction);

                    }

 

          }

 

}

that code difficult read because of sloppy formatting , it's lengthy read carefully.  start don't see you're adding keyboardevent listener.

 

if are, use trace function confirm listener functions receiving events.



More discussions in ActionScript 3


adobe

Comments

Popular posts from this blog

Assign one article to one user - Joomla! Forum - community, help and support

Catalogue Size

The "inactive" category