网站首页 > 股票知识 >

gameplay function,gameplayfunction

2023-07-28 04:02:13 股票知识 阅读 0

Bitget下载

注册下载Bitget下载,邀请好友,即有机会赢取 3,000 USDT

APP下载   官网注册

老铁们,大家好,相信还有很多朋友对于gameplay function和gameplayfunction的相关问题不太懂,没关系,今天就由我来为大家分享分享gameplay function以及gameplayfunction的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!

本文目录

  1. cod怎么设置中文
  2. 巫师3等级降低代码
  3. 简单C语言问题 linker error
  4. 求C语言小游戏源程序
  5. dev-c++小游戏代码,急急急急!!!

cod怎么设置中文

Cod设置中文很简单,只需要在Cod中的"File"菜单中选择"Preferences",然后找到"UserInterface"选项卡,在"Language"下拉菜单中选择中文即可。这样设定后,可以使Cod的界面变成中文,同时也可以方便地阅读中文代码。

巫师3等级降低代码

代码设置等级不能降低,只能重开。但是可以用以下办法。

1、(盘符:\steam\steamapps\common\TheWitcher3\content\content0\scripts\game\gameplay\leveling)在上面文件夹找到levelmanger.ws,文本格式打开查找到“publicfunctionGetMaxLevel():int{return100;}”,把100改成110以上多少都行,然后保存,启动游戏。2、打开CE修改器,去杀个小怪搜索下经验值,找到经验值的内存地址双击记录下来先不用改。3、用巫师3控制台setlevel(此数值大于你当前的level)来回两三次,用CE找到level的内存地址,然后修改你需要的等级(然后你会发现经验值会多出好几万)4、再用CE修改经验值,比如48000就改成-48000、70000多就改-70000多。

《巫师3:狂猎》是由CDProjektRED制作,WBGames(北美地区)、SpikeChunsoft(日本地区)发行的一款角色扮演类游戏,于2015年5月19日在Windows/Playstation4/XboxOne平台发行,2019年10月13日登录NintendoSwitch平台。游戏改编自小说《猎魔人》系列,为《巫师》系列的第三部作品,同时也是杰洛特冒险的终曲。

简单C语言问题 linker error

这种提示是连接错误(Linkererror)。

一般可执行程序的过程是:源代码->目标代码(经过编译)->可执行程序(经过连接)。

你的问题就出在最后一步。那么为何出现这样的问题呢?

既然编译通过,说明你的源程序没问题。那么连接出错由什么原因引起的呢?

一般我们写程序不可能每个功能自己写,一些共用的功能(函数)被封装在库中(主要有两个文件:.h和.lib),你上面的错误说明graphics.h是存在的,所以没有编译错误,但是graphics.lib找不到,就不能进行连接。

解决方法:不管你用什么方法找到graphics.lib,复制到你编程环境中的LIB目录中去。

给你一个完整的贪吃蛇程序(要将TC拷贝至C盘下):

/*共有两关,有记时器和记分器;

按Enter键开局;

在游戏过程中,按ESC键退出,按Enter键重新开局;*/

#include<stdlib.h>

#include<graphics.h>

#include<bios.h>

#include<dos.h>

#include<conio.h>

#defineEnter7181

#defineESC283

#defineUP18432

#defineDOWN20480

#defineLEFT19200

#defineRIGHT19712

#ifdef__cplusplus

#define__CPPARGS...

#else

#define__CPPARGS

#endif

voidinterrupt(*oldhandler)(__CPPARGS);

voidinterruptnewhandler(__CPPARGS);

voidSetTimer(voidinterrupt(*IntProc)(__CPPARGS));

voidKillTimer(void);

voidInitgra(void);

voidTheFirstBlock(void);

voidDrawMap(void);

voidInitsnake(void);

voidInitfood(void);

voidSnake_Headmv(void);

voidFlag(int,int,int,int);

voidGameOver(void);

voidSnake_Bodymv(void);

voidSnake_Bodyadd(void);

voidPrntScore(void);

voidTimer(void);

voidWin(void);

voidTheSecondBlock(void);

voidFood(void);

voidDsnkorfd(int,int,int);

voidDelay(int);

structSnake

{intx;inty;intcolor;}Snk[12];

structFood

{intx;inty;intcolor;}Fd;

intflag1=1,flag2=0,flag3=0,flag4=0,flag5=0,flag6=0,

checkx,checky,num,key=0,Times,Score,Hscore,Snkspeed,TimerCounter,TureorFalse;

charSco[2],Time[6];

voidmain()

{Initgra();

SetTimer(newhandler);

TheFirstBlock();

while(1)

{DrawMap();

Snake_Headmv();

GameOver();

Snake_Bodymv();

Snake_Bodyadd();

PrntScore();

Timer();

Win();

if(key==ESC)

break;

if(key==Enter)

{cleardevice();

TheFirstBlock();

}

TheSecondBlock();

Food();

Delay(Snkspeed);

}

closegraph();

KillTimer();

}

voidinterruptnewhandler(__CPPARGS)

{

TimerCounter++;

oldhandler();

}

voidSetTimer(voidinterrupt(*IntProc)(__CPPARGS))

{

oldhandler=getvect(0x1c);

disable();

setvect(0x1c,IntProc);

enable();

}

voidKillTimer()

{

disable();

setvect(0x1c,oldhandler);

enable();

}

voidInitgra()

{intgd=DETECT,gm;

initgraph(&gd,&gm,"C:\\tc");

}

voidTheFirstBlock()

{setcolor(11);

settextstyle(0,0,4);

outtextxy(100,220,"TheFirstBlock");

loop:key=bioskey(0);

if(key==Enter)

{cleardevice();

Initsnake();

Initfood();

Score=0;

Hscore=1;

Snkspeed=10;

num=2;

Times=0;

key=0;

TureorFalse=1;

TimerCounter=0;

Time[0]='0';Time[1]='0';Time[2]=':';Time[3]='1';Time[4]='0';Time[5]='\0';

}

elseif(key==ESC)cleardevice();

elsegotoloop;

}

voidDrawMap()

{line(10,10,470,10);

line(470,10,470,470);

line(470,470,10,470);

line(10,470,10,10);

line(480,20,620,20);

line(620,20,620,460);

line(620,460,480,460);

line(480,460,480,20);

}

voidInitsnake()

{randomize();

num=2;

Snk[0].x=random(440);

Snk[0].x=Snk[0].x-Snk[0].x%20+50;

Snk[0].y=random(440);

Snk[0].y=Snk[0].y-Snk[0].y%20+50;

Snk[0].color=4;

Snk[1].x=Snk[0].x;

Snk[1].y=Snk[0].y+20;

Snk[1].color=4;

}

voidInitfood()

{randomize();

Fd.x=random(440);

Fd.x=Fd.x-Fd.x%20+30;

Fd.y=random(440);

Fd.y=Fd.y-Fd.y%20+30;

Fd.color=random(14)+1;

}

voidSnake_Headmv()

{if(bioskey(1))

{key=bioskey(0);

switch(key)

{caseUP:Flag(1,0,0,0);break;

caseDOWN:Flag(0,1,0,0);break;

caseLEFT:Flag(0,0,1,0);break;

caseRIGHT:Flag(0,0,0,1);break;

default:break;

}

}

if(flag1)

{checkx=Snk[0].x;

checky=Snk[0].y;

Dsnkorfd(Snk[0].x,Snk[0].y,0);

Snk[0].y-=20;

Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color);

}

if(flag2)

{checkx=Snk[0].x;

checky=Snk[0].y;

Dsnkorfd(Snk[0].x,Snk[0].y,0);

Snk[0].y+=20;

Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color);

}

if(flag3)

{checkx=Snk[0].x;

checky=Snk[0].y;

Dsnkorfd(Snk[0].x,Snk[0].y,0);

Snk[0].x-=20;

Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color);

}

if(flag4)

{checkx=Snk[0].x;

checky=Snk[0].y;

Dsnkorfd(Snk[0].x,Snk[0].y,0);

Snk[0].x+=20;

Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color);

}

}

voidFlag(inta,intb,intc,intd)

{flag1=a;flag2=b;flag3=c;flag4=d;}

voidGameOver()

{inti;

if(Snk[0].x<20||Snk[0].x>460||Snk[0].y<20||Snk[0].y>460)

{cleardevice();

setcolor(11);

settextstyle(0,0,4);

outtextxy(160,220,"GameOver");

loop1:key=bioskey(0);

if(key==Enter)

{cleardevice();

TheFirstBlock();

}

else

if(key==ESC)

cleardevice();

else

gotoloop1;

}

for(i=3;i<num;i++)

{if(Snk[0].x==Snk[i].x&&Snk[0].y==Snk[i].y)

{cleardevice();

setcolor(11);

settextstyle(0,0,4);

outtextxy(160,220,"GameOver");

loop2:key=bioskey(0);

if(key==Enter)

{cleardevice();

TheFirstBlock();

}

else

if(key==ESC)

cleardevice();

elsegotoloop2;

}

}

}

voidSnake_Bodymv()

{inti,s,t;

for(i=1;i<num;i++)

{Dsnkorfd(checkx,checky,Snk[i].color);

Dsnkorfd(Snk[i].x,Snk[i].y,0);

s=Snk[i].x;

t=Snk[i].y;

Snk[i].x=checkx;

Snk[i].y=checky;

checkx=s;

checky=t;

}

}

voidFood()

{if(flag5)

{randomize();

Fd.x=random(440);

Fd.x=Fd.x-Fd.x%20+30;

Fd.y=random(440);

Fd.y=Fd.y-Fd.y%20+30;

Fd.color=random(14)+1;

flag5=0;

}

Dsnkorfd(Fd.x,Fd.y,Fd.color);

}

voidSnake_Bodyadd()

{if(Snk[0].x==Fd.x&&Snk[0].y==Fd.y)

{if(Snk[num-1].x>Snk[num-2].x)

{num++;

Snk[num-1].x=Snk[num-2].x+20;

Snk[num-1].y=Snk[num-2].y;

Snk[num-1].color=Fd.color;

}

else

if(Snk[num-1].x<Snk[num-2].x)

{num++;

Snk[num-1].x=Snk[num-2].x-20;

Snk[num-1].y=Snk[num-2].y;

Snk[num-1].color=Fd.color;

}

else

if(Snk[num-1].y>Snk[num-2].y)

{num++;

Snk[num-1].x=Snk[num-2].x;

Snk[num-1].y=Snk[num-2].y+20;

Snk[num-1].color=Fd.color;

}

else

if(Snk[num-1].y<Snk[num-2].y)

{num++;

Snk[num-1].x=Snk[num-2].x;

Snk[num-1].y=Snk[num-2].y-20;

Snk[num-1].color=Fd.color;

}

flag5=1;

Score++;

}

}

voidPrntScore()

{if(Hscore!=Score)

{setcolor(11);

settextstyle(0,0,3);

outtextxy(490,100,"SCORE");

setcolor(2);

setfillstyle(1,0);

rectangle(520,140,580,180);

floodfill(530,145,2);

Sco[0]=(char)(Score+48);

Sco[1]='\0';

Hscore=Score;

setcolor(4);

settextstyle(0,0,3);

outtextxy(540,150,Sco);

}

}

voidTimer()

{if(TimerCounter>18)

{Time[4]=(char)(Time[4]-1);

if(Time[4]<'0')

{Time[4]='9';

Time[3]=(char)(Time[3]-1);

}

if(Time[3]<'0')

{Time[3]='5';

Time[1]=(char)(Time[1]-1);

}

if(TureorFalse)

{setcolor(11);

settextstyle(0,0,3);

outtextxy(490,240,"TIMER");

setcolor(2);

setfillstyle(1,0);

rectangle(490,280,610,320);

floodfill(530,300,2);

setcolor(11);

settextstyle(0,0,3);

outtextxy(495,290,Time);

TureorFalse=0;

}

if(Time[1]=='0'&&Time[3]=='0'&&Time[4]=='0')

{setcolor(11);

settextstyle(0,0,4);

outtextxy(160,220,"GameOver");

loop:key=bioskey(0);

if(key==Enter)

{cleardevice();

TheFirstBlock();

}

elseif(key==ESC)cleardevice();

elsegotoloop;

}

TimerCounter=0;

TureorFalse=1;

}

}

voidWin()

{if(Score==3)

Times++;

if(Times==2)

{cleardevice();

setcolor(11);

settextstyle(0,0,4);

outtextxy(160,220,"YouWin");

loop:key=bioskey(0);

if(key==Enter)

{cleardevice();

TheFirstBlock();

key=0;

}

elseif(key==ESC)cleardevice();

elsegotoloop;

}

}

voidTheSecondBlock()

{if(Score==3)

{cleardevice();

setcolor(11);

settextstyle(0,0,4);

outtextxy(100,220,"TheSecondBlock");

loop:key=bioskey(0);

if(key==Enter)

{cleardevice();

Initsnake();

Initfood();

Score=0;

Hscore=1;

Snkspeed=8;

num=2;

key=0;

}

elseif(key==ESC)cleardevice();

elsegotoloop;

}

}

voidDsnkorfd(intx,inty,intcolor)

{setcolor(color);

setfillstyle(1,color);

circle(x,y,10);

floodfill(x,y,color);

}

voidDelay(inttimes)

{inti;

for(i=1;i<=times;i++)

delay(15000);

}

求C语言小游戏源程序

我的楼主可以自己玩一下

试试吧

#defineN200

#include<graphics.h>

#include<stdlib.h>

#include<dos.h>

#defineLEFT0x4b00

#defineRIGHT0x4d00

#defineDOWN0x5000

#defineUP0x4800

#defineESC0x011b

inti,key;

intscore=0;/*得分*/

intgamespeed=50000;/*游戏速度自己调整*/

structFood

{

intx;/*食物的横坐标*/

inty;/*食物的纵坐标*/

intyes;/*判断是否要出现食物的变量*/

}food;/*食物的结构体*/

structSnake

{

intx[N];

inty[N];

intnode;/*蛇的节数*/

intdirection;/*蛇移动方向*/

intlife;/*蛇的生命,0活着,1死亡*/

}snake;

voidInit(void);/*图形驱动*/

voidClose(void);/*图形结束*/

voidDrawK(void);/*开始画面*/

voidGameOver(void);/*结束游戏*/

voidGamePlay(void);/*玩游戏具体过程*/

voidPrScore(void);/*输出成绩*/

/*主函数*/

voidmain(void)

{

Init();/*图形驱动*/

DrawK();/*开始画面*/

GamePlay();/*玩游戏具体过程*/

Close();/*图形结束*/

}

/*图形驱动*/

voidInit(void)

{

intgd=DETECT,gm;

initgraph(&gd,&gm,"c:\\tc");

cleardevice();

}

/*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/

voidDrawK(void)

{

/*setbkcolor(LIGHTGREEN);*/

setcolor(11);

setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/

for(i=50;i<=600;i+=10)/*画围墙*/

{

rectangle(i,40,i+10,49);/*上边*/

rectangle(i,451,i+10,460);/*下边*/

}

for(i=40;i<=450;i+=10)

{

rectangle(50,i,59,i+10);/*左边*/

rectangle(601,i,610,i+10);/*右边*/

}

}

/*玩游戏具体过程*/

voidGamePlay(void)

{

randomize();/*随机数发生器*/

food.yes=1;/*1表示需要出现新食物,0表示已经存在食物*/

snake.life=0;/*活着*/

snake.direction=1;/*方向往右*/

snake.x[0]=100;snake.y[0]=100;/*蛇头*/

snake.x[1]=110;snake.y[1]=100;

snake.node=2;/*节数*/

PrScore();/*输出得分*/

while(1)/*可以重复玩游戏,压ESC键结束*/

{

while(!kbhit())/*在没有按键的情况下,蛇自己移动身体*/

{

if(food.yes==1)/*需要出现新食物*/

{

food.x=rand()%400+60;

food.y=rand()%350+60;

while(food.x!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/

food.x++;

while(food.y!=0)

food.y++;

food.yes=0;/*画面上有食物了*/

}

if(food.yes==0)/*画面上有食物了就要显示*/

{

setcolor(GREEN);

rectangle(food.x,food.y,food.x+10,food.y-10);

}

for(i=snake.node-1;i>0;i--)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/

{

snake.x[i]=snake.x[i-1];

snake.y[i]=snake.y[i-1];

}

/*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/

switch(snake.direction)

{

case1:snake.x[0]+=10;break;

case2:snake.x[0]-=10;break;

case3:snake.y[0]-=10;break;

case4:snake.y[0]+=10;break;

}

for(i=3;i<snake.node;i++)/*从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*/

{

if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0])

{

GameOver();/*显示失败*/

snake.life=1;

break;

}

}

if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||

snake.y[0]>455)/*蛇是否撞到墙壁*/

{

GameOver();/*本次游戏结束*/

snake.life=1;/*蛇死*/

}

if(snake.life==1)/*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/

break;

if(snake.x[0]==food.x&&snake.y[0]==food.y)/*吃到食物以后*/

{

setcolor(0);/*把画面上的食物东西去掉*/

rectangle(food.x,food.y,food.x+10,food.y-10);

snake.x[snake.node]=-20;snake.y[snake.node]=-20;

/*新的一节先放在看不见的位置,下次循环就取前一节的位置*/

snake.node++;/*蛇的身体长一节*/

food.yes=1;/*画面上需要出现新的食物*/

score+=10;

PrScore();/*输出新得分*/

}

setcolor(4);/*画出蛇*/

for(i=0;i<snake.node;i++)

rectangle(snake.x[i],snake.y[i],snake.x[i]+10,

snake.y[i]-10);

delay(gamespeed);

setcolor(0);/*用黑色去除蛇的的最后一节*/

rectangle(snake.x[snake.node-1],snake.y[snake.node-1],

snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);

}/*endwhile(!kbhit)*/

if(snake.life==1)/*如果蛇死就跳出循环*/

break;

key=bioskey(0);/*接收按键*/

if(key==ESC)/*按ESC键退出*/

break;

else

if(key==UP&&snake.direction!=4)

/*判断是否往相反的方向移动*/

snake.direction=3;

else

if(key==RIGHT&&snake.direction!=2)

snake.direction=1;

else

if(key==LEFT&&snake.direction!=1)

snake.direction=2;

else

if(key==DOWN&&snake.direction!=3)

snake.direction=4;

}/*endwhile(1)*/

}

/*游戏结束*/

voidGameOver(void)

{

cleardevice();

PrScore();

setcolor(RED);

settextstyle(0,0,4);

outtextxy(200,200,"GAMEOVER");

getch();

}

/*输出成绩*/

voidPrScore(void)

{

charstr[10];

setfillstyle(SOLID_FILL,YELLOW);

bar(50,15,220,35);

setcolor(6);

settextstyle(0,0,2);

sprintf(str,"score:%d",score);

outtextxy(55,20,str);

}

/*图形结束*/

voidClose(void)

{

getch();

closegraph();

}

dev-c++小游戏代码,急急急急!!!

#include<iostream>

#include<windows.h>

#include<conio.h>

#include<time.h>

#include<string>

usingnamespacestd;

/*===============allthestructures===============*/

typedefstructFrame

{

COORDposition[2];

intflag;

}Frame;

/*===============allthefunctions===============*/

voidSetPos(COORDa)//setcursor

{

HANDLEout=GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleCursorPosition(out,a);

}

voidSetPos(inti,intj)//setcursor

{

COORDpos={i,j};

SetPos(pos);

}

voidHideCursor()

{

CONSOLE_CURSOR_INFOcursor_info={1,0};

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);

}

//把第y行,[x1,x2)之间的坐标填充为ch

voiddrawRow(inty,intx1,intx2,charch)

{

SetPos(x1,y);

for(inti=0;i<=(x2-x1);i++)

cout<<ch;

}

//在a,b纵坐标相同的前提下,把坐标[a,b]之间填充为ch

voiddrawRow(COORDa,COORDb,charch)

{

if(a.Y==b.Y)

drawRow(a.Y,a.X,b.X,ch);

else

{

SetPos(0,25);

cout<<"errorcode01:无法填充行,因为两个坐标的纵坐标(x)不相等";

system("pause");

}

}

//把第x列,[y1,y2]之间的坐标填充为ch

voiddrawCol(intx,inty1,inty2,charch)

{

inty=y1;

while(y!=y2+1)

{

SetPos(x,y);

cout<<ch;

y++;

}

}

//在a,b横坐标相同的前提下,把坐标[a,b]之间填充为ch

voiddrawCol(COORDa,COORDb,charch)

{

if(a.X==b.X)

drawCol(a.X,a.Y,b.Y,ch);

else

{

SetPos(0,25);

cout<<"errorcode02:无法填充列,因为两个坐标的横坐标(y)不相等";

system("pause");

}

}

//左上角坐标、右下角坐标、用row填充行、用col填充列

voiddrawFrame(COORDa,COORDb,charrow,charcol)

{

drawRow(a.Y,a.X+1,b.X-1,row);

drawRow(b.Y,a.X+1,b.X-1,row);

drawCol(a.X,a.Y+1,b.Y-1,col);

drawCol(b.X,a.Y+1,b.Y-1,col);

}

voiddrawFrame(intx1,inty1,intx2,inty2,charrow,charcol)

{

COORDa={x1,y1};

COORDb={x2,y2};

drawFrame(a,b,row,col);

}

voiddrawFrame(Frameframe,charrow,charcol)

{

COORDa=frame.position[0];

COORDb=frame.position[1];

drawFrame(a,b,row,col);

}

voiddrawPlaying()

{

drawFrame(0,0,48,24,'=','|');// drawmapframe;

drawFrame(49,0,79,4,'-','|');// drawoutputframe

drawFrame(49,4,79,9,'-','|');// drawscoreframe

drawFrame(49,9,79,20,'-','|');// drawoperateframe

drawFrame(49,20,79,24,'-','|');// drawothermessageframe

SetPos(52,6);

cout<<"得分:";

SetPos(52,7);

cout<<"称号:";

SetPos(52,10);

cout<<"操作方式:";

SetPos(52,12);

cout<<"a,s,d,w控制战机移动。";

SetPos(52,14);

cout<<"p暂停游戏。";

SetPos(52,16);

cout<<"e退出游戏。";

SetPos(52,18);

cout<<"k发射子弹。";

}

//在[a,b)之间产生一个随机整数

intrandom(inta,intb)

{

intc=(rand()%(a-b))+a;

returnc;

}

//在两个坐标包括的矩形框内随机产生一个坐标

COORDrandom(COORDa,COORDb)

{

intx=random(a.X,b.X);

inty=random(a.Y,b.Y);

COORDc={x,y};

returnc;

}

booljudgeCoordInFrame(Frameframe,COORDspot)

{

if(spot.X>=frame.position[0].X)

if(spot.X<=frame.position[1].X)

if(spot.Y>=frame.position[0].Y)

if(spot.Y<=frame.position[0].Y)

returntrue;

returnfalse;

}

voidprintCoord(COORDa)

{

cout <<"("<<a.X<<","<<a.Y<<")";

}

voidprintFrameCoord(Framea)

{

printCoord(a.position[0]);

cout <<"-";

printCoord(a.position[1]);

}

intdrawMenu()

{

SetPos(30,1);

cout<<"PlaneWar";

drawRow(3,0,79,'-');

drawRow(5,0,79,'-');

SetPos(28,4);

cout<<"w和s选择,k确定";

SetPos(15,11);

cout<<"1.简单的敌人";

SetPos(15,13);

cout<<"2.冷酷的敌人";

drawRow(20,0,79,'-');

drawRow(22,0,79,'-');

SetPos(47,11);

cout<<"简单的敌人:";

SetPos(51,13);

cout<<"简单敌人有着较慢的移动速度。";

SetPos(24,21);

cout<<"☆○☆○☆○☆○☆○☆";

intj=11;

SetPos(12,j);

cout<<">>";

//drawFrame(45,9,79,17,'=','|');

while(1)

{ if(_kbhit())

{

charx=_getch();

switch(x)

{

case'w':

{

if(j==13)

{

SetPos(12,j);

cout<<"";

j=11;

SetPos(12,j);

cout<<">>";

SetPos(51,13);

cout<<"";

SetPos(47,11);

cout<<"简单的敌人:";

SetPos(51,13);

cout<<"简单敌人有着较慢的移动速度。";

}

break;

}

case's':

{

if(j==11)

{

SetPos(12,j);

cout<<"";

j=13;

SetPos(12,j);

cout<<">>";

SetPos(51,13);

cout<<"";

SetPos(47,11);

cout<<"冷酷的敌人:";

SetPos(51,13);

cout<<"冷酷的敌人移动速度较快。";

}

break;

}

case'k':

{

if(j==8) return1;

elsereturn2;

}

}

}

}

}

/*

DWORDWINAPIMusicFun(LPVOIDlpParamte)

{

//DWORDOBJ;

sndPlaySound(TEXT("bgm.wav"),SND_FILENAME|SND_ASYNC);

return0;

}

*/

/*==================theGameClass==================*/

classGame

{

public:

COORDposition[10];

COORDbullet[10];

Frameenemy[8];

intscore;

intrank;

intrankf;

stringtitle;

intflag_rank;

Game();

//初始化所有

voidinitPlane();

voidinitBullet();

voidinitEnemy();

//初始化其中一个

//voidinitThisBullet(COORD);

//voidinitThisEnemy(Frame);

voidplaneMove(char);

voidbulletMove();

voidenemyMove();

//填充所有

voiddrawPlane();

voiddrawPlaneToNull();

voiddrawBullet();

voiddrawBulletToNull();

voiddrawEnemy();

voiddrawEnemyToNull();

//填充其中一个

voiddrawThisBulletToNull(COORD);

voiddrawThisEnemyToNull(Frame);

voidPause();

voidPlaying();

voidjudgePlane();

voidjudgeEnemy();

voidShoot();

voidGameOver();

voidprintScore();

};

Game::Game()

{

initPlane();

initBullet();

initEnemy();

score=0;

rank=25;

rankf=0;

flag_rank=0;

}

voidGame::initPlane()

{

COORDcentren={39,22};

position[0].X=position[5].X=position[7].X=position[9].X=centren.X;

position[1].X=centren.X-2;

position[2].X=position[6].X=centren.X-1;

position[3].X=position[8].X=centren.X+1;

position[4].X=centren.X+2;

for(inti=0;i<=4;i++)

position[i].Y=centren.Y;

for(inti=6;i<=8;i++)

position[i].Y=centren.Y+1;

position[5].Y=centren.Y-1;

position[9].Y=centren.Y-2;

}

voidGame::drawPlane()

{

for(inti=0;i<9;i++)

{

SetPos(position[i]);

if(i!=5)

cout<<"o";

elseif(i==5)

cout<<"|";

}

}

voidGame::drawPlaneToNull()

{

for(inti=0;i<9;i++)

{

SetPos(position[i]);

cout<<"";

}

}

voidGame::initBullet()

{

for(inti=0;i<10;i++)

bullet[i].Y=30;

}

voidGame::drawBullet()

{

for(inti=0;i<10;i++)

{

if(bullet[i].Y!=30)

{

SetPos(bullet[i]);

cout<<"^";

}

}

}

voidGame::drawBulletToNull()

{

for(inti=0;i<10;i++)

if(bullet[i].Y!=30)

{

COORDpos={bullet[i].X,bullet[i].Y+1};

SetPos(pos);

cout<<"";

}

}

voidGame::initEnemy()

{

COORDa={1,1};

COORDb={45,15};

for(inti=0;i<8;i++)

{

enemy[i].position[0]=random(a,b);

enemy[i].position[1].X=enemy[i].position[0].X+3;

enemy[i].position[1].Y=enemy[i].position[0].Y+2;

}

}

voidGame::drawEnemy()

{

for(inti=0;i<8;i++)

drawFrame(enemy[i].position[0],enemy[i].position[1],'-','|');

}

voidGame::drawEnemyToNull()

{

for(inti=0;i<8;i++)

{

drawFrame(enemy[i].position[0],enemy[i].position[1],'','');

}

}

voidGame::Pause()

{

SetPos(61,2);

cout<<"";

SetPos(61,2);

cout<<"暂停中...";

charc=_getch();

while(c!='p')

c=_getch();

SetPos(61,2);

cout<<"";

}

voidGame::planeMove(charx)

{

if(x=='a')

if(position[1].X!=1)

for(inti=0;i<=9;i++)

position[i].X-=2;

if(x=='s')

if(position[7].Y!=23)

for(inti=0;i<=9;i++)

position[i].Y+=1;

if(x=='d')

if(position[4].X!=47)

for(inti=0;i<=9;i++)

position[i].X+=2;

if(x=='w')

if(position[5].Y!=3)

for(inti=0;i<=9;i++)

position[i].Y-=1;

}

voidGame::bulletMove()

{

for(inti=0;i<10;i++)

{

if(bullet[i].Y!=30)

{

bullet[i].Y-=1;

if(bullet[i].Y==1)

{

COORDpos={bullet[i].X,bullet[i].Y+1};

drawThisBulletToNull(pos);

bullet[i].Y=30;

}

}

}

}

voidGame::enemyMove()

{

for(inti=0;i<8;i++)

{

for(intj=0;j<2;j++)

enemy[i].position[j].Y++;

if(24==enemy[i].position[1].Y)

{

COORDa={1,1};

COORDb={45,3};

enemy[i].position[0]=random(a,b);

enemy[i].position[1].X=enemy[i].position[0].X+3;

enemy[i].position[1].Y=enemy[i].position[0].Y+2;

}

}

}

voidGame::judgePlane()

{

for(inti=0;i<8;i++)

for(intj=0;j<9;j++)

if(judgeCoordInFrame(enemy[i],position[j]))

{

SetPos(62,1);

cout<<"坠毁";

drawFrame(enemy[i],'+','+');

Sleep(1000);

GameOver();

break;

}

}

voidGame::drawThisBulletToNull(COORDc)

{

SetPos(c);

cout<<"";

}

voidGame::drawThisEnemyToNull(Framef)

{

drawFrame(f,'','');

}

voidGame::judgeEnemy()

{

for(inti=0;i<8;i++)

for(intj=0;j<10;j++)

if(judgeCoordInFrame(enemy[i],bullet[j]))

{

score+=5;

drawThisEnemyToNull(enemy[i]);

COORDa={1,1};

COORDb={45,3};

enemy[i].position[0]=random(a,b);

enemy[i].position[1].X=enemy[i].position[0].X+3;

enemy[i].position[1].Y=enemy[i].position[0].Y+2;

drawThisBulletToNull(bullet[j]);

bullet[j].Y=30;

}

}

voidGame::Shoot()

{

for(inti=0;i<10;i++)

if(bullet[i].Y==30)

{

bullet[i].X=position[5].X;

bullet[i].Y=position[5].Y-1;

break;

}

}

voidGame::printScore()

{

if(score==120&&flag_rank==0)

{

rank-=3;

flag_rank=1;

}

elseif(score==360&&flag_rank==1)

{

rank-=5;

flag_rank=2;

}

elseif(score==480&&flag_rank==2)

{

rank-=5;

flag_rank=3;

}

intx=rank/5;

SetPos(60,6);

cout<<score;

if(rank!=rankf)

{

SetPos(60,7);

if(x==5)

title="初级飞行员";

elseif(x==4)

title="中级飞行员";

elseif(x==3)

title="高级飞行员";

elseif(x==2)

title="王牌飞行员";

cout<<title;

}

rankf=rank;

}

voidGame::Playing()

{

//HANDLEMFUN;

//MFUN=CreateThread(NULL,0,MusicFun,NULL,0,NULL);

drawEnemy();

drawPlane();

intflag_bullet=0;

intflag_enemy=0;

while(1)

{

Sleep(8);

if(_kbhit())

{

charx=_getch();

if('a'==x||'s'==x||'d'==x||'w'==x)

{

drawPlaneToNull();

planeMove(x);

drawPlane();

judgePlane();

}

elseif('p'==x)

Pause();

elseif('k'==x)

Shoot();

elseif('e'==x)

{

//CloseHandle(MFUN);

GameOver();

break;

}

}

/*处理子弹*/

if(0==flag_bullet)

{

bulletMove();

drawBulletToNull();

drawBullet();

judgeEnemy();

}

flag_bullet++;

if(5==flag_bullet)

flag_bullet=0;

/*处理敌人*/

if(0==flag_enemy)

{

drawEnemyToNull();

enemyMove();

drawEnemy();

judgePlane();

}

flag_enemy++;

if(flag_enemy>=rank)

flag_enemy=0;

/*输出得分*/

printScore();

}

}

voidGame::GameOver()

{

system("cls");

COORDp1={28,9};

COORDp2={53,15};

drawFrame(p1,p2,'=','|');

SetPos(36,12);

stringstr="GameOver!";

for(inti=0;i<str.size();i++)

{

Sleep(80);

cout<<str[i];

}

Sleep(1000);

system("cls");

drawFrame(p1,p2,'=','|');

SetPos(31,11);

cout<<"击落敌机:"<<score/5<<"架";

SetPos(31,12);

cout<<"得分:"<<score;

SetPos(31,13);

cout<<"获得称号:"<<title;

SetPos(30,16);

Sleep(1000);

cout<<"继续?是(y)|否(n)";

as:

charx=_getch();

if(x=='n')

exit(0);

elseif(x=='y')

{

system("cls");

Gamegame;

inta=drawMenu();

if(a==2)

game.rank=20;

system("cls");

drawPlaying();

game.Playing();

}

elsegotoas;

}

/*==================themainfunction==================*/

intmain()

{

//游戏准备

srand((int)time(0)); //随机种子

HideCursor(); //隐藏光标

Gamegame;

inta=drawMenu();

if(a==2)

game.rank=20;

system("cls");

drawPlaying();

game.Playing();

}

关于本次gameplay function和gameplayfunction的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

相关内容

gameplay function,gameplayfunction文档下载.: PDF DOC TXT

猜你喜欢