Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

QML 培訓課程 - 遊戲製作入門

2,229 views

Published on

QML Game Programming

Published in: Software
  • [修正] 第六頁寫道 John Carmack 發明了世界上最神奇的開根號公式,讓3D遊戲效能大 獲提昇。但其實這公式不是 John Carmack 本人發明(原作者不詳),詳情可見wiki http://zh.wikipedia.org/wiki/%E5%B9%B3%E6%96%B9%E6%A0%B9%E5%80%92%E6%95%B0%E9%80%9F%E7%AE%97%E6%B3%95
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

QML 培訓課程 - 遊戲製作入門

  1. 1. QML 遊戲製作入門 DIRO FAN 范姜士武 diro.fan@gmail.com 2014/12/20@台開金融大樓 黑客松培訓計劃
  2. 2. 歡迎加入Qt@Taiwan 社群 https://www.facebook.com/groups/qtdev/ 先廣告一下 XD
  3. 3. 今天一樣不寫C++ 用QML/JS就可以搞定一切
  4. 4. QML 石器時代 如何開發一個遊戲?
  5. 5. 石器時代 1. QML 已經提供了不少元件讓你方便做遊戲 a. Keys b. Animation c. Image d. Audio e. Particle f. Timer 2. 其實已經很好了,當年的 DOS 恐龍時代....還 要自己讀字型檔跟圖檔....
  6. 6. John Carmack 1. 但不得不提一下,恐龍時代還是出了像 John Carmack 這種人物,就算我們用 QML 也寫不 贏他.. a. id Software 創辦人之一,在PC恐龍時代做出了跟 任 天堂上的超級瑪莉 一樣順暢的捲軸遊戲。 b. 發明了世界上最神奇的開根號公式,讓3D遊戲效能大 獲提昇
  7. 7. 我們也有喝不完的可樂 相信大家在這次黑客松也可以做出 嚇鼠倫的作品
  8. 8. 講古講完了 讓我們繼續回到QML石器時代
  9. 9. 身為熱血青年,又有QML 所有東西自己刻也是很合理的
  10. 10. SAMEGAME ●
  11. 11. SAMEGAME ●
  12. 12. SAMEGAME ● var column = Math.floor(x/gameCanvas. blockSize); ● var row = Math.floor(y/gameCanvas. blockSize); ● floodFill() ○ recursive ●
  13. 13. 寫寫簡單的方塊遊戲 自幹還勉強可以
  14. 14. 但我們畢竟不是 John Carmack
  15. 15. 要用石頭寫個超級瑪莉 還是很困難的
  16. 16. 讓我們進化到工業時代
  17. 17. BOX2D 物理引擎界的霸主
  18. 18. BOX2D ● Box2D is an open source C++ engine for simulating rigid bodies in 2D ● Collision detection, friction, restitution, forces/impulses http://www.iforce2d.net/b2dtut/forces http://clouddeep.pixnet.net/blog/post/30573066-%5Bbox2d%5D-%E5% 88%9D%E5%AD%B8%E5%85%A5%E9%96%80 ●
  19. 19. BOX2D 老實說,我覺得 API 用起來還是有點麻煩.... 而且不是說好今天不講C++嗎....
  20. 20. Quasi-Engine 直接讓QML使用BOX2D
  21. 21. Quasi-Engine ● Scene ○ gravity: Qt.point(0, -30.0) ● Material ○ friction, density, restitution
  22. 22. Quasi-Engine ● Entity (Body) ○ Static, Dynamic, Kinematic
  23. 23. Quasi-Engine ● Fixture ○ A fixture binds a shape to a body(entity) and adds material properties such as density, friction, and restitution. ● Joint ○ This is a constraint used to hold two or more bodies together. Box2D supports several joint types: revolute, prismatic, distance, and more. Some joints may have limits and motors. ● applyLinearImpulse() ● applyTorque()
  24. 24. NBA90
  25. 25. 組成元件 ● Static Entity ○ 籃架 backboardHandler ○ 籃板 backboard ○ 籃框 basketHandler ○ 地板 ground ● Dynamic Entity ○ 籃球 ball
  26. 26. Quasi-Engine ● 投球
  27. 27. Quasi-Engine ● 進球判斷
  28. 28. Quasi-Engine 使用前,記得先編好 BOX2D unzip Box2D_v2.1.2.zip cd Box2D_v2.1.2/Box2D/Build cmake .. make
  29. 29. 如果你真的堅持用石頭打造瑪莉歐 1. 可以參考一下 ICS 的手把手教學: a. http://developer.nokia. com/community/wiki/images/4/4c/ICSCasualGames WithQml.pdf?20110622180857 2. 還有上次QUIT的五子棋 a. http://quitcoding. com/download/Qt_Quick_Game_Program ming_1_0.pdf
  30. 30. 光有這堆物理模擬, 是無法滿足使用者的 出動更高級的武器
  31. 31. 讓我們進化到黑暗時代
  32. 32. 真正的遊戲平台 V-PLAY
  33. 33. V-PLAY 1. 404 Not Found
  34. 34. 啃,因為有bug,我build不出來啊.. 敬請期待
  35. 35. 倉庫番,魔法氣泡,超級瑪莉,俄羅斯方塊 那你這次想動手打造什麼呢
  36. 36. 記得帶上幾罐可樂 衝吧!

×