Class gridpp::GameEngine¶
ClassList > gridpp > GameEngine
建立視窗並管理遊戲物件、迷宮、覆蓋元件與主迴圈。 More...
#include <GameEngine.h>
Public Functions¶
Detailed Description¶
GameEngine 是可複製的 handler。將它傳入 callback 或複製給其他變數時, 所有複本都會操作同一個引擎。
Public Functions Documentation¶
function GameEngine¶
建立遊戲視窗。
Parameters:
cols網格欄數。rows網格列數。grid_size每格的像素寬度與高度。
Exception:
std::invalid_argument若任一尺寸小於 1,或視窗寬、高超過 8192 像素。
function addButton¶
建立可使用滑鼠點擊的文字按鈕。
inline Overlay gridpp::GameEngine::addButton (
const std::string & text,
int x,
int y,
int width,
int height,
OverlayCallback click=nullptr
)
Parameters:
text按鈕文字。x左上角的視窗像素 x 座標。y左上角的視窗像素 y 座標。width按鈕像素寬度,必須大於 0。height按鈕像素高度,必須大於 0。click點擊按鈕時呼叫的函式;可以是 nullptr。
Returns:
操作新按鈕的 handler。
Exception:
std::invalid_argument若 width 或 height 小於 1。
function addCircle¶
建立以網格座標為中心的實心圓形;size 是像素直徑且必須大於 0。
inline GridObject gridpp::GameEngine::addCircle (
int x,
int y,
int size,
Color color=BLACK,
GridObjectCallback init=nullptr,
GridObjectCallback update=nullptr,
CollisionCallback collide=nullptr
)
function addMaze¶
建立空白迷宮。
inline Maze gridpp::GameEngine::addMaze (
int cols,
int rows,
MazeCallback init=nullptr,
MazeCallback update=nullptr
)
Parameters:
cols迷宮欄數,範圍為 1 到 64。rows迷宮列數,範圍為 1 到 64。init迷宮啟用前呼叫一次的函式;可以是 nullptr。update每幀更新時呼叫的函式;可以是 nullptr。
Returns:
操作新迷宮的 handler。
Exception:
std::invalid_argument若尺寸超出範圍。
function addObject¶
建立圖片物件。物件初始位置為 (0, 0)。
inline GridObject gridpp::GameEngine::addObject (
const std::string & image,
GridObjectCallback init=nullptr,
GridObjectCallback update=nullptr,
CollisionCallback collide=nullptr
)
Parameters:
image繪製時使用的素材名稱。init物件啟用前呼叫一次的函式;可以是 nullptr。update每幀更新時呼叫的函式;可以是 nullptr。collide與另一個可見物件位於同一格時呼叫的函式;可以是 nullptr。
Returns:
操作新物件的 handler。
function addOverlay¶
建立以像素座標繪製的 32×32 圖片覆蓋元件。
inline Overlay gridpp::GameEngine::addOverlay (
const std::string & image,
OverlayCallback init=nullptr,
OverlayCallback update=nullptr
)
Parameters:
image素材名稱。init元件啟用前呼叫一次的函式;可以是 nullptr。update每幀更新時呼叫的函式;可以是 nullptr。
Returns:
操作新圖片元件的 handler。
function addPentagon¶
建立以網格座標為中心的實心五角形;size 是像素外徑且必須大於 0。
inline GridObject gridpp::GameEngine::addPentagon (
int x,
int y,
int size,
Color color=BLACK,
GridObjectCallback init=nullptr,
GridObjectCallback update=nullptr,
CollisionCallback collide=nullptr
)
function addSquare¶
建立以網格座標為中心的實心正方形;size 是像素邊長且必須大於 0。
inline GridObject gridpp::GameEngine::addSquare (
int x,
int y,
int size,
Color color=BLACK,
GridObjectCallback init=nullptr,
GridObjectCallback update=nullptr,
CollisionCallback collide=nullptr
)
function addStar¶
建立以網格座標為中心的實心五角星;size 是像素外徑且必須大於 0。
inline GridObject gridpp::GameEngine::addStar (
int x,
int y,
int size,
Color color=BLACK,
GridObjectCallback init=nullptr,
GridObjectCallback update=nullptr,
CollisionCallback collide=nullptr
)
function addTextOverlay¶
建立以像素座標繪製的單行文字。
inline Overlay gridpp::GameEngine::addTextOverlay (
const std::string & text,
int x,
int y,
int font_size=20,
Color color=BLACK,
OverlayCallback init=nullptr,
OverlayCallback update=nullptr
)
Parameters:
text顯示文字。x左上角的視窗像素 x 座標。y左上角的視窗像素 y 座標。font_size字型大小,必須大於 0。color文字顏色。init元件啟用前呼叫一次的函式;可以是 nullptr。update每幀更新時呼叫的函式;可以是 nullptr。
Returns:
操作新文字元件的 handler。
Exception:
std::invalid_argument若 font_size 小於 1。
function addTriangle¶
建立以網格座標為中心的實心三角形;size 是像素外徑且必須大於 0。
inline GridObject gridpp::GameEngine::addTriangle (
int x,
int y,
int size,
Color color=BLACK,
GridObjectCallback init=nullptr,
GridObjectCallback update=nullptr,
CollisionCallback collide=nullptr
)
function clearObjects¶
移除全部 GridObject 與 Maze;不影響Overlay 或已載入的素材。
function clearOverlays¶
移除全部 Overlay;不影響遊戲物件、迷宮或已載入的素材。
function cols¶
Returns:
遊戲網格欄數。
function gridSize¶
Returns:
每格的像素寬度與高度。
function keyDown¶
Returns:
指定鍵目前是否持續被按住。
function keyPressed¶
Returns:
指定鍵是否在目前幀剛被按下。
function loadAssets¶
載入 SQLite 素材包並取代目前素材。
Parameters:
database_path素材包路徑。
Exception:
std::runtime_error若檔案無法讀取、格式無效或找不到sprites資料表。
function mousePressed¶
Returns:
指定滑鼠按鍵是否在目前幀剛被按下。
function mouseX¶
Returns:
滑鼠的視窗像素 x 座標。
function mouseY¶
Returns:
滑鼠的視窗像素 y 座標。
function random¶
Returns:
min 到 max 之間的隨機整數,包含兩端。
function rows¶
Returns:
遊戲網格列數。
function run¶
執行遊戲主迴圈,直到視窗關閉。
function setBackgroundColor¶
設定每幀開始繪製的背景顏色。
function showGrid¶
Parameters:
showtrue 會在背景上繪製網格線。
function time¶
Returns:
視窗初始化後經過的秒數。
The documentation for this class was generated from the following file GameEngine.h