引言
接著昨天的視窗設定,今天稍微較簡單,我們會設定一個管遊戲畫面的檔,
並在實作後解釋遊戲畫面的運作方式。
遊戲狀態
首先先創立:"GameStatus.h"以及"GameStatus.c"在專案中
先打上基礎定義與include:
/* File: GameStatus.h */
#ifndef __GAMESTATUS_H__
#define __GAMESTATUS_H__
#endif // __GAMESTATUS_H__
/* File: GameStatus.c */
#include"GameStatus.h"
/* File: GameStatus.h */
#ifndef __GAMESTATUS_H__
#define __GAMESTATUS_H__
// ------------新增部分-------------------
#define boolean int // 定義布林型態
#define True 1 // True為1
#define False 0 // False為0
// ---------------------------------------
#endif // __GAMESTATUS_H__
/* File: GameStatus.h */
#ifndef __GAMESTATUS_H__
#define __GAMESTATUS_H__
#define boolean int // 定義布林型態
#define True 1 // True為1
#define False 0 // False為0
// ------------新增部分-------------------
boolean isFrameUpdated; // 稍後會使用到,確認此時是否需更新畫面
// ---------------------------------------
#endif // __GAMESTATUS_H__
/* File: GameStatus.h */
#ifndef __GAMESTATUS_H__
#define __GAMESTATUS_H__
#define boolean int // 定義布林型態
#define True 1 // True為1
#define False 0 // False為0
boolean isFrameUpdated; // 稍後會使用到,確認此時是否需更新畫面
// ------------新增部分-------------------
void initGameStatus(); // 將isFrameUpdated初始化為True
// ---------------------------------------
#endif // __GAMESTATUS_H__
/* File: GameStatus.c */
#include"GameStatus.h"
// ------------新增部分-------------------
void initGameStatus() // 初始化isFrameUpdated為True
{
isFrameUpdated = True;
}
// ---------------------------------------
/* File: main.c */
#include <stdlib.h> // 標準函式庫
#include <windows.h> // 控制視窗用
#include <math.h> // 數學函式庫(三角函數、四捨五入等等)
#include "RenderMemory.h" // 繪製記憶體
#include "SystemSetting.h" // 系統設定
// ------------新增部分-------------------
#include "GameStatus.h" // 遊戲狀態
// --------------------------------------
int main(int argc, char *argv[])
{
init_render_memory(); // 先初始化memory
setting_system(); // 設置視窗屬性
// ------------新增部分-------------------
initGameStatus(); // 初始化遊戲狀態(畫面是否更新初始化為True)
// --------------------------------------
return 0;
}
講解
其中為什麼要用到isFrameUpdated這個變數呢?(字面上來看是「是否畫面更新」的意思)
因為遊戲畫面筆者將它設計成:當玩家按下對應按鍵後,畫面才進行更新。
因此什麼時候按下按鍵,需要讓負責畫面的部分得知。
也就是利用isFrameUpdated這個變數來廣布給整個程式知道,什麼時候該更新畫面。
讀者們不用擔心,明天我們會利用設置按鍵的篇幅,一併帶入這部分讓各位更瞭解其含意。