Actionscript 3 需要在循环时调试ActionScript的帮助吗
我讨厌我必须在这里问一个家庭作业问题,但我没办法。我在学校上ActionScript课程,这是我第一次学习编程语言,所以我觉得很无聊 问题是制作一个RPG游戏来练习循环Actionscript 3 需要在循环时调试ActionScript的帮助吗,actionscript-3,while-loop,flash-builder,Actionscript 3,While Loop,Flash Builder,我讨厌我必须在这里问一个家庭作业问题,但我没办法。我在学校上ActionScript课程,这是我第一次学习编程语言,所以我觉得很无聊 问题是制作一个RPG游戏来练习循环 var fighter1:String = "Wonder Woman"; var fighter2:String = "Ms. Marvel"; var health1:uint = 300; var health2:uint = 180; var
var fighter1:String = "Wonder Woman";
var fighter2:String = "Ms. Marvel";
var health1:uint = 300;
var health2:uint = 180;
var damage1:uint = 30;
var damage2:uint = 40;
while (health1 >= 0 && health2 >= 0 )
{
var damageDealt1:uint = Math.random() * damage1;
var damageDealt2:uint = Math.random() * damage2;
var attack1:uint = health2 - damageDealt1;
var attack2:uint = health1 - damageDealt2;
health1 = attack2;
health2 = attack1;
trace("After attack: " + fighter1 + " HP: " + health1 + ", " +
fighter2 + " HP: " + health2);
}
if (health1==0&&health2==0){
trace("They both died in battle! There will now be WAR!");
} else if (health1==0) {
trace(fighter2 + " won!");
} else {
trace(fighter1 + " won!"
}
正如你可能知道的,damage1是fighter1的潜在伤害,DamageDeal1是每次攻击造成的伤害
一切似乎都正常工作,但当我运行它时,我得到以下信息:
After attack: Wonder Woman HP: 4280752046, Ms. Marvel HP: 4284398685
After attack: Wonder Woman HP: 4280752039, Ms. Marvel HP: 4284398660
After attack: Wonder Woman HP: 4280752024, Ms. Marvel HP: 4284398658
After attack: Wonder Woman HP: 4280752018, Ms. Marvel HP: 4284398639
After attack: Wonder Woman HP: 4280751997, Ms. Marvel HP: 4284398638
After attack: Wonder Woman HP: 4280751996, Ms. Marvel HP: 4284398612
After attack: Wonder Woman HP: 4280751994, Ms. Marvel HP: 4284398609
无限
我已经把它翻译成php,它工作得很好,我只是不知道我在这里做错了什么
有什么想法吗?提前谢谢 正如turbosqel所说,您必须使用int而不是uint:
var fighter1:String = "Wonder Woman";
var fighter2:String = "Ms. Marvel";
var health1:int = 300;
var health2:int = 180;
var damage1:uint = 30;
var damage2:uint = 40;
while (health1 > 0 && health2 > 0 )
{
var damageDealt1:uint = Math.random() * damage1;
var damageDealt2:uint = Math.random() * damage2;
var attack1:uint = health2 - damageDealt1;
var attack2:uint = health1 - damageDealt2;
health1 = attack2;
health2 = attack1;
if (health1 < 0) health1 = 0;
if (health2 < 0) health2 = 0;
trace("After attack: " + fighter1 + " HP: " + health1 + ", " +
fighter2 + " HP: " + health2);
}
if (health1==0&&health2==0){
trace("They both died in battle! There will now be WAR!");
} else if (health1==0) {
trace(fighter2 + " won!");
} else {
trace(fighter1 + " won!"
}
var-fighter1:String=“神奇女侠”;
var fighter2:String=“惊奇小姐”;
变量1:int=300;
var health2:int=180;
var损伤1:uint=30;
var损伤2:uint=40;
而(health1>0&&health2>0)
{
var damageDealt1:uint=Math.random()*damage1;
var damageDealt2:uint=Math.random()*damage2;
var attack1:uint=health2-damageDealt1;
var attack2:uint=health1-damageDealt2;
health1=攻击2;
health2=攻击1;
如果(health1<0)health1=0;
如果(health2<0)health2=0;
跟踪(“攻击后:“+fighter1+”生命:“+health1+”,“+
fighter2+“HP:+health2);
}
if(health1==0&&health2==0){
trace(“他们都在战斗中牺牲了!现在会有战争了!”);
}else if(health1==0){
跟踪(fighter2+“赢了!”);
}否则{
跟踪(fighter1+“赢了!”
}
使用int,而不是uint,因为您的值永远不会小于0。谢谢,我在盯着屏幕看了几分钟后得出了相同的结论。我试图自己回答这个问题,但我没有足够的声誉。谢谢!!