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

37
QML 遊戲製作入門 DIRO FAN 范姜士武 [email protected] 2014/12/20@台開金融大樓 黑客松培訓計劃

Upload: diro-fan

Post on 12-Jul-2015

1.020 views

Category:

Software


9 download

TRANSCRIPT

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

QML 遊戲製作入門

DIRO FAN 范姜士武

[email protected]

2014/12/20@台開金融大樓 黑客松培訓計劃

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

歡迎加入Qt@Taiwan 社群https://www.facebook.com/groups/qtdev/

先廣告一下 XD

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

今天一樣不寫C++

用QML/JS就可以搞定一切

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

QML 石器時代

如何開發一個遊戲?

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

石器時代

1. QML 已經提供了不少元件讓你方便做遊戲a. Keysb. Animationc. Imaged. Audioe. Particlef. Timer

2. 其實已經很好了,當年的 DOS 恐龍時代....還要自己讀字型檔跟圖檔....

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

John Carmack

1. 但不得不提一下,恐龍時代還是出了像 John Carmack 這種人物,就算我們用 QML 也寫不贏他..a. id Software 創辦人之一,在PC恐龍時代做出了跟 任

天堂上的超級瑪莉 一樣順暢的捲軸遊戲。

b. 發明了世界上最神奇的開根號公式,讓3D遊戲效能大

獲提昇

Page 7: QML 培訓課程  - 遊戲製作入門
Page 8: QML 培訓課程  - 遊戲製作入門

我們也有喝不完的可樂

相信大家在這次黑客松也可以做出嚇鼠倫的作品

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

講古講完了

讓我們繼續回到QML石器時代

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

身為熱血青年,又有QML所有東西自己刻也是很合理的

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

SAMEGAME

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

SAMEGAME

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

SAMEGAME● var column = Math.floor(x/gameCanvas.

blockSize);● var row = Math.floor(y/gameCanvas.

blockSize);● floodFill()

○ recursive●

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

寫寫簡單的方塊遊戲自幹還勉強可以

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

但我們畢竟不是John Carmack

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

要用石頭寫個超級瑪莉

還是很困難的

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

讓我們進化到工業時代

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

BOX2D物理引擎界的霸主

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

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/forceshttp://clouddeep.pixnet.net/blog/post/30573066-%5Bbox2d%5D-%E5%

88%9D%E5%AD%B8%E5%85%A5%E9%96%80

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

BOX2D

老實說,我覺得 API 用起來還是有點麻煩....

而且不是說好今天不講C++嗎....

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

Quasi-Engine直接讓QML使用BOX2D

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

Quasi-Engine

● Scene○ gravity: Qt.point(0, -30.0)

● Material○ friction, density, restitution

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

Quasi-Engine

● Entity (Body)○ Static, Dynamic, Kinematic

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

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()

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

NBA90

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

組成元件

● Static Entity○ 籃架 backboardHandler○ 籃板 backboard○ 籃框 basketHandler○ 地板 ground

● Dynamic Entity○ 籃球 ball

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

Quasi-Engine

● 投球

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

Quasi-Engine

● 進球判斷

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

Quasi-Engine

使用前,記得先編好 BOX2Dunzip Box2D_v2.1.2.zipcd Box2D_v2.1.2/Box2D/Buildcmake ..make

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

光有這堆物理模擬,是無法滿足使用者的

出動更高級的武器

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

讓我們進化到黑暗時代

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

真正的遊戲平台

V-PLAY

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

V-PLAY

1. 404 Not Found

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

啃,因為有bug,我build不出來啊..

敬請期待

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

倉庫番,魔法氣泡,超級瑪莉,俄羅斯方塊

那你這次想動手打造什麼呢

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

記得帶上幾罐可樂

衝吧!