我真的,真正地在网上寻找一个基本的评分系统,找不到真正有用的系统。也许这只是我/我的游戏,但没有任何作用。 我正在尝试使用动态文本框。所以我得到了一个得分。 但是当我说:“分数=分数+10;” 什么都没发生。所以,是的,请帮助。我要提出大部分游戏代码,看看它是否是别的东西,并且只有~30行......我想要它,所以当两个物体碰撞时,分数上升。谢谢 哦,我闪现告诉我后,我嵌入了文字。因此第一行↓。
import flash.text.*;
import flash.display.*;
import flash.events.*;
import flash.ui.Keyboard;
import flash.text.TextField;
var pressedKeys:Object = {};
// BASIC KEYBOARD MOVEMENT - Took it out as it is almost defs irrelevant.
var Score = 10
var myText:TextField = new TextField();
addChild(myText);
myText.text = ("Score:"+ Score);
myText.textColor = 0xFF0000;
myText.border = true;
myText.height = 20;
myText.x = 4;
myText.y = 4;
addEventListener(Event.ENTER_FRAME, hitTest)
function hitTest(e:Event):void
{
if(Hero_Mc.hitTestObject(Enemy_mc)&& (Enemy_mc.width<Hero_Mc.width))
{
Hero_Mc.width=Hero_Mc.width +4;
Hero_Mc.height=Hero_Mc.height +4;
Enemy_mc.stop();
removeChild(Enemy_mc);
addChild(Enemy_mc);
Enemy_mc.x= Math.floor(Math.random()*500);
Enemy_mc.y= Math.floor(Math.random()*350);
Score = Score + 10;
}
}
答案 0 :(得分:1)
没有任何变化,因为myText.text
只接收Score
的值,而不是实际的参考值。您可以使用BindingUtils
。或者,您可以更改以下行:
var Score = 10;
到
private var _score = 10;
protected function set Score(value:Number):void {
_score = value;
//Now, whenever you set Score to anything, it also sets the text on myText.
myText.text = ("Score:"+ Score);
}
protected function get Score():Number {
return _score;
}
另外,我同意公民的意见。 ActionScript约定是使用小写变量,_prefixed
用于私有变量。
答案 1 :(得分:0)
这是一个更好的语法:
var score:Number = 10;
score += 10;
if if语句是否为true?