Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

AS3 Error hitTestObject (Can't win game)

New Here ,
Dec 15, 2017 Dec 15, 2017

So the problem Im running into is that my "win" menu will not appear when I complete a certain objective. The objective is for my character from a platformer game to make it to a goal. The player "dude" can lose but cannot win. I thought this had to do with a error in the code cause the "goal" has a instance name called "Nanu" along with a hitbox. I tried typing differently with the hitTestObject with or without the hitbox. However none proved to work. There is only ONE goal and my teacher had said I was treating him like he was a array like the enemies when he wasnt. I think thats where my errors started to appear. The teacher is usually too busy with help with this error and I feel Ill be finished if I end up fixing it. The thing that happens is that the character will jump pass the goal like they are non existent so Im unable to win the game. Anyways Ill be giving the coding format of the game win menu. I will be adding the "lose menu" as well to compare it with cause unlike the win menu the lose menu actually works and appears. If I need to show off the whole code or show the file in some way let me know^^"

Win Menu:

function Nanuhitsdude(e: Event): void {

/*for (var i = 0; i < Nanu.length; i++) {*/

if (dude.hitbox.hitTestObject(Nanu.hitbox)) {

//keepingTrackOfLives();

dude.gotoAndStop(4);

if (dude.x > 225) {

dude.x -= 100

AniriPain.play();

} else {

dude.x += 100

AniriPain.play();

}

}

WinGame();

}

function WinGame() {

//IWasHit++

//trace(IWasHit);

//Heart.gotoAndStop(IWasHit);

if (dude.currentFrame == 4) {

stage.removeEventListener(KeyboardEvent.KEY_UP, keyUP);

stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDOWN);

stage.removeEventListener(Event.ENTER_FRAME, eFrame);

addChild(winMenu);

winMenu.x = 0;

winMenu.y = 5;

winMenu.playAgain.addEventListener(MouseEvent.CLICK, playGameAgainWon);

//for (var ii = 0; ii < enemiesArray.length; ii++) {

//enemiesArray[ii].removeEventListener(Event.ENTER_FRAME, moveenemies);

trace(Nanu.hasEventListener(Event.ENTER_FRAME));

}

stage.removeEventListener(Event.ENTER_FRAME, Nanuhitsdude);

trace(stage.hasEventListener(Event.ENTER_FRAME));

}

function playGameAgainWon(e: MouseEvent): void {

removeChild(winMenu);

/*for (var ii = 0; ii < enemiesArray.length; ii++) {

enemiesArray[ii].visible = false;

enemiesArray[ii].y = -50;

}*/

//m = -1

Nanu = [];

//stage.focus = null;

//stage.addEventListener(KeyboardEvent.KEY_UP, keyUP);

//stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDOWN);

//stage.addEventListener(Event.ENTER_FRAME, eFrame);

//this.removeEventListener(Event.ENTER_FRAME, eFrame);

dude.x = 275;

//IWasHit = 1;

//score.text = String(deletedenemiesArray.length);

//score.text = String(0);

gotoAndPlay(1);

}

Lose Menu:

function enemyhitsdude(e: Event): void {

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

if (dude.hitbox.hitTestObject(enemiesArray.hitbox)) {

//keepingTrackOfLives();

dude.gotoAndStop(4);

if (dude.x > 225) {

dude.x -= 100

AniriPain.play();

//AniriRun.stop();

} else {

dude.x += 100

AniriPain.play();

//AniriRun.stop();

}

}

}

LostGame();

}

//Losing Menu

function LostGame() {

//IWasHit++

//trace(IWasHit);

//Heart.gotoAndStop(IWasHit);

if (dude.currentFrame == 4) {

stage.removeEventListener(KeyboardEvent.KEY_UP, keyUP);

stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDOWN);

stage.removeEventListener(Event.ENTER_FRAME, eFrame);

addChild(loseMenu);

//AniriRun.stop();

songChannel.stop();

AniriLost.play();

loseMenu.x = 0;

loseMenu.y = 5;

loseMenu.playAgain.addEventListener(MouseEvent.CLICK, playGameAgainLost);

for (var ii = 0; ii < enemiesArray.length; ii++) {

//enemiesArray[ii].removeEventListener(Event.ENTER_FRAME, moveenemies);

trace(enemiesArray[ii].hasEventListener(Event.ENTER_FRAME));

}

stage.removeEventListener(Event.ENTER_FRAME, enemyhitsdude);

trace(stage.hasEventListener(Event.ENTER_FRAME));

}

}

function playGameAgainLost(e: MouseEvent): void {

removeChild(loseMenu);

//AniriRun.stop();

//AniriRun.play();

/*for (var ii = 0; ii < enemiesArray.length; ii++) {

enemiesArray[ii].visible = false;

enemiesArray[ii].y = -50;

}*/

//m = -1

enemiesArray = [];

stage.focus = null;

//stage.addEventListener(KeyboardEvent.KEY_UP, keyUP);

//stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDOWN);

//stage.addEventListener(Event.ENTER_FRAME, eFrame);

//this.removeEventListener(Event.ENTER_FRAME, eFrame);

dude.x = 275;

//IWasHit = 1;

//score.text = String(deletedenemiesArray.length);

//score.text = String(0);

gotoAndPlay(1);

}

TOPICS
ActionScript
337
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 16, 2017 Dec 16, 2017

what's the error message and what line of code is triggering the error?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 16, 2017 Dec 16, 2017

The thing is I usually don't see a error message the player will just walk pass the goal like it doesn't exist.

The errors I did get before was null object but I was able to fix that by adding a null. I'd get errors of numbers such as 1008?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 16, 2017 Dec 16, 2017
LATEST

the first error i see is nothing calls Nanuhitsdude function

the second error is Nanu looks like it's an array

the third error is you can't apply a hittestObject to an array.

there are probably more errors.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines