Flashhilfe.de - Flash Community

Problem: ungewünschte Endlosschleife in Battle-Game [Flash 10]

 


AntwortenRegistrieren Seite1  

schuhschuh#1
Benutzerbild von schuhschuh
Beiträge: 4
Registriert: Apr 2012

22.04.2012, 19:47

Hallo, ich bin neu dabei und versuche gerade nach einem Tutorial ein Kampfspiel zu programmieren. Dabei soll nur der Spieler Aktionen ausführen können und der Gegner als Reaktion die zur Attacke passende Animation abspielen. Das Problem ist, dass der Gegner mit seiner Reaktion garnicht mehr aufhört und die in Endlosschleife abspielt. Könntet Ihr mir sagen wo im Code der Fehler liegt? Vielen Dank!

 
var player_attack:Boolean = false;
var player_magic:Boolean = false;
var health:Number = 100;
var ehealth:Number = 100;
var delay:Number = 1000;
var counter:Number = 0;


function onEnterFrame() {
if (player_attack && player.attack_mc._currentframe == player.attack_mc._totalframes) {
ehealth -= 10+random(10);
player_attack = false;
player.gotoAndStop(1);
} else if (player_magic && player.magic_mc._currentframe == player.magic_mc._totalframes) {
ehealth -= 100;
player_magic = false;
player.gotoAndStop(1);
}
};
attack.onRelease = function()  {
player_attack = true;
player.gotoAndStop(2);
function e_reaction_attack() {
enemy.gotoAndStop(2);
counter +1;
if (counter > 0) clearInterval(intval), delete intval;
};
intval = setInterval ( e_reaction_attack, delay );
if (counter > 0) enemy.gotoAndStop(1);
};
magic.onRelease = function() {
player_magic = true;
player.gotoAndStop(3);
function e_reaction_magic() {
var counter = 0;
enemy.gotoAndStop(3);
counter +1;
if (counter > 0) clearInterval(intval2), delete intval2, enemy.gotoAndStop(1);};
intval2 = setInterval ( e_reaction_magic, delay );
};
Werbung
Beiträge: 0
Registriert: Feb 2016


vindel#2
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

23.04.2012, 10:40

Hier:
ActionScript:
1counter + 1;
willst du den Counter erhöhen (bei Magic und attack), damit deine Schleife auffhört!. Das machst du aber so:
ActionScript:
1counter = counter+1;

oder
ActionScript:
1counter++;
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
schuhschuh#3
Benutzerbild von schuhschuh
Beiträge: 4
Registriert: Apr 2012

Themenautor/in

24.04.2012, 15:03

Danke dir für deine schnelle Antwort - funktioniert aber leider trotzdem nicht... falls dir noch was ein/auffällt wäre ich wirklich dankbar!!
vindel#4
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

24.04.2012, 17:17

kannst du deine FLA mal schicken??
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
Werbung
Beiträge: 0
Registriert: Feb 2016


schuhschuh#5
Benutzerbild von schuhschuh
Beiträge: 4
Registriert: Apr 2012

Themenautor/in

24.04.2012, 17:58

die ist 4,3 MB groß... hast du irgendwo wo ich sie nicht entdeckt hab deine email angegeben weil hier kann man ja nur 500 kb hochladen. Hoffe ich bin nicht nur zu blöde dazu...
danke für deine geduld!
vindel#6
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

24.04.2012, 18:49

Dann schmeiß alle Bilder etc raus - Braucht man ja eh nicht damit es funktioniert - bekommst du schon auf 500 kb^^
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
schuhschuh#7
Benutzerbild von schuhschuh
Beiträge: 4
Registriert: Apr 2012

Themenautor/in

24.04.2012, 22:09

ja - also wenn das jetzt echt ohne alles was bringt. oh mann aller anfang ist schwer... zum glück gibt es leute wie dich die einem helfen!

Angehängte Dateien:
Adobe Flash Quelldatei misangame.fla6.87 KB
vindel#8
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

25.04.2012, 15:27

Ok, so meinte ich das auch wieder nicht - das ganze sollte schon lauffähig sein. Also statt dem gegner einfach ein Rechteck nehmen oder so - jetzt hast du ja den Code von oben gepostet!
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de