c++文字游戏_闯关打怪2.0(开源)
本次更新内容:
1.增强对手性能
2.可暂停(按N)
3.修复些许bug
4.增加boos关(第10、20、30...关)
1. 游戏概述
本游戏是一个基于Windows控制台的回合制战斗游戏,采用俯视视角的2D平面设计。玩家控制角色"p"在13×25大小的封闭场景中与敌人"@"战斗,通过WASD移动,空格键发射炮弹,Enter键释放震爆弹技能。
游戏采用关卡递增设计,每关BOSS血量会提升10%,具有简单的成长系统。主要游戏元素包括:
玩家角色(p)
敌人(@)
炮弹(*)
场景边界(=)
空白区域(空格)
重点
操作说明运行代码时会显示
#include<iostream>
#include<windows.h>
#define KEY_DOWN(vKey) ((GetAsyncKeyState(vKey) & 0x8000) ? 1:0)
#define KEY_UP(vKey) ((GetAsyncKeyState(vKey) & 0x8000) ? 0:1)
#include<bits/stdc++.h>
#include <windows.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
int n,m,f=1,k=1;
char wutai[13][25] = {{'=','=','=','=','=','=','=','=','=','=','=','=','=','=','=','=','=','=','=','=','=','=','='},{'=',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','='},{'=',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','='},{'=',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','='},{'=',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','='},{'=',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','='},{'=',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','='},{'=',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','='},{'=',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','='},{'=',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','='},{'=',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','='},{'=','=','=','=','=','=','=','=','=','=','=','=','=','=','=','=','=','=','=','=','=','=','='}
};
int x=2,y=2,l=0,boos=100,cd=0;;
int ff,xx,yy,g=0,xxx=10,yyy=20,hp1=100,hp2=100;
int q=0;
void print() {//*cout<<"操作说明:"<<endl;cout<<" 1.上:w 下:s 左:a 右:d"<<endl;cout<<" 2.释放技能(震爆弹:震晕对手几秒):Entre"<<endl;cout<<" 3.发射炮弹:空格 朝所在方向发射"<<endl;cout<<" 4.当对手血量大于150是他速度会增加150%"<<endl;cout<<" 4.暂停:N"<<endl;system("pause") ;system("cls");//*/
}
int main() {for(int i=0; i<=100; i++) {cout<<endl<<endl;cout<<"加载中";for(int j=i%4; j>=0; j--) {cout<<".";}cout<<endl;cout<<endl<<endl<<endl<<endl;for(int j=0; j<=i; j++) {cout<<"▋";}cout<<endl;cout<<" "<<i<<"%"<<endl;system("cls");}system("pause") ;system("cls");print();while(1) {if(k%10==0){cout<<"第"<<k<<"关 《《本关为boos关》》"<<endl;}else cout<<"第"<<k<<"关"<<endl;k++;hp2=boos;boos=boos+boos/10;if(k%10==0){hp2*=3;} hp1=100;Sleep(500);x=2;y=2;yyy=20;xxx=10;while(1) {l++;if (KEY_DOWN(87)&&x-1>=1) {//wx-=1;f=1;}if (KEY_DOWN(65)&&y-1>=1) {//ay-=1;f=3;}if (KEY_DOWN(83)&&x+1<11) {//sx+=1;f=4;}if (KEY_DOWN(68)&&y+1<22) {//df=2;y+=1;}if (KEY_DOWN(32)&&g!=1&&k%10!=0) {//空格g=1;ff=f;xx=x;yy=y;}if (KEY_DOWN(13)&&cd==0) {//空格q=50;cd=500;for(int i=0; i<13; i++) {for(int j=0; j<25; j++) {cout<<"█";}cout<<endl;}Sleep(500);}cout<<"x="<<x<<" y="<<y<<" f="<<f<<" 你的HP="<<hp1<<" 对手血量:"<<hp2<<" 技能CD:"<<cd<<endl;for(int i=0; i<13; i++) {for(int j=0; j<25; j++) {if(i==x && j==y&&i==xxx&&j==yyy)cout<<"X";else if(i==x && j==y) {cout<<"p";} else if(i==xx&&j==yy &&g==1) {cout<<"*";} else if(i==xxx&&j==yyy ) {cout<<"@";} else cout<<wutai[i][j];}cout<<endl;}if(g==1) {if(ff==1&&xx-1>=1) {xx-=1;} else if(ff==2&&yy+1<22) {yy+=1;} else if(ff==3&&yy-1>=1) {yy-=1;} else if(ff==4&&xx+1<11) {xx+=1;} else {g=0;}}if(q==0) {if(boos<150) {if(x<xxx&&l%3==0) {xxx-=1;} else if(y<yyy&&l%3==0) {yyy-=1;} else if(x>xxx&&l%3==0) {xxx+=1;} else if(y>yyy&&l%3==0) {yyy+=1;}} else if(boos<200){if(x<xxx&&l%2==0) {xxx-=1;} else if(y<yyy&&l%2==0) {yyy-=1;} else if(x>xxx&&l%2==0) {xxx+=1;} else if(y>yyy&&l%2==0) {yyy+=1;}}else{if(x<xxx) {xxx-=1;} else if(y<yyy) {yyy-=1;} else if(x>xxx) {xxx+=1;} else if(y>yyy) {yyy+=1;}}}if(q>0) {q--;}if(cd>0) {cd--;}if(xx==xxx &&yy==yyy) {hp2-=5;g=0;}if(xxx==x&&y==yyy)hp1-=0.5;if(xxx==x&&y==yyy&&k%10==0)hp1-=3;if(hp1<=0) {system("cls");cout<<"you die"<<endl;Sleep(500);system("pause");system("cls");break;} else if(hp2<=0) {system("cls");cout<<"you win"<<endl;Sleep(500);system("pause");system("cls");break;}system("cls");if (KEY_DOWN(78)) {//空格system("cls");cout<<"暂停"<<endl;system("pause");system("cls");}}}return 0;
}
/*
=========================
= =
= =
= =
= =
= =
= =
= =
= =
= =
= =
= =
=========================*/