最近在c++中用最基础的方法作出了推箱子,效果比想象中的好的多,还不闪屏,不明白为什么网上好多人的推箱子代码都几百行几百行的。
教程开始!
第一步,先录入头文件:
#include#include #include #include #include #include
第二步,制作地图(目前只有第一关,以后会努力更完的!请催更。):
char a[10][10]={{" ### "},
{" #6# "},
{" #0####"},
{"### o06#"},
{"#60 ###"},
{"####0# "},
{" #6# "},
{" ### "}};
第三步:创建人物移动:
void move(){
int x,y,p,q;
x=3;
y=4;
p=5;
q=10;
char ch;
print();
while(1) {
ch=getch();
if(ch=='s') {
if(a[x+1][y]!='#'&&a[x+1][y]=='0')
{
a[x+2][y]='0';
a[x][y]=' ';
a[x+1][y]='o';
}
if(a[x+1][y]!='#') {
a[x][y]=' ';
x++;
a[x][y]='o';
system("cls");
print();
}
}
if(ch=='w') {
if(a[x-1][y]!='#'&&a[x-1][y]=='0')
{
a[x-2][y]='0';
a[x][y]=' ';
a[x-1][y]='o';
}
if(a[x-1][y]!='#') {
a[x][y]=' ';
x--;
a[x][y]='o';
system("cls");
print();
}
}
if(ch=='a') {
if(a[x][y-1]!='#'&&a[x][y-1]=='0')
{
a[x][y-2]='0';
a[x][y]=' ';
a[x][y-1]='o';
}
if(a[x][y-1]!='#') {
a[x][y]=' ';
y--;
a[x][y]='o';
system("cls");
print();
}
}
if(ch=='d') {
if(a[x][y+1]!='#'&&a[x][y+1]=='0')
{
a[x][y+2]='0';
a[x][y]=' ';
a[x][y+1]='o';
}
if(a[x][y+1]!='#') {
a[x][y]=' ';
y++;
a[x][y]='o';
system("cls");
print();
}
}
if(a[1][3]=='0'&&a[6][4]=='0'&&a[4][1]=='0'&&a[3][6]=='0')
{
system("cls");
cout<<"You're Win";
break;
}
if(ch=='q')
{
system("cls");
welcome();
}
}
}
第四步,创建开始界面:
void welcome(){
int a;
system("cls");
cout<<"nn推箱子小游戏"<>a;
if(a==1)
{
system("cls");
move();
}
else if(a==2)
{
system("cls");
cout<<"推箱子规则:"<>a;
if(a==1)
{
welcome();
}
}
第五步,输出地图:
void print() {
for(int i=0; i<10; i++) {
puts(a[i]);
}
}
最后一步,主函数调用自定义函数:
int main() {
MessageBox(0, "欢迎来到推箱子小游戏nn制作:火龙果殿下", "系统", MB_OK);
welcome();
return 0;
}
完整代码:
#include#include #include #include #include #include using namespace std; char a[10][10]={{" ### "}, {" #6# "}, {" #0####"}, {"### o06#"}, {"#60 ###"}, {"####0# "}, {" #6# "}, {" ### "}}; void move(); void welcome(){ int a; system("cls"); cout<<"nn推箱子小游戏"< >a; if(a==1) { system("cls"); move(); } else if(a==2) { system("cls"); cout<<"推箱子规则:"< >a; if(a==1) { welcome(); } } } void print() { for(int i=0; i<10; i++) { puts(a[i]); } } void move(){ int x,y,p,q; x=3; y=4; p=5; q=10; char ch; print(); while(1) { ch=getch(); if(ch=='s') { if(a[x+1][y]!='#'&&a[x+1][y]=='0') { a[x+2][y]='0'; a[x][y]=' '; a[x+1][y]='o'; } if(a[x+1][y]!='#') { a[x][y]=' '; x++; a[x][y]='o'; system("cls"); print(); } } if(ch=='w') { if(a[x-1][y]!='#'&&a[x-1][y]=='0') { a[x-2][y]='0'; a[x][y]=' '; a[x-1][y]='o'; } if(a[x-1][y]!='#') { a[x][y]=' '; x--; a[x][y]='o'; system("cls"); print(); } } if(ch=='a') { if(a[x][y-1]!='#'&&a[x][y-1]=='0') { a[x][y-2]='0'; a[x][y]=' '; a[x][y-1]='o'; } if(a[x][y-1]!='#') { a[x][y]=' '; y--; a[x][y]='o'; system("cls"); print(); } } if(ch=='d') { if(a[x][y+1]!='#'&&a[x][y+1]=='0') { a[x][y+2]='0'; a[x][y]=' '; a[x][y+1]='o'; } if(a[x][y+1]!='#') { a[x][y]=' '; y++; a[x][y]='o'; system("cls"); print(); } } if(a[1][3]=='0'&&a[6][4]=='0'&&a[4][1]=='0'&&a[3][6]=='0') { system("cls"); cout<<"You're Win"; break; } if(ch=='q') { system("cls"); welcome(); } } } int main() { MessageBox(0, "欢迎来到推箱子小游戏nn制作:火龙果殿下", "系统", MB_OK); welcome(); return 0; }
本篇就到这里啦,如果大家还想学其他的小游戏的话,请在评论区里留言,火龙果会努力编程的!
886~



