C++小游戏
Posted wyzwyz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++小游戏相关的知识,希望对你有一定的参考价值。
#include<bits/stdc++.h> #include<windows.h> #include<conio.h> using namespace std; char s[5005][5005],c,ss[5005][5005]; char Map[11]; int fx[4][2]=0,-1,0,1,-1,0,1,0; int x,y,fxb,n,m,bullet_x[1000001],bullet_y[1000001],bullet,fxbb[1000001]; bool bullets[1000001]; int hp[5005][5005]; inline void out(); inline void scan(); inline void bullet_fly(); inline void out() for(int i=0;i<n;i++) cout<<s[i]<<endl; inline void scan() c=getch(); if(c==27)exit(0); if(c==-32) c=getch(); if(c==75)fxb=0; if(c==77)fxb=1; if(c==72)fxb=2; if(c==80)fxb=3; else if(c==32) bullet_fly(); else s[x][y]=ss[x][y]; if(c==‘a‘) if(y>0&&ss[x][y-1]==‘.‘)y--; if(c==‘d‘) if(y<m-1&&ss[x][y+1]==‘.‘)y++; if(c==‘w‘) if(x>0&&ss[x-1][y]==‘.‘)x--; if(c==‘s‘) if(x<n-1&&ss[x+1][y]==‘.‘)x++; s[x][y]=‘@‘; system("cls"); out(); inline void bullet_fly() bullet_x[++bullet]=x+fx[fxb][0],bullet_y[bullet]=y+fx[fxb][1],bullets[bullet]=1; fxbb[bullet]=fxb; int cnt=0; do cnt=0; for(int bullet1=1;bullet1<=bullet;bullet1++) if(!bullets[bullet1])continue; cnt++; if(s[bullet_x[bullet1]-fx[fxbb[bullet1]][0]][bullet_y[bullet1]-fx[fxbb[bullet1]][1]]!=‘@‘) s[bullet_x[bullet1]-fx[fxbb[bullet1]][0]][bullet_y[bullet1]-fx[fxbb[bullet1]][1]]=ss[bullet_x[bullet1]-fx[fxbb[bullet1]][0]][bullet_y[bullet1]-fx[fxbb[bullet1]][1]]; if(bullet_x[bullet1]>=0&&bullet_y[bullet1]>=0&&bullet_x[bullet1]<n&&bullet_y[bullet1]<m&&ss[bullet_x[bullet1]][bullet_y[bullet1]]==‘.‘) s[bullet_x[bullet1]][bullet_y[bullet1]]=‘*‘; bullet_x[bullet1]+=fx[fxbb[bullet1]][0],bullet_y[bullet1]+=fx[fxbb[bullet1]][1]; else bullets[bullet1]=0; if(ss[bullet_x[bullet1]][bullet_y[bullet1]]==‘#‘) hp[bullet_x[bullet1]][bullet_y[bullet1]]--; s[bullet_x[bullet1]][bullet_y[bullet1]]=‘%‘; system("cls"); out(); if(!hp[bullet_x[bullet1]][bullet_y[bullet1]]) ss[bullet_x[bullet1]][bullet_y[bullet1]]=s[bullet_x[bullet1]][bullet_y[bullet1]]=‘.‘; else s[bullet_x[bullet1]][bullet_y[bullet1]]=ss[bullet_x[bullet1]][bullet_y[bullet1]]; Sleep(50); system("cls"); out(); if(kbhit())scan(); while(cnt); int main() srand(time(0)); cout<<"n,m:"<<endl; cin>>n>>m; Map[0]=Map[1]=Map[2]=Map[4]=Map[5]=Map[6]=‘.‘,Map[3]=‘#‘; system("cls"); for(int i=0;i<n;i++) for(int j=0;j<m;j++) ss[i][j]=s[i][j]=Map[rand()%7]; if(ss[i][j]==‘#‘)hp[i][j]=10; s[0][0]=‘@‘; ss[0][0]=‘.‘; out(); while(1)scan(); return 0;
wsad:上下左右
↑↓←→:改变射击方向
[space]:开枪
会更新
以上是关于C++小游戏的主要内容,如果未能解决你的问题,请参考以下文章