[Day20] GameOver遊戲結算畫面設計 - iT 邦幫忙
文章推薦指數: 80 %
我們的小遊戲畫面設計已經快要接近尾聲了,也就就是要GameOver了!!( ... 你沒看錯,原因是KorGE內建沒有支援中文字顯示,就先暫時換破英文來顯示了。
第12屆iThome鐵人賽
DAY
20
0
SoftwareDevelopment
用KorGE開發自己的Kotlin小遊戲系列第
20篇
[Day20]GameOver遊戲結算畫面設計
12th鐵人賽
korge
kotlin
小遊戲
Yaya
團隊Kotlin鐵人陣
2020-09-2907:12:49470瀏覽
我們的小遊戲畫面設計已經快要接近尾聲了,也就就是要GameOver了!!(不是啦~是要來把GameOver畫面製作出來)
在[Day13]遊戲背景製作都已經有草稿示意圖出來了,就是闖關失敗跟成功各自會有不一樣的呈現畫面。
不過這GameOver的畫面的結果其實也是承接由GamePlay的遊戲結果,而GamePlay出來現身的外星人,是從Menu選擇出來的,所以這邊我們其實要有一個地方來記憶目前選到的外星人暫存,讓這個資料共享在不同的畫面當中。
因此我在src/commonMain/scene的資料夾下產生一個SharedData來存放這些資料。
SharedData.kt
分別的變數有選了那一個外星人,分數,跟是否闖關成功。
objectSharedData{
varSELECT_RUN_ALIEN:CHARACTER=CHARACTER.GREEN
varGAME_SCORE:Int=0
varIS_GAME_OVER_SUCCESS=true
}
這樣在Menu.kt的外星人被點擊onClick部分就能加上SELECT_RUN_ALIEN是哪隻外星人了。
也能在GamePlay.kt的載入角色時,知道是選了哪一隻。
GamePlay.kt
suspendfunloadCharacter():Alien{
returnAlien().apply{
load(SharedData.SELECT_RUN_ALIEN)
walk()
}
}
接著我們在時間倒數完的時候,會結束遊戲,就當作闖關成功的條件,在血包扣光則是闖關失敗,同時外星人也會做出成功跟失敗的表情動作,場景物件也需要全部停止移動,SharedData的分數跟狀態也同時記錄下來要傳給下一個GameOver場景。
//進入遊戲結束畫面
funcheckGameOver(){
if(gameTimer.totalTime==0){
background.stop()
ItemManager.stop()
alien.goal()//外星人成功動作
SharedData.run{
GAME_SCORE=score.nowValue
IS_GAME_OVER_SUCCES=true
}
goToGameOver()
}elseif(blood.nowValue==0){
background.stop()
ItemManager.stop()
alien.dead()//外星人失敗動作
SharedData.run{
GAME_SCORE=score.nowValue
IS_GAME_OVER_SUCCES=false
}
goToGameOver()
}
}
fungoToGameOver(){
launch{
delay(2.seconds)//延遲兩秒讓外星人做動作
sceneContainer.changeTo
GameOver.kt
在GameOver畫面用SharedData.IS_GAME_OVER_SUCCES判斷要顯示的背景畫面,跟外星人顯示的表情。
//闖關背景圖案
if(SharedData.IS_GAME_OVER_SUCCES){
image(resourcesVfs["gameover_success.png"].readBitmap()){
anchor(0.5,0.5)
scale(ConfigModule.size.width/width,ConfigModule.size.height/height)
position(scaledWidth/2,scaledHeight/2)
}
}else{
image(resourcesVfs["gameover_failed.png"].readBitmap()){
anchor(0.5,0.5)
scale(ConfigModule.size.width/width,ConfigModule.size.height/height)
position(scaledWidth/2,scaledHeight/2)
}
}
//外星人闖關後表情
valalien=Alien().apply{load(SharedData.SELECT_RUN_ALIEN)}
addChild(alien)
alien.alignTopToBottomOf(tapString)
alien.alignRightToLeftOf(score)
alien.x-=30
if(SharedData.IS_GAME_OVER_SUCCES){
alien.goal()
}else{
alien.hurt()
}
最後把分數跟闖關字串跟NEXT下一步放上遊戲畫面上。
//加入分數
valscore=Score().apply{load()}
addChild(score)
score.initPosition()
score.alignTopToBottomOf(tapString)
score.nowValue=SharedData.GAME_SCORE
score.update()
//加上下一步按鈕
image(resourcesVfs["next.png"].readBitmap()){
anchor(0.5,0.5)
position(image.width/2,image.height-200)
onClick{
launch{
sceneContainer.changeTo
fungoToGameOver(){
launchImmediately{
delay(2.seconds)//延遲兩秒讓外星人做動作
sceneContainer.changeTo
總結
不知道有人發現我一開始設計的圖不是中文的闖關成功跟闖關失敗嗎?
嗯嗯嗯..你沒看錯,原因是KorGE內建沒有支援中文字顯示,就先暫時換破英文來顯示了。
但是後來我還很很認真跑去github發了issue:https://github.com/korlibs/korge/issues/288
作者很快就告訴我原因,就是你要自己去弄中文字型,後來發現自己還滿犯蠢的應該要早點發現@@,大概都一直在開發APP,不管切換什麼語言字都能顯示出來,覺得應該隨便打字都要正常吧。
所以補上一張闖關成功的截圖。
我是下載這套免費字型「內海字體」:https://github.com/max32002/naikaifont
下一回就要來開始設計除了核心遊戲外的小系統功能排行榜囉!
留言
追蹤
檢舉
上一篇
[Day19]Splash進板畫面跟Menu遊戲大廳設計
下一篇
[Day21]Rank排行榜設計-本機存檔使用VfsFile
系列文
用KorGE開發自己的Kotlin小遊戲
共30篇
目錄
RSS系列文
訂閱系列文
13人訂閱
26
[Day26]Client端串接API
27
[Day27]排行榜畫面加入API
28
[Day28]輸出到不同平台-Android,iOS, Web
29
[Day29]在KorGE加入廣告
30
[Day30]使用KorGE的開發心得
完整目錄
尚未有邦友留言
立即登入留言
iT邦幫忙鐵人賽
參賽組數
1087組
團體組數
52組
累計文章數
20454篇
完賽人數
572人
鐵人賽最新文章
建立第一個單元測試(golang)-2(Day21)
更新網格交易機器人
STM32的開發生態,Cube、HAL庫、LL庫
閒聊STM32CubeMX和STM32CubeIDE
建立第一個單元測試(golang)-1(Day20)
Day38-在AWSLambda中使用YOLO推估(Inference)
Day37-在AWSLambda建立OpenCVLayer
Day36-使用Container建立AmazonSageMaker端點
Day35-AmazonSageMaker簡介
今天來瞄一眼龍與雀的科技:知覺共享技術Body-sharing
前往鐵人賽
技術推廣專區
[Day2]抓取每日收盤價
[Day1]基本工具安裝
利用python取得永豐銀行API的Nonce
永豐金融API測試員
[Day03]tinyML開發板介紹
[Day01]在享受tinyML這道美食之前
[Day3]使用ta-lib製作指標
[Day4]函數打包與買進持有報酬率試算
計算API所需要的參數:HashID
計算API所需要的參數:IV
前往鐵人賽
熱門問題
請問這個錯在哪?
請問是否有人有使用過VisualStudioIDE??
AD五大角色轉移差異。
到底API設計的方向該往哪裡去?
[已解決]請益,每一筆商品資料內的圖片,儲存在資料庫內方式
請問如何把網頁製作成手機APP?
htmljavascript值存入PHP
資料庫的數值sum加總後,數值仍然會少算?!
MYSQL:如何計算每筆數據的移動平均值?
正航ERP跑傳票維護就轉圈圈久無反應...
IT邦幫忙
站方公告
2021iThome鐵人賽精彩文章超過2萬篇,預計12月揭曉本屆獲勝鐵人
熱門tag
看更多
13th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
2018鐵人賽
javascript
2017鐵人賽
windows
php
python
windowsserver
linux
c#
程式設計
資訊安全
css
vue.js
sql
分享
熱門回答
請問是否有人有使用過VisualStudioIDE??
請問這個錯在哪?
到底API設計的方向該往哪裡去?
急!傳值問題
htmljavascript值存入PHP
資料庫的數值sum加總後,數值仍然會少算?!
正航ERP跑傳票維護就轉圈圈久無反應...
請問如何把網頁製作成手機APP?
[已解決]請益,每一筆商品資料內的圖片,儲存在資料庫內方式
Adaptec5405Raid1E、5、5EE、6、10選擇性障礙
熱門文章
STM32的開發生態,Cube、HAL庫、LL庫
更新網格交易機器人
從PDF刪除水印的5種最佳方法
網路是怎樣連接的(十二)IP地址怎麼看
【徵才/台北松山區】Linux/Winserver系統維運工程師
YOLOv4模型訓練實作
碩士課程一問
701CLIENT門禁系統卡片無效
Java開發WEB的好平台--Grails--(4)建立第一個Controller
惡意程式(malware)
一週點數排行
更多點數排行
海綿寶寶(antijava)
raytracy(raytracy)
ccenjor(ccenjor)
Felix(redqi)
Mao(TutelaryMao)
rogeryao(rogeryao)
㊣浩瀚星空㊣(yoching)
h198805041(h198805041)
juck30808(juck30808)
一級屠豬士(hitomitanaka)
×
At
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{result.label}}
{{result.account}}
關閉
延伸文章資訊
- 1游戏王英文用语。_百度知道
我更希望了解的是召唤类型之类的更加细节的英语。 例如:仪式召唤、同调召唤、超量召唤、摇摆召唤、衍生物、指示物、伤害结算、基本分、融合召唤 ...
- 2游戏术语名词的英语翻译[持续更新] | 遊戲結算英文 - 訂房優惠報報
遊戲結算英文,大家都在找解答。 游戏角色单位的属性耐久度durability // 装备, 建筑常用的一个数值行动力action point(AP), ... 结算evaluate, settle .
- 3[Day20] GameOver遊戲結算畫面設計 - iT 邦幫忙
我們的小遊戲畫面設計已經快要接近尾聲了,也就就是要GameOver了!!( ... 你沒看錯,原因是KorGE內建沒有支援中文字顯示,就先暫時換破英文來顯示了。
- 4网络游戏专业术语中英文对照版- 日记 - 豆瓣
网络游戏专业术语中英文对照版中英对照的网络游戏术语AC – Armor Class,盔甲等级、级别Account – 账号,与密码Password相对Add – 一只玩家加入到组队 ...
- 5游戏术语/名词的英语翻译[持续更新] - 知乎专栏
游戏角色单位的属性耐久度durability // 装备, 建筑常用的一个数值行动力action point(AP), ... 结算evaluate, settle ... 因此相关的英文单词很...