0
이 코드는 대부분 작동합니다. 나는 탄약이 다되었을 때 게임이 끝나기 때문에 탄약이 올바르게 추적되고 있음을 안다. 내 문제는 스코어도 남은 탄약도 표시되지 않는다는 것입니다. 내가 뭘 놓쳤는 지 모르겠다. 이 문제와 관련된 코드는 다음과 같습니다.AS3에 점수가 표시되지 않습니다.
package {
import flash.display.*;
import flash.events.*;
import flash.utils.Timer;
import flash.text.TextField;
import flash.media.Sound;
import flash.media.SoundChannel;
public class AirRaid extends MovieClip {
private var aagun:AAGun;
private var airplanes:Array;
private var bullets:Array;
public var leftArrow, rightArrow:Boolean;
private var nextPlane:Timer;
private var shotsLeft:int;
private var shotsHit:int;
public function startAirRaid() {
// init score
shotsLeft = 20;
shotsHit = 0;
showGameScore();
}
public function checkForHits (event:Event) {
for(var bulletNum:int = bullets.length - 1; bulletNum >= 0; bulletNum--) {
for (var airplaneNum:int = airplanes.length - 1; airplaneNum >= 0; airplaneNum--) {
if (bullets[bulletNum].hitTestObject(airplanes[airplaneNum])) {
airplanes[airplaneNum].planeHit();
bullets[bulletNum].deleteBullet();
shotsHit++;
showGameScore();
break;
}
}
if ((shotsLeft == 0) && (bullets.length == 0)) {
endGame();
}
}
}
public function fireBullet() {
if (shotsLeft <= 0) return;
var b:Bullet = new Bullet(aagun.x, aagun.y, -300);
addChild(b);
bullets.push(b);
shotsLeft--;
showGameScore();
}
public function showGameScore() {
showScore.text = String("Score: " + shotsHit);
showShots.text = String("Shots Left: " + shotsLeft);
}
}
}
'TextFields'** showScore ** 및 ** showShots **를 'DisplayList'에 추가 한 장소는 어디입니까? – ElChiniNet
코드가 완전하지 않은 것 같습니다. 이 코드가 FlashPro 라이브러리 객체에 첨부되어 있습니까? – BadFeelingAboutThis