端午過後,也能“賽龍舟”

語言: CN / TW / HK

我正在參加「初夏創意投稿大賽」詳情請看:初夏創意投稿大賽

前言

App介紹

賽龍舟遊戲主界面,通過輕點手機屏幕開始倒計時,倒計時結束開始遊戲,左側為系統角色,右側為玩家角色,通過一直快速點擊屏幕,進行比賽。 81654504488_.pic.jpg

點擊右上角彈出選項菜單,有重玩,抽獎界面,繼續遊戲 101654504489_.pic.jpg 比賽進行中界面,玩家通過一直快速點擊屏幕來進行遊戲。 91654504489_.pic.jpg 抽獎界面,抽獎功能來自[Android-LuckyMonkeyPanel],感謝大佬(http://github.com/jeanboydev/Android-LuckyMonkeyPanel),點擊抽獎可以獲得粽卡 111654505248_.pic.jpg 粽卡收集界面,在這裏可以看到所有的粽卡信息 121654505248_.pic.jpg 繼續遊戲界面,在返回回來後,會根據用户之前的行為,來判斷是不是需要對用户進行繼續遊戲彈窗的展示 131654505249_.pic.jpg 抽獎完成,在抽獎完成後,會增加用户的粽卡,並提示用户去粽卡收集界面查看 151654669556_.pic.jpg

141654669556_.pic.jpg 粽卡收集界面,在這個界面可以看到目前成功獲取到的粽卡是多少 161654669557_.pic.jpg

實現原理

賽龍舟實現

通過點擊手機屏幕進行操作玩家角色,通過手指的快速點擊進行加速,如果手指點擊間隔小於100ms,會對玩家進行持續加速。如果大於,則代表玩家累了,回到初始速度。 override fun onTouchEvent(event: MotionEvent?): Boolean { if (event?.actionMasked == MotionEvent.ACTION_DOWN) { start() if (userCircleY >= 0f) { calculateSpeed() } else { if (mCircleY > 0) { tipText = "玩家贏了" mTipDialog.show() reset() } } } return super.onTouchEvent(event) } private fun calculateSpeed() { if ((System.currentTimeMillis() - lastTime) < 100) { value += 1 } else value = 20 userCircleY -= value }

151654669556_.pic.jpg

141654669556_.pic.jpg

粽卡收集

通過賽龍舟可以獲取到一定數量的積分,積分可以用來抽獎界面的抽獎,抽獎可以收集到不同風格樣式的粽卡,(因本人不用ps,所以這裏的圖片都來自百度,有水印以及背景色不一致的問題) 161654669557_.pic.jpg

源碼

源碼公開在了GitHub,歡迎大家下載 賽龍舟

總結

對於小遊戲,一直是我比較陌生的領域,本次完成的賽龍舟小遊戲,其實實現的方式很簡單,作者沒有做遊戲的經驗,通過多年來做手機App的經驗來完成的該項目,還有很多的優化功能,比如遊戲主界面的系統設置難度,還有抽獎界面的優化,加動畫效果,粽卡的預覽界面,粽卡的介紹,加入一些比如風俗的介紹。等等,這些在後續會繼續完善,有感興趣的大牛,歡迎提出自己的建議,我會虛心接受