使用Imgui和SDL2做的一個彈球小游戲-Bounze

使用Imgui和SDL2做的一個彈球小游戲-Bounze

油管上面TheCherno博主分享的一個視頻FIRST GAME in C++! Did He Do a Good Job? // Code Review (C++/SDL2)里面分享了一個Github項目:
https://github.com/staticaron/Bounze
使用了Imgui和SDL2,并且可以設置音樂播放,修改音量等,玩家可以得分等,目前游戲支持Windows和Linux。

Bounze

游戲開始界面菜單

運行項目

How to Play.

  • The ball bounces off the bat randomly in normal mode.
  • If boost is active, the ball bounces off according to where it collides with the bat.
  • Balancing the ball on bat and destroying the diamonds using the boosted ball gives points.
  • Get the highscore.

  • I left the debug imgui in the game where you can modify the volumes etc. Press TAB to access.

How to build.

Windows + Visual Studio

  1. Open the folder in visual studio as Cmake Project.
  2. Ctrl + S on the CMakeLists.txt file to build the project.
  3. Run bounze.exe.

NOTE : Copy the /resources folder in same directory as the .exe file.

LINUX

  1. Create a folder /build
  2. Enter the folder cd build
  3. Run the cmake command cmake ..
  4. Make the build file make

NOTE : Copy the /resources folder in same directory as the .exe file.

參考上述https://github.com/staticaron/Bounze的README.md文件,下載上述項目后,在Window11中使用VS2022打開下載的目錄,以CMake工程打開;
接著打開CMakeLists.txt,執行Ctrl+S編譯,生成Makefile等工程文件;最后將代碼根目錄下的resources資源文件夾拷貝到和bounze.exe同級目錄,運行bounze.exe可執行程序
將資源文件夾和exe放置到同一目錄下
然后鼠標雙擊bounze.exe可執行程序,
鼠標雙擊bounze.exe可執行程序
如果不拷貝resources資源文件夾,直接鼠標雙擊bounze.exe可執行程序,會報如下的錯誤:
不拷貝資源文件夾報錯

ERROR loading the font at : ./resources/fonts/mightysouly.ttf Couldn't open ./resources/fonts/mightysouly.ttf

加載資源文件報錯,因為找不到資源文件所在目錄。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/90221.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/90221.shtml
英文地址,請注明出處:http://en.pswp.cn/web/90221.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SQL 中 CASE WHEN 及 SELECT CASE WHEN 的用法

SQL 中 CASE WHEN 及 SELECT CASE WHEN 的用法 CASE WHEN 是 SQL 中非常實用的條件表達式,它允許你在查詢中實現條件邏輯。以下是詳細的用法說明: 1. 基本語法結構 CASE WHEN condition1 THEN result1WHEN condition2 THEN result2...ELSE default_resul…

CentOS 7 Linux 基礎知識點匯總

🐧 CentOS 7 Linux 基礎知識點匯總為方便初學者快速掌握 CentOS 7 系統的核心操作,本文檔整理了常用系統命令、快捷鍵、目錄結構及文件后綴名等基礎內容,適合入門參考。 一、常見系統命令 🔍 命令行提示符說明 終端中的提示符包含…

突發限制下的破局之路:國產之光 Lynx 重構 AI 開發安全壁壘

繼 Pro 套餐 “明升暗降” 爭議后,Cursor 本周再掀波瀾 —— 包括 Claude 系列、GPT-4 在內的主流模型一夜之間對中國用戶全面封禁。開發者社群瞬間沸騰,“付費卻用不了”“項目數據導不出” 的焦慮刷屏,境外工具的政策波動再次給行業敲響警鐘…

滲透測試實戰 | docker復雜環境下的內網打點

本文作者:Track-syst1m一.前言本文涉及的相關漏洞均已修復、本文中技術和方法僅用于教育目的;文中討論的所有案例和技術均旨在幫助讀者更好地理解相關安全問題,并采取適當的防護措施來保護自身系統免受攻擊。二.大概流程1. 外網打點漏洞利用?…

阿里云服務器 CentOS 7 安裝 MySQL 8.4 超詳細指南

阿里云服務器 CentOS 7 安裝 MySQL 8.4 超詳細指南 一、準備工作 系統要求: CentOS 7.9 64位2 核(vCPU)2 GiBroot 用戶權限 服務器連接工具: FinalShell 下載安裝包: 訪問 MySQL 官網選擇版本:MySQL 8.4.0…

解決 Electron 中 window.open 打開新窗口的各種“坑”

嘿,各位開發者們!今天我們要聊聊在使用 Electron 時遇到的一個經典問題:如何正確地使用 window.open 來打開新窗口? 這聽起來似乎很簡單,但實際上卻充滿了各種“驚喜”(或者說“驚嚇”)。別擔心…

朝歌智慧盤古信息:以IMS MOM V6重構國產化智能終端新生態

隨著5G、云計算、AI、大數據等技術深度滲透,智能終端行業正迎來場景化創新的爆發期。面對市場需求升級與技術迭代壓力,國產化智能終端領域領軍企業——廣東朝歌智慧互聯科技有限公司(以下簡稱“朝歌智慧”),基于集團“…

docker 離線安裝postgres+postgis實踐

文章目錄前言一、離線安裝docker二、導出導入PG鏡像1.導出2.導入三、啟動容器四、驗證與測試前言 在企業內網環境中部署地理信息系統(GIS)時,常常面臨網絡隔離導致無法在線拉取 Docker 鏡像的問題。 本文將詳細介紹如何通過離線方式完成 Pos…

視頻、音頻錄制

1,項目介紹。 實現全屏錄屏、選擇區域錄屏、攝像頭錄像、麥克風錄音、主板音頻錄音、截屏畫板的自由組合。并通過FFmpeg完成音頻與視頻的合并。 功能界面 畫板畫筆 參考的項目 https://github.com/yangjinming1062/RecordWin 本項目是在此項目的基礎上修復了部…

Linux文件系統理解1

目錄一、初步理解系統層面的文件1. 文件操作的本質2. 進程管理文件核心思想二、系統調用層1. 打開關閉文件函數2. 讀寫文件函數三、操作系統文件管理1. 文件管理機制2. 硬件管理機制四、理解重定向1. 文件描述符分配規則2. 重定向系統調用3. 重定向命令行調用五、理解緩沖區1. …

科技向善,銀發向暖:智慧養老與經濟共筑適老未來

人口老齡化是當今中國社會面臨的重大課題,也是推動社會變革與經濟轉型的重要引擎。隨著數字技術的飛速發展,“智慧養老”正以科技向善的溫度,為老年群體構建更舒適、更安全、更有尊嚴的晚年生活,同時為銀發經濟注入蓬勃活力&#…

numpy庫 降維,矩陣創建與元素的選取,修改

目錄 1.降維函數ravel()和flatten ravel(): flatten(): 2.矩陣存儲與內存結構 3.修改矩陣形狀的方法 4.特殊矩陣創建 全零矩陣: 如np.zeros(5) 創建含5個零的一維數組,輸出中零后的點(如 0.)表示浮點數類型。 全一矩陣:如n…

SpringCloud seata全局事務

項目https://github.com/apache/incubator-seata docker拉取啟動server $ docker run --name seata-server -p 8091:8091 apache/seata-server:2.1.0 seata注冊到nacos <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-…

OpenLayers 快速入門(八)事件系統

看過的知識不等于學會。唯有用心總結、系統記錄&#xff0c;并通過溫故知新反復實踐&#xff0c;才能真正掌握一二 作為一名摸爬滾打三年的前端開發&#xff0c;開源社區給了我飯碗&#xff0c;我也將所學的知識體系回饋給大家&#xff0c;助你少走彎路&#xff01; OpenLayers…

【Linux | 網絡】應用層(HTTPS)

目錄一、HTTPS的概念二、準備概念2.1 什么是加密和解密2.2 為什么要加密2.3 常見的加密方式2.3.1 對稱加密2.3.1 非對稱加密2.4 數據摘要&&數據指紋三、HTTPS理解過程3.1 只使用對稱加密3.2 只使用非對稱加密3.3 雙方都使用非對稱加密3.4 對稱加密 非對稱加密3.5 中間…

GRE協議

一、實驗拓撲二、實驗配置1、靜態路由實現GRERT1配置&#xff1a;RT1(config)# int fa1/0RT1(config-if)# ip add 192.168.20.1 255.255.255.0RT1(config-if)# no shutdownRT1(config)# int fa0/0RT1(config-if)# ip add 172.1.1.2 255.255.255.0RT1(config-if)# no shutdownRT…

JDialong彈窗

public class DialogDemo extends JFrame {public DialogDemo(){this.setVisible(true);this.setSize(700,500);this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//JFrame 放東西&#xff0c;容器Container contentPane this.getContentPane();//絕對布局conte…

tlias智能學習輔助系統--違紀處理(實戰)

目錄 1.StudentController.java 2.interface StudentService 3.StudentServiceImpl.java 4.interface StudentMapper 1.StudentController.java // 違紀處理PutMapping("/violation/{id}/{score}")Operation(summary "違紀處理")public Result violat…

傳統RNN模型筆記:輸入數據長度變化的結構解析

一、案例背景 本案例通過PyTorch的nn.RNN構建單隱藏層RNN模型&#xff0c;重點展示RNN對變長序列數據的處理能力&#xff08;序列長度從1變為20&#xff09;&#xff0c;幫助理解RNN的輸入輸出邏輯。 二、核心代碼與結構拆解 def dm_rnn_for_sequencelen():# 1. 定義RNN模型rnn…

OpenLayers 快速入門(四)View 對象

看過的知識不等于學會。唯有用心總結、系統記錄&#xff0c;并通過溫故知新反復實踐&#xff0c;才能真正掌握一二 作為一名摸爬滾打三年的前端開發&#xff0c;開源社區給了我飯碗&#xff0c;我也將所學的知識體系回饋給大家&#xff0c;助你少走彎路&#xff01; OpenLayers…