游戏编程建议,双E识别?

时间:2014-07-30 02:37:51

标签: actionscript-3

所以我正在为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;
    }
}

1 个答案:

答案 0 :(得分:0)

您似乎添加了一个额外的#符号,因此您永远不会输入if块。尝试更改:

if(word_txt.text == "GRE###") 

到此:

if(word_txt.text == "GRE##")