キャッシュレジスターシミュレーションゲームを作成しようとしていますが、私は、正しい変更が顧客に提供されているかどうかを確認するために使用している条件文ボタンが押されているかどうかを示します。このゲームでは、ユーザーは、販売額と顧客が支払う金額を見ることができます。この情報を使用して、キャッシュ・ドロワー・スロットをクリックする必要があります。これにより、changeCountという変数が、選択した通貨単位の値だけ増加します。キャッシャーゲーム - AS3で更新された変数を静的変数に一致させる
私は、changeCount = payment-saleとconfirmボタンが押された場合、次のフレームにifステートメントを使用しています。ボタンをチェックするには、ブール値を使って押されているかどうかを確認しています。なんらかの理由で、if文が動作するためのchangeCountの更新値を登録していません。なぜ誰がこのことになるのか知っていますか?トレース(changeCount)で値をトレースすると私が望む値を返します。 ソースコードは、下に貼り付けられます:
package
{
public class CashierMain extends MovieClip
{
private var confirmBtn:ConfirmButton;
private var pennyBtn:PennyButton;
private var dimeBtn:DimeButton;
private var nickelBtn:NickelButton;
private var quarterBtn:QuarterButton;
private var oneBtn:OneButton;
private var fiveBtn:FiveButton;
private var tenBtn:TenButton;
private var twentyBtn:TwentyButton;
private var changeCount:Number;
private var payment:int;
private var sale:Number;
private var clicked:Boolean;
private var total:Number;
public function startCashierMain()
{
//instantiating change count
changeCount = 0;
clicked = false;
sale = Math.random() * 50;
payment = Math.random() * 20 + sale;
total = payment - sale;
showPayment();
showChangeCount();
showSale();
showTotal();
//creating visuals
confirmBtn = new ConfirmButton();
confirmBtn.x = 450;
confirmBtn.y = 85;
addChild(confirmBtn);
pennyBtn = new PennyButton();
pennyBtn.x = 100;
pennyBtn.y = 50;
addChild(pennyBtn);
nickelBtn = new NickelButton();
nickelBtn.x = 175;
nickelBtn.y = 50;
addChild(nickelBtn);
dimeBtn = new DimeButton();
dimeBtn.x = 250;
dimeBtn.y = 50;
addChild(dimeBtn);
quarterBtn = new QuarterButton();
quarterBtn.x = 315;
quarterBtn.y = 50;
addChild(quarterBtn);
oneBtn = new OneButton();
oneBtn.x = 75;
oneBtn.y = 200;
addChild(oneBtn);
fiveBtn = new FiveButton();
fiveBtn.x = 200;
fiveBtn.y = 200;
addChild(fiveBtn);
tenBtn = new TenButton();
tenBtn.x = 325;
tenBtn.y = 200;
addChild(tenBtn);
twentyBtn = new TwentyButton();
twentyBtn.x = 450;
twentyBtn.y = 200;
addChild(twentyBtn);
//Listeners
pennyBtn.addEventListener(MouseEvent.CLICK,clickPenny);
nickelBtn.addEventListener(MouseEvent.CLICK,clickNickel);
dimeBtn.addEventListener(MouseEvent.CLICK,clickDime);
quarterBtn.addEventListener(MouseEvent.CLICK,clickQuarter);
oneBtn.addEventListener(MouseEvent.CLICK,clickOne);
fiveBtn.addEventListener(MouseEvent.CLICK,clickFive);
tenBtn.addEventListener(MouseEvent.CLICK,clickTen);
twentyBtn.addEventListener(MouseEvent.CLICK,clickTwenty);
confirmBtn.addEventListener(MouseEvent.CLICK, clickConfirm);
}
public function clickPenny(event:MouseEvent)
{
changeCount += .01;
showChangeCount();
}
public function clickNickel(event:MouseEvent)
{
changeCount += .05;
showChangeCount();
}
public function clickDime(event:MouseEvent)
{
changeCount += .10;
showChangeCount();
}
public function clickQuarter(event:MouseEvent)
{
changeCount += .25;
showChangeCount();
}
public function clickOne(event:MouseEvent)
{
changeCount += 1;
showChangeCount();
}
public function clickFive(event:MouseEvent)
{
changeCount += 5;
showChangeCount();
}
public function clickTen(event:MouseEvent)
{
changeCount += 10;
showChangeCount();
}
public function clickTwenty(event:MouseEvent)
{
changeCount += 20;
showChangeCount();
}
public function showChangeCount()
{
showChange.text = String("Change Tendered $ " + changeCount.toFixed(2));
}
public function showPayment()
{
paid.text = String("Amount Paid $ " + payment);
}
public function showSale()
{
totalSale.text = String("Cost of Sale " + sale.toFixed(2));
}
public function showTotal()
{
totaled.text = String("total $ " + total.toFixed(2));
}
public function clickConfirm(event:MouseEvent)
{
if (total == changeCount && clicked == false)
{
gotoAndPlay("next");
}
}
}
}
は、私は私の質問が曖昧に思えるかどうかは、私が求めていますかを理解していないので、持って気軽に、このウェブサイトにはかなり新しいです私は何かを明確にする。皆さんのお手伝いをありがとうございます。
あなたはどこでchangeCountをトレースしますか?クリック確認? clickCheckでtrace(total、changeCount、clicked)を試しましたか?何が出力されますか? – Creynders