.h
內部宣告了兩個按鈕一個label
score用來存放數值
.m
直接用程式碼做按鈕的宣告,所以storyboard上面啥都不用做。
這邊forcontrolevents的部分跟一般宣告的touchupinside不同,
使用touchdown是在手指接觸的那一刻就觸發事件,由於這個類別
舊版上面沒有用過,不清楚是不是以前就有。
label設定初始值為0000,一般的遊戲設計會預留0的預設位置,大部分都是為了不讓
畫面被破壞而使用。
重置按鈕,用來把遊戲回覆原始狀態,或者重新開始,
真正遊戲使用上當然還會加上部分過場動畫,或者是前景切換等等,
撇除動畫,當然就是用來將數值初始化。
由於使用的是接觸的一瞬間就觸發事件,所以實際上還是有碰觸到按鍵,
事件裡面做了
- 播放音效
- 計算按鈕移動到下一個位置
- 更新score分數並且顯示
拆開來看大致上是如此,遊戲設計本身也是如此,只是為了更華麗的特效,附加
上的東西就會越多。
另外這邊最重要的是計算按鈕移動的位置,採用的是隨機產生的亂數,但問題來了
,如果產生的數值超過螢幕顯示大小,那就看不見按鈕,所以x的數值由螢幕寬度-50
,也就是按鈕本身的寬度,避免按鈕超出螢幕,y值除了本身按鈕的高度外,還要減
去100的label顯示佔用區,所以就會變成減150的產生。
這邊也使用了animate的特效,產生移動的效果。
reset部分就是將按鈕回到初始位置,分數也同樣回到初始值,並且把label的直也回復。
這個範例算是遊戲的簡單基礎,另一個重點就是時間,
伴隨時間計數讓遊戲結束。
沒有留言:
張貼留言