지금은 프로그래머와 텍스트 기반 게임을 만들려고 노력하는 방법에 잘 맞습니다. 나는 오늘 시작했다. 그리고 나는 얼마간 갱신 될 세계지도와 내가 그것을 광대하게 할 것 인 것을 만들었다! 하지만 내 인생에 대한 나는 제대로 프레임을 업데이트 할 수 없습니다. 나는 정상적인 창을 사용하고, 나는 아래에 내 코드를 넣었다. 제 프레임을 깨끗하게 업데이트 해주세요!어떻게하면 텍스트 기반 게임을위한 프레임을 업데이트합니까
지도 클래스와 헤더 내가 바로 당신을 이해 바랍니다
#include<string>
#include <Windows.h>
class map {
protected:
char mep[200][50];
public:
map();
~map();
void bs();
void buildTree(int X, int Y);
void addTree();
void buildMap();
void printMap(int X, int Y);
};
#include"map.h"
map::map() {
buildMap();
printMap(0, 0);
}
map::~map() {
}
void map::bs() {
//this builds a square world later cool things like trees get added
for (int x = 0; x<200; x++) {
for (int y = 0; y<500; y++) {
mep[x][y] = '_';
}
}
}
void map::buildTree(int X, int Y) {
//¨ /\¨ [x][y-4]
// /\"[x][y-3]
//¨ /-o \¨ [x][y-2]
//¨ /-o-o- \¨[x][y-1]
//¨/o0-o \¨ [x][y]
//¨/o-ooo- \¨[x][y+1]
//¨ ||||¨ [x][y+2]
//¨ ||||¨ [x][y+3]
mep[X][Y - 4] = '/'; mep[X + 1][Y - 4] = '\\';
mep[X - 1][Y - 3] = '/'; mep[X][Y - 3] = ' '; mep[X + 1][Y - 3] = ' '; mep[X + 2][Y - 3] = '\\';
mep[X - 2][Y - 2] = '/'; mep[X - 1][Y - 2] = '-'; mep[X][Y - 2] = 'o'; mep[X + 1][Y - 2] = ' '; mep[X + 2][Y - 2] = ' '; mep[X + 3][Y - 2] = '\\';
mep[X - 3][Y - 1] = '/'; mep[X - 2][Y - 1] = '-'; mep[X - 1][Y - 1] = 'o'; mep[X][Y - 1] = '-'; mep[X + 1][Y - 1] = 'o'; mep[X + 2][Y - 1] = '-'; mep[X + 3][Y - 1] = ' '; mep[X + 4][Y - 1] = '\\';
mep[X - 3][Y] = '/'; mep[X - 2][Y] = ' '; mep[X - 1][Y] = 'o'; mep[X][Y] = '0'; mep[X + 1][Y] = '-'; mep[X + 2][Y] = 'o'; mep[X + 3][Y] = ' '; mep[X + 4][Y] = '\\';
mep[X - 4][Y + 1] = '/'; mep[X - 3][Y + 1] = 'o'; mep[X - 2][Y + 1] = '-'; mep[X - 1][Y + 1] = 'o'; mep[X][Y + 1] = 'o'; mep[X + 1][Y + 1] = 'o'; mep[X + 2][Y + 1] = '-'; mep[X + 3][Y + 1] = ' '; mep[X + 4][Y + 1] = ' '; mep[X + 5][Y + 1] = '\\';
mep[X - 1][Y + 2] = '|'; mep[X][Y + 2] = '|'; mep[X + 1][Y + 2] = '|'; mep[X + 2][Y + 2] = '|';
mep[X - 1][Y + 3] = '|'; mep[X][Y + 3] = '|'; mep[X + 1][Y + 3] = '|'; mep[X + 2][Y + 3] = '|';
}
void map::addTree() {
buildTree(74, 69);
buildTree(5, 6);
//add 18 more
}
void map::buildMap() {
bs();
addTree();
}
void map::printMap(int X, int Y) {
//this is what the players will see
std::string viewMap[15];
for (int x = 0; x<15; x++) {
for (int y = 0; y <= 70; y++) {
viewMap[x] += mep[Y + y][X + x];
}
}
//this prints the visible map for the players
std::cout << viewMap[1] + "\n" + viewMap[2] + "\n" + viewMap[3]
+ "\n" + viewMap[4] + "\n" + viewMap[5] + "\n" + viewMap[6]
+ "\n" + viewMap[7] + "\n" + viewMap[8] + "\n" + viewMap[9]
+ "\n" + viewMap[10] + "\n" + viewMap[11] + "\n" + viewMap[12]
+ "\n" + viewMap[13] + "\n" + viewMap[14] << std::endl;
}
int main()
{
//this is my main im using it as an update frames right now
while (1) {
//also i will have the world render and build it self as a whole first and only loop the frame update ik its given but ill say it anway
map mp;
mp.~map();
}
}
수동으로 소멸자를 호출하지 마십시오에 대한
희망이 솔루션입니다. – melpomene
나는 처음에는 소멸자를 사용하여 화면을 지우고 IM은 나를 대신 할 Google 워드 프로세서에 익숙했다. –
개체의 소멸자는 해당 개체의 수명이 끝나면 자동으로 호출됩니다. 명시 적으로 호출해야하는 상황은 매우 드물지만,이 중 하나가 아닙니다. –