pande
(LEGO) EV3創作專題
- Samuel【兩棲坦克】LDD快畫完
- art333w [Invader] 0_1_0版_優化測試,完成了~☆
pande
【兩棲坦克】
https://images.plurk.com/6hLkRPDiZvcQx4o5GZxfso.jpg https://images.plurk.com/cfBx3sCXmbhmncvKE0K0c.jpg
剩下砲台和底下履帶的部分就完成了

一邊畫
都會有很多改進的點想跟學生分享 (很難有機會好好聊
pande
有神秘訪客
https://images.plurk.com/6ArdzibBwQyZTyVShn9MS9.jpg https://images.plurk.com/6UHFOIX1NdUaFGEJPKglcO.jpg https://images.plurk.com/4ykcsoK8Vr4WkEpQRIBAmT.jpg
§機械與自然§
pande
【Invader】
修改(效能試驗)版本記錄

20181219
Invader_0_1_0_pande_1

減少主要副程式
- Game_Control
- Object_Collision
- Draw_Objects
的執行緒
pande
20181219
Invader_0_1_0_pande_2

減少工具副程式
- Draw_Player
- Draw_Invader1
的執行緒 (修改後明顯延遲加劇)

 
20181219
Invader_0_1_0_pande_3

置換wait block
減除Object_Collision的分支執行緒
pande
20181219
Invader_0_1_0_pande_4

合併Object_Collision進入Game_Control之中

 
20181219
Invader_0_1_0_pande_5

繪圖更新時機判斷
- Draw_Player: 遊戲啟動時 & Player移動時 & 每秒刷新畫面時
- Draw_Invander1: 遊戲啟動時 & 子彈碰撞invander時 & 每秒刷新畫面時 - bullet: bullet移動時 & 每秒刷新畫面時

(修改後顯示延遲狀況減少)(★明顯優化步驟-顯示效能方面)

(bullet與player延遲&跳格的現象還在)
pande
20181227
Invader_0_1_0_pande_6

改製兩個繪圖副程式(MyBlock)
- Draw_Invander2: 省略3個變數
- Draw_Player2: 省略3個變數
並製作元件包
pande
20181227
Invader_0_1_0_pande_7

- Draw_Invander繪前判斷:
 有-再畫,沒有-不塗擦,僅於碰撞時執行塗擦動作
 (已死之invader覆蓋player的情況消失)
- 整理Object_Collision內容: 簡化排版
- 每0.2秒接收玩家操作一次改成每0.17秒: 遊戲性
- Game_Control_Bullet:
 簡化排版。把發射音效拉出來與按鈕判斷同一頁。
pande
- 製作Draw_Bullet MyBlock並匯出
- 整理Draw_Object: 簡化排版
- Object_Collision改動: x_bullet的值小於70再做碰撞檢查
 (★明顯優化步驟-效能方面)
- 子彈獨立每0.3秒更新一次: 遊戲性
 (★明顯優化步驟-遊戲性方面)
- 關閉燈示

PS. 此版本不僅只改動程式設計,遊戲設計的部分(細部)也有涉及
pande
20181227
Invader_0_1_0_pande_8

全面解構Draw_Objects併入Game_Control
- 廢除3個標旗變數: player_move_ON, bullet_move_ON, Object_Collision_ON
- Draw_Player2時機: player每次移動前後
- Draw_Bullet時機:
 發射子彈時、子彈每次移動前後、子彈消失時、碰撞時
- 主程式前置繪圖
- 用時間間隔大的switch包裹時間間隔小的switch
- 將射擊更新頻率與移動更新頻率分開來 [Timer:2;3;4]

(★明顯優化:效能與遊戲性方面)
pande
20181229
Invader_0_1_0_pande_9

- 棄用Game_Control,併入主程式(main)中
- 將Timer:2;3;4所控制的動作分開,新增Timer:1
- 標註4個功能區塊
 [Player_Move];[Bullet_Activate];[Bullet_Move];[Object_Collision]
- 測試: 4個功能區塊分成4個執行緒 (效果不佳)(不採用)
- 遊戲性測試: 調整各區塊時間間隔
- 將[Bullet_Move]與[Object_Collision]合併
- [Bullet_Activate]加入Draw_Bullet (解決最後一個小bug)

(★完成度↑)
pande
20181230
若要繼續優化,應朝改變繪圖邏輯架構的方向嘗試。
(完)
pande
修到這邊做個錄影記錄
這個版本玩起來有嗨嗨的(?)感覺
2018年12月30日art333w【Invader】0_1_0版(pande嘗試程式優化試玩版)
體內的電玩靈魂(?)覺得滿意
- 有完成度~☆
載入新的回覆