用c++编一个能玩起来一个二维我的世界游戏
实现一个能玩起来的二维我的世界游戏需要使用图形库来绘制游戏界面,并使用键盘事件来控制角色移动和与环境交互。以下是一个简单的示例代码:
#include <iostream>
#include <conio.h>
#include <Windows.h>
using namespace std;
const int WIDTH = 20;
const int HEIGHT = 10;
int playerX = 0;
int playerY = 0;
char world[HEIGHT][WIDTH] = {
{'#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#'},
{'#', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' #'},
{'#', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' #'},
{'#', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' #'},
{'#', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' #'},
{'#', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' #'},
{'#', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' #'},
{'#', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' #'},
{'#', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' #'},
{'#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#'},
};
void drawWorld() {
system("cls");
for (int i = 0; i < HEIGHT; i++) {
for (int j = 0; j < WIDTH; j++) {
cout << world[i][j];
}
cout << endl;
}
}
void updatePlayerPosition(int x, int y) {
world[playerY][playerX] = ' ';
playerX += x;
playerY += y;
world[playerY][playerX] = '@';
}
int main() {
while (true) {
drawWorld();
if (_kbhit()) {
char key = _getch();
switch(key) {
case 'w':
updatePlayerPosition(0, -1);
break;
case 's':
updatePlayerPosition(0, 1);
break;
case 'a':
updatePlayerPosition(-1, 0);
break;
case 'd':
updatePlayerPosition(1, 0);
break;
case 'q':
return 0;
}
}
Sleep(100);
}
return 0;
}
这个示例中,使用了一个二维字符数组来表示游戏世界,其中#表示墙壁,空格表示空地,@表示玩家角色。玩家可以使用w、s、a、d键来控制角色上下左右移动,按下q键退出游戏
原文地址: https://www.cveoy.top/t/topic/iqfj 著作权归作者所有。请勿转载和采集!