我正在使用Flash動作腳本創建一個「骰子微調」遊戲3,規則是如果玩家在第一次擲出7或11時先擲出然後他們獲勝,但是如果用戶擲出2,3或第一次扔12,然後他們輸了。如果第一次投擲是4,5,6,8,9或10,則該總和成爲點,並且該用戶必須通過再次滾動直到獲得點(他們獲勝)或他們投擲7(他們輸了)在AS3中重置得分
我已經成功地創建了它的旋轉函數,在每個「骰子」上產生一個1-6之間的隨機數,並從總數中增加點數,但是我的問題是如果用戶輸贏。我無法弄清楚當用戶從最後一次嘗試重新開始時如何將點重置爲零
代碼很糟糕。
import flash.events.MouseEvent;
spinner_mc.stop();
spinner2_mc.stop();
roll_btn.addEventListener(MouseEvent.CLICK, startspin);
stop_btn.addEventListener(MouseEvent.CLICK, stopspin);
spinner_mc.addEventListener(Event.ENTER_FRAME, spin);
spinner2_mc.addEventListener(Event.ENTER_FRAME, spin)
var spinning = false
function spin(evt){
if(spinning){
spinner_mc.rotation += 5
spinner2_mc.rotation += 5
}
} //end spin function
function startspin(mEvt:MouseEvent){
spinning = true
} //end startspin function
var points:int = 0;
function stopspin (mEvt){
if (spinning){
spinning = false
var nextVal = newVal()
var nextVal2 = newVal2()
var addPoints = nextVal + nextVal2
points += nextVal + nextVal2
spinner_mc.gotoAndStop(nextVal)
spinner_mc.rotation = 0
spinner2_mc.gotoAndStop(nextVal2)
spinner2_mc.rotation = 0
value_txt.text = "point = " + points + ", new value " + addPoints
}
if ((points == 0) && (addPoints == 7) || (addPoints == 11))
{
info_txt.text = "You win!! You rolled a 7 or 11 on first throw!"
}
if ((points == 0) && (addPoints == 2) || (addPoints == 3) || (addPoints == 12))
{
info_txt.text ="You lose! You rolled a 2, 3 or 12 on first throw!"
}
} // end stopspin function
function newVal(){
var temp:int;
temp = Math.random() * 6 + 1;
return temp;
}
function newVal2(){
var temp:int
temp = Math.random() * 6 + 1;
return temp;
}
如果不是第一回合,我不會得到失敗/勝利條件。玩家應該贏得什麼?總和應該是多少? – Vesper
如果是第一次「投擲」,總和爲7或11,則用戶獲勝。 如果是第一次投擲並且總數是2,3或12,則用戶輸掉。 如果在第一次投擲時,總和爲4,5,6,8,9或10,那麼該總和就成爲「點」,然後用戶必須在下一次投擲時「製造」該點。爲了說明這一點,用戶必須投入相同的金額。如果沒有,用戶繼續投擲,直到他們獲得分數(他們贏了),或者他們擲出7(他們輸了) – user3235027