有没有办法让我目前的分数计数器在屏幕上?还是我需要创建另一种方法?我的代码如下(当然不是最终的脚本,我只想在抛光之前得到一个原型(:)
var score:Number = 0;
var myScoreBox:TextField = new TextField();
var myScore:String = ("Score:"+ score);
myScoreBox.text = myScore;
addChild(myScoreBox);
myScoreBox.x = player.x;
myScoreBox.y = player.y - 200;
我还创建了一个不同的方法(如下所示),但是当它被设置为零时,它不会显示“得分”数字的值,并且只要将点添加到变量中,它就不会更新。
var score:Number = 0;
trace("The score is", score);
var str:String = ("Score:");
txt.text = str +(score); // now "score 1"
所以基本上,顶部的代码显示我想要它但不跟随角色,而底部则反过来!非常感谢任何帮助!:)
答案 0 :(得分:0)
我假设你正在使用某种类型的Camera类,你只需要下载或只是移动舞台。然而,最好的做法是分离UI和游戏本身。您应该创建一个这样的层次结构:
MAIN_CONTAINER
->UI_CONTAINER
-->SCORE TEXT FIELD, HUD...
->GAME_CONTAINER //MOVE THIS CONTAINER [1]
-->PLAYER, ENEMIES, OBJECTS...
[1] GAME_CONTAINER.x = -player.x+[your stage's width]; GAME_CONTAINER.y = -player.y+[your stage's height];
答案 1 :(得分:0)
每当您的分数变量更新时,您需要使用新分数更新txt.text
。最好的方法是编写一个setter函数:
private var _score:Number=0;
public function set score(value:Number):void {
_score=value;
txt.text="Score: "+_score.toString(); // provide correct name for text field!
}
在某些情况下,由于变量的可见性修饰符,可能还需要使用getter函数:
public function get score():Number { return _score; }