的黑框小遊戲

C++

講師介紹

  • 景美電資32nd教學

  • 姓名:黃語涵

  • 物種:人

  • 性別:女

  • 狀態:活著且有呼吸但快沒了

課程概要

  1. C++語法

  2. 黑框小遊戲架構

C++語法複習

  • 二維陣列

  • 自訂義函式

  • struct

二維陣列

C++語法

  • switch & case

  • getch()

  • puts()

switch &Case

黑框小遊戲

「C++ 黑框小遊戲」的本質,就是在文字主控台裡跑一個遊戲迴圈,不斷:讀輸入 → 更新狀態 → 重畫畫面,然後用字元把畫面「演」出來。

底層原理

應用

貪吃蛇、迷宮、打怪、射擊、RPG、小平台跳躍等

  • 資料結構(狀態)

    • 玩家座標:playerX, playerY

    • 地圖:vector<string> map;

    • 敵人位置、子彈列表、血量等等

  • 輸入處理

    • 讀鍵盤(WASD、空白鍵…)

  • 遊戲邏輯更新

    • 玩家移動

    • 碰撞判定(撞牆、撞怪、撿道具)

    • 分數、血量更新

  • 畫面更新(Render)

    • 把當前狀態轉成一個「字串地圖」

    • 清畫面 → 再印出新的畫面

大部分黑框小遊戲核心結構

繪製遊戲地圖

底層概念

利用二維陣列字串繪製地圖,用一個字元圍出陣列的圍牆,然後剩下用全形空白字符儲存作為玩家移動的區域。

char play_map[r][c] = {
"######################",
"#                    #",
"#                    #",
"#                    #",
"#                    #",
"#                    #",
"#                    #",
"#                    #",
"#                    #",
"#                    #",
"#                    #",
"#                    #",
"#                    #",
"#                    #",
"######################"
};

示意圖,地圖的長寬一陣列大小決定

讓玩家動起來

step1.選一個喜歡的字元作為主控加到地圖中

(當然想要用超過一個字元也可以只是更麻煩

char play_map[長][寬] = {
"######################",
"#                    #",
"#                    #",
"#                    #",
"#                    #",
"#                    #",
"#                    #",
"#                    #",
"#                    #",
"#                    #",
"#                    #",
"#                    #",
"#                    #",
"#         @          #",
"######################"
};

選一個地方做玩家的初始位置

step2.用函式讀取玩家按的按鍵

getch()//讀取任意鍵並回傳
#include<conio.h>

要導入的函式庫

  1. 讀取玩家欲移動的方向作為參數放到函式
  2. 開頭時可以讓玩家讀完規則後按任意鍵開始遊戲

step3.寫一個自訂義函式功能是控制主控移動

void movement(direction){//沒用回傳值所以用void
	switch (direction){
    	case 'w'://向上移一格
        	if (player.y>1)player.y--;//避免玩家超過圍牆
        case 'a'://向左移一格
        	if (player.y>1)player.x--;
        case 's'://向下移一格
        	if (player.x<r))player.y++;
        case 'd'://向右移一格
        	if (player.x<c)player.x++;
    }
   

通常市面上大部分pc端的遊戲都是按w,s前後移動,a,d左右

當然,你要寫何晨光的移動方式也可以

怎麼刷新敵方單位

如接掉落物或射擊遊戲需要在最上面刷新單位並隨時間往下移

Made with Slides.com