所以我正在为NCEA Level 2 Digitech制作Flash游戏,而且我在编写的代码中遇到了一个令人气愤的问题。
基本上在这段代码中," e.target"是一封写在屏幕上的信和"拍球"对象是一个炮弹,当它击中一个字母,其中e.target.Letter_txt.text与Word中的下一个字母匹配,那么该单词中的那个字母将不再是#符号。问题发生在它只填写GRE这个词并且不再进一步。我的猜测是它与识别E两次有关,但除此之外我没有任何线索。
以下是一些可能会有所帮助的事情,因为这可能会让人感到困惑。 e.target是一个对象。 " shootBall"是一个对象。 " word_txt"是动态文本。 "住"和"分数"是变量并不重要。
function checkForBall3(e:Event):void {
if(e.target.hitTestObject(shootBall)) {
if(word_txt.text == "GREE#") {
if(e.target.Letter_txt.text == "N") {
shootBall.visible = false;
shootBall.removeEventListener (Event.ENTER_FRAME, fire)
stage.addEventListener (KeyboardEvent.KEY_DOWN, shoot)
e.target.x = randomRange(xMin, xMax);
e.target.y = 0;
e.target.Letter_txt.text = generateRandomString(1)
Score = Score + 10;
word_txt.text = "GREEN"
Lives = Lives + 1;
NextLevel("You Did It!");
}
}else{
if(word_txt.text == "GRE###") {
if(e.target.Letter_txt.text == "E") {
shootBall.visible = false;
shootBall.removeEventListener (Event.ENTER_FRAME, fire)
stage.addEventListener (KeyboardEvent.KEY_DOWN, shoot)
e.target.x = randomRange(xMin, xMax);
e.target.y = 0;
e.target.Letter_txt.text = generateRandomString(1)
Score = Score + 10;
word_txt.text = "GREE#"
Lives = Lives + 1;
}
}else{
if(word_txt.text == "GR###") {
if(e.target.Letter_txt.text == "E") {
shootBall.visible = false;
shootBall.removeEventListener (Event.ENTER_FRAME, fire)
stage.addEventListener (KeyboardEvent.KEY_DOWN, shoot)
e.target.x = randomRange(xMin, xMax);
e.target.y = 0;
e.target.Letter_txt.text = generateRandomString(1)
Score = Score + 10;
word_txt.text = "GRE##"
Lives = Lives + 1;
}
}else{
if(word_txt.text == "G####") {
if(e.target.Letter_txt.text == "R") {
shootBall.visible = false;
shootBall.removeEventListener (Event.ENTER_FRAME, fire)
stage.addEventListener (KeyboardEvent.KEY_DOWN, shoot)
e.target.x = randomRange(xMin, xMax);
e.target.y = 0;
e.target.Letter_txt.text = generateRandomString(1)
Score = Score + 10;
word_txt.text = "GR###"
Lives = Lives + 1;
}
}else{
if(e.target.Letter_txt.text == "G") {
shootBall.visible = false;
shootBall.removeEventListener (Event.ENTER_FRAME, fire)
stage.addEventListener (KeyboardEvent.KEY_DOWN, shoot)
e.target.x = randomRange(xMin, xMax);
e.target.y = 0;
e.target.Letter_txt.text = generateRandomString(1)
Score = Score + 10;
word_txt.text = "G####"
Lives = Lives + 1;
}
}
}
}
}
shootBall.y = -100
shootBall.removeEventListener (Event.ENTER_FRAME, fire)
stage.addEventListener (KeyboardEvent.KEY_DOWN, shoot)
e.target.x = randomRange(xMin, xMax);
e.target.y = 0;
e.target.Letter_txt.text = generateRandomString(1)
Lives = Lives - 1;
}
}
答案 0 :(得分:0)
您似乎添加了一个额外的#符号,因此您永远不会输入if块。尝试更改:
if(word_txt.text == "GRE###")
到此:
if(word_txt.text == "GRE##")