2013-01-07 19 views
6

Tôi rất mới với tập lệnh hành động 3 và tôi đang cố tạo một trò chơi rất cơ bản ngay bây giờ. Tuy nhiên, không có vấn đề bao nhiêu trang tôi nhìn vào tôi không thể tìm thấy một cách làm việc để có được trò chơi của tôi để giữ điểm: /.ActionScript 3: trợ giúp văn bản động: ghi bàn cho trò chơi

Những gì tôi đang cố gắng làm là cứ 10 giây một lần, 10 điểm được thêm vào điểm (ngay bây giờ tôi có nó thay thế bằng một phím, để xem tôi có thể làm việc đó không, nhưng nó không 't). Đây là mã Tôi cố gắng để sử dụng ngay bây giờ:

var playerScore:int = 0 

    stage.addEventListener(MouseEvent.CLICK,onclick); 

    function updateTextFields():void{ 
     playerScoreText.text = ("Player Score: " + playerScore); 
    } 

    if(Key.isDown(Key.G)){ 
      playerScore++; //increase playerScore by 1 
      updateTextFields(); 
    } 

playerScoreText là tên của văn bản động bất kỳ trợ giúp sẽ được đánh giá cao :)

Mã này đã được tất cả các bổ sung trong Timeline

Tôi nghĩ rằng vấn đề là rất có thể là một cái gì đó với việc tạo ra các văn bản năng động, nhưng tôi không chắc chắn.

+0

Nó không giống như bạn có bất cứ điều gì nghe cho máy ép chủ chốt. Mã bạn đăng tồn tại ở đâu? Là nó chỉ ngồi trong dòng thời gian hoặc trong một lớp học ở đâu đó? Có bất cứ điều gì đóng gói mẫu mã này? (những gì trước và sau nó?) – Foggzie

+0

Xin lỗi, tôi quên thêm người nghe sự kiện vào mã tôi đưa lên đó, nhưng tôi có nó: XD stage.addEventListener (MouseEvent.CLICK, onclick); nó nằm trong phần hành động trong dòng thời gian – jackbtroop62

Trả lời

2

Đảm bảo phông chữ được nhúng đúng cách và màu của trường văn bản động không giống như nền.

cũng thay vì viết

playerScoreText.text = ("Player Score: " + playerScore); 

thử này

playerScoreText.text = "Player Score: " + String(playerScore); 
+0

hmm vẫn nhận được cùng một vấn đề, Và tôi biết màu sắc và nhúng là tốt, Bạn có thể nghĩ ra bất kỳ sai lầm phổ biến nào được tạo bằng cách tạo văn bản động không? Bởi vì tôi khá chắc chắn đó là nơi mà vấn đề là, vì mã hóa có vẻ tốt: l – jackbtroop62

+0

'playerScore + = 10' thiếu một dấu chấm phẩy ở cuối. Ngoài ra hãy đảm bảo rằng trường văn bản không nằm dưới bất kỳ đối tượng nào khác. Đảm bảo rằng nó đủ lớn để văn bản vừa khớp. –

+0

cũng có, hãy thử thay đổi thuộc tính chống bí danh. thay đổi nó để sử dụng phông chữ thiết bị hoặc không có bí danh chống và xem những gì có. cũng có thể ai đó trả lời của tôi - http://stackoverflow.com/questions/14204769/what-is-the-null-object-error-with-this-as3-code-for-loading-external-swf –

2

Có vẻ như bạn muốn làm điều gì đó như thế này với lớp hẹn giờ. Mã khóa của bạn không được viết đúng cách.

var playerScore:int = 0; 
var score_timer:Timer = new Timer(10000,0); 
score_timer.addEventListener(TimerEvent.TIMER,updateTextFields); 
score_timer.start(); 
function updateTextFields(e:TimerEvent):void 
{ 
    playerScore+=10 
    playerScoreText.text = ("Player Score: " + playerScore); 
} 
+0

Điều đó dường như không hoạt động, văn bản người chơi chỉ ở 0 và đôi khi ổn định trong một giây và thêm một số khác 0. Để đảm bảo nó không chỉ là thứ gì đó trong đó dự án, tôi dán mã này vào một dự án hoàn toàn mới và vẫn không có gì: /. Có điều gì khác tôi phải thêm vào điều này để làm cho nó hoạt động không? – jackbtroop62

+0

Tôi cũng gặp khó khăn với văn bản động và nó chỉ hiển thị một số con số. Hãy thử bitmap các font từ các thuộc tính của nó. – Jono

+0

Tôi có nghĩa là văn bản. Nó phải là một TextField nếu tôi nhớ chính xác .. – Jono

Các vấn đề liên quan