【C++游戏引擎Easy2D】基于基础类型学习使用核心Game+Window+Input详解
、
🧛?♂?iecne個人主頁::iecne的學(xué)習(xí)日志
💡每天關(guān)注iecne的作品,一起進步
💪學(xué)C++必看iecne
本文專欄:【C++游戲引擎】.
🐳希望大家多多支持🥰一起進步呀!
往后看免費提供安裝包
?前言
哈嘍大家好,我是iecne,本期為大家?guī)淼氖荂PP/C++【游戲引擎Easy2D】一篇打通引擎頂級類型,Listener。包教包會,快來看看吧!
引擎支持 Visual Studio 2013 及以上版本,如果你使用的是較低版本的 VS,那么你需要考慮一下更新你的編譯器了
任務(wù)描述
如何根據(jù)據(jù)【游戲引擎Easy2D】核心功能Game+Window+Input,學(xué)完秒變大神
本實踐旨在通過多個代碼的案列,讓大家理解和掌握如何使用Easy2D引擎來將這四個基礎(chǔ)類型詳細(xì)的解釋并且會運用
文章目錄
- 往后看免費提供安裝包
- ?前言
- 任務(wù)描述
- Easy2D導(dǎo)讀
- 安裝 Easy2D
- 一、Game 游戲類
- 1.Game的基本結(jié)構(gòu)
- 2.控制大小
- 3.控制游戲
- 一).暫停繼續(xù)
- 二).退出
- 三).時間
- 二.Window 窗口類
- 1.常用函數(shù)
- 2.其他用法
- 三.Input 輸入類
- 關(guān)于命名
- 總結(jié)
Easy2D導(dǎo)讀
對于編程而言,初學(xué)者最需要的不是技能,而是成就感。
如果你喜歡用 C/C++ 編寫自己的小游戲,那么 Easy2D 將是個不錯的選擇,它大大簡化了游戲制作過程,可以幫助你快速開發(fā) Windows 上的 2D 小游戲。
它的特點和它的名字一樣,Everything is Easy!
安裝 Easy2D
使用簡易安裝器
運行里面的 install.bat 文件進行安裝。
點擊此鏈接進行下載(純免費,給官方搞成了VIP)
點擊下載
安裝程序會檢測您已經(jīng)安裝的 Visual Studio 版本,并根據(jù)您的選擇將對應(yīng)庫文件解壓至 VS 庫目錄下。
Easy2D 不支持 VS2012 及以下的版本(包括 VC6.0),如果你使用的是低版本的 VS,那你需要嘗試一下新版的 Visual Studio 了。
安裝環(huán)境:
操作系統(tǒng):Windows 7 及以上操作系統(tǒng)。
編譯環(huán)境:Visual Studio 2013 (x86 & x64) 及以上版本。
一、Game 游戲類
1.Game的基本結(jié)構(gòu)
Game 類控制整個游戲的進度和流程,管理所有資源的初始化和釋放。
當(dāng)然,它最主要的功能是初始化游戲、啟動游戲和銷毀游戲資源:
這個在第一章節(jié)就ok過了,標(biāo)準(zhǔn)的開頭
但是實際上在我們寫代碼的時候,會在init(中間直接調(diào)整整個的窗口,看下面)
2.控制大小
Game::init 函數(shù)默認(rèn)會創(chuàng)建一個 640x480 大小的窗口,初始化時也可以設(shè)置窗口的標(biāo)題和大小:
// 創(chuàng)建標(biāo)題為 Hello,大小為 1000x800 的窗口 if (Game::init(L"Hello", 1000, 800)) {// 初始化成功 } init(L"文本",X,Y);具體結(jié)構(gòu)如上
3.控制游戲
點贊關(guān)注支持!!!
一).暫停繼續(xù)
Game 類還可以控制游戲的暫停和繼續(xù),游戲暫停后所有的定時器、動畫、更新函數(shù)都會暫停,只有按鈕正常運行,所以你可以在按鈕的回調(diào)函數(shù)中控制游戲暫停。
// 暫停游戲 Game::pause(); // 繼續(xù)游戲 Game::resume(); // 判斷游戲是否正在暫停 bool isPaused = Game::isPaused();這一部分對待需要制作關(guān)卡類需要暫停的朋友十分友好,不需要耗盡心思搞這些了
二).退出
在代碼的任何地方調(diào)用 quit 函數(shù)可以直接讓游戲退出:
// 退出游戲 Game::quit();就是和exit()差不多,一個是面向程序,一個是面向單個游戲
三).時間
Game 類還有一些不建議手動調(diào)用的函數(shù),例如 reset 可以重置游戲內(nèi)部計時:
Game::reset();二.Window 窗口類
Window 類封裝了有關(guān)窗口操作的一些函數(shù),例如修改窗口大小等等。
1.常用函數(shù)
Window 類的常用函數(shù)如下:
// 修改窗口大小為 1000x800 Window::setSize(1000, 800); // 修改窗口標(biāo)題為 Hello Window::setTitle(L"Hello"); // 設(shè)置鼠標(biāo)樣式為“手指針” Window::setCursor(Window::Cursor::Hand); // 獲取窗口寬度 float width = Window::getWidth(); // 獲取窗口高度 float height = Window::getHeight(); // 獲取窗口大小 Size size = Window::getSize(); // 獲取窗口標(biāo)題 String title = Window::getTitle();2.其他用法
Window 類除了可以設(shè)置窗口大小、標(biāo)題外,還可以設(shè)置窗口圖標(biāo),需要先將 ico 格式圖標(biāo)加入到 VS 資源中,然后調(diào)用下面的代碼:
// 設(shè)置窗口圖標(biāo)為資源 IDR_ICON1 所在的圖標(biāo) Window::setIcon(IDR_ICON1);Window 類還封裝了彈窗提示的函數(shù),類似于 MessageBox:
// 彈出一個提示窗口 Window::info(L"這是一條提示", L"提示標(biāo)題"); // 彈出一個警告窗口 Window::warning(L"這是一條警告", L"警告標(biāo)題"); // 彈出一個錯誤窗口 Window::error(L"這是一條錯誤", L"錯誤標(biāo)題");這個類似于EasyX等的MessageBox,與其不同的是一個是讓你們選擇YESNO等,而這個是專門提示類的
三.Input 輸入類
Input 類用來獲取用戶的鼠標(biāo)或鍵盤輸入,以實現(xiàn)游戲和用戶的簡單交互。
例如,判斷一個鍵盤按鍵是否正在按下:
這個函數(shù)同樣可以對鼠標(biāo)按鍵有效:
// 獲取鼠標(biāo)左鍵是否正被按下 bool isDown = Input::isDown(MouseCode::Left);Input 不止可以獲取正在按下的狀態(tài),還可以判斷按鍵是否剛剛按下、或剛剛抬起:
// 判斷字母 A 鍵是否剛剛按下 bool isPress = Input::isPress(KeyCode::A); // 判斷字母 A 鍵是否剛剛抬起 bool isRelease = Input::isRelease(KeyCode::A);Input 類可以直接獲取鼠標(biāo)的當(dāng)前位置:
// 獲取鼠標(biāo)位置 Point mousePos = Input::getMousePos();如果你需要獲取鼠標(biāo)在某個方向的移動增量,例如,你想實現(xiàn)在游戲中顯示自定義圖片的鼠標(biāo)樣式,可能需要先隱藏系統(tǒng)鼠標(biāo),然后通過獲取鼠標(biāo)移動增量,來畫出一個虛擬鼠標(biāo):
// 獲取鼠標(biāo) X 方向的位移增量 float deltaX = Input::getMouseDeltaX(); // 獲取鼠標(biāo) Y 方向的位移增量 float deltaY = Input::getMouseDeltaY(); // 獲取鼠標(biāo)滾輪的位移增量 float deltaZ = Input::getMouseDeltaZ();關(guān)于命名
Easy2D 按照以下規(guī)律命名函數(shù):
小駝峰式命名法則,第一個單詞小寫,后面的單詞首字母大寫,如Window::setTitle
所有函數(shù)均按照動詞+名語形式命名,如Logger::showConsole
獲取對象的屬性值:get+屬性名,如Node::getWidth
修改對象的屬性值:set+屬性名,如Node::setPos
獲取對象的狀態(tài)(bool值):is+狀態(tài)名,如Node::isVisiable
總結(jié)
本節(jié)課主要是講解了Easy2D引擎實現(xiàn)的教程,至此該課示例的思想博主已經(jīng)真真切切徹徹底底分享完了,相信大家對這個邏輯有了一定的理解,大家可以自己動手敲敲代碼,感受一下,包教包會。若有任何侵權(quán)和不妥之處,請私信于我,定積極配合處理,看到必回!!!
帥的人已然點贊收藏關(guān)注,而丑的人還在猶豫,被猶豫了,快三連吧!
原創(chuàng)不易,還希望各位大佬支持一下
點贊,你的認(rèn)可是我創(chuàng)作的動力!
收藏,你的青睞是我努力的方向!
評論,你的意見是我進步的財富!
感謝每一個觀看本篇文章的朋友,更多精彩敬請期待~( ̄▽ ̄~)~:
iecne的博客_CSDN博客-C++領(lǐng)域博主
若有任何侵權(quán)和不妥之處,請私信于我,定積極配合處理,看到必回!!!
總結(jié)
以上是生活随笔為你收集整理的【C++游戏引擎Easy2D】基于基础类型学习使用核心Game+Window+Input详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python js返回 json_[py
- 下一篇: 【教程】CoreAVC+Haali安装及