求C语言的简单小游戏代码。。是在VC环境下运行的

有应用程序的
2025-03-06 16:26:18
推荐回答(3个)
回答1:

贪吃蛇,拼方块。。。

回答2:

#include
#include
#include
#include
#include

void main(){

srand( (unsigned)time( NULL ) );

char c='a';
initgraph(640, 480);
IMAGE bb(640,480),aa,cc;
SetWorkingImage(&bb);
loadimage(&bb,"D:\\beijing1.jpg",640,480);
loadimage(&aa,"D:\\blue.jpg",70,100);
loadimage(&cc,"D:\\花蘑菇.jpg",50,50);
putimage(0, 0, &bb);
//putimage(500,300,&cc);
int a[4],b[4];
double y=240,w,z;
double t=0;
double xp=320,xp1;
double vx,vy;
double ang=0;
char p;
//setfillstyle(RED );
//fillcircle (xp,y,20);
//putimage(xp,y , &aa);

SetWorkingImage();

putimage(0,0,&bb);

BeginBatchDraw();

while(c != 27){ //w s键控制角度调整,按下esc键结束角度调整,jkl;键逐渐使力度增大

int exit=0;

p= getch();
//cleardevice();
c = getch();

switch(p)
{
case' ' :for(int i=0;i<2;i++)
{ a[i]=( rand() % 320+300);
b[i] = (rand() % 240+200);}break;}

switch(c){

case'a' : {

xp-=5;
putimage(0,0 , &bb);
putimage(xp, 240,&aa);

putimage(a[0],b[0],&cc);

FlushBatchDraw();

Sleep(10);}break;
case 'd' :{xp+=5;
putimage(0,0 , &bb);

putimage(xp, 240,&aa);
putimage(a[0],b[0],&cc);
FlushBatchDraw();

Sleep(10);}break;
case 'w' : {
ang+=0.314;
putimage(xp, 240, &aa);
putimage(a[0],b[0],&cc);
setfillstyle(RED );
fillcircle (xp,y,20);
}break;

case 's' :{
ang-=0.314;
putimage(xp, 240, &aa);
putimage(a[0],b[0],&cc);
setfillstyle(RED );
fillcircle (xp,y,20);
}break;
case'j' :
{
putimage(a[0],b[0],&cc);
double v=5;
vx=v*cos(ang);
vy=v*sin(ang);
xp1=xp;
for(t=0;;t+=0.02){
putimage(0,0,&bb);
putimage(xp, 240, &aa);
xp1=xp1+vx*t;
y=y-vy*t+0.5*10*t*t;
setfillstyle(RED );
fillcircle (xp1,y,20);
if((xp1>=(a[0]-25)&&xp1<=(a[0]+25))&&(y>=(b[0]-25)&&y<=(b[0]+25))){

exit=1;
}
if(exit){putimage(0,0,&bb);
putimage(xp, 240, &aa);
}
else{
putimage(0,0,&bb);
putimage(xp, 240, &aa);
setfillstyle(RED );
fillcircle (xp1,y,20);
putimage(a[0],b[0],&cc);
}
FlushBatchDraw();
Sleep(10);
if(xp1>=640||y>=480)break;
}
xp1=xp;
y=240;
setfillstyle(RED );
fillcircle (xp,y,20);
}break;
case 'k': {
putimage(a[0],b[0],&cc);
double v=7;
vx=v*cos(ang);
vy=v*sin(ang);
xp1=xp;
for(t=0;;t+=0.02){
putimage(0,0,&bb);
putimage(xp, 240, &aa);
xp1=xp1+vx*t;
y=y-vy*t+0.5*10*t*t;
setfillstyle(RED );
fillcircle (xp1,y,20);
if((xp1>=(a[0]-25)&&xp1<=(a[0]+25))&&(y>=(b[0]-25)&&y<=(b[0]+25))){

exit=1;
}
if(exit){putimage(0,0,&bb);
putimage(xp, 240, &aa);
}
else{
putimage(0,0,&bb);
putimage(xp, 240, &aa);
setfillstyle(RED );
fillcircle (xp1,y,20);
putimage(a[0],b[0],&cc);
}
FlushBatchDraw();
Sleep(10);
if(xp1>=640||y>=480)break;
}
xp1=xp;
y=240;
setfillstyle(RED );
fillcircle (xp,y,20);
}break;
case 'l' :
{
putimage(a[0],b[0],&cc);
double v=8;
vx=v*cos(ang);
vy=v*sin(ang);
xp1=xp;
for(t=0;;t+=0.02){
putimage(0,0,&bb);
putimage(xp, 240, &aa);
xp1=xp1+vx*t;
y=y-vy*t+0.5*10*t*t;
setfillstyle(RED );
fillcircle (xp1,y,20);
if((xp1>=(a[0]-25)&&xp1<=(a[0]+25))&&(y>=(b[0]-25)&&y<=(b[0]+25))){

exit=1;
}
if(exit){putimage(0,0,&bb);
putimage(xp, 240, &aa);
}
else{
putimage(0,0,&bb);
putimage(xp, 240, &aa);
setfillstyle(RED );
fillcircle (xp1,y,20);
putimage(a[0],b[0],&cc);
}
FlushBatchDraw();
Sleep(10);
if(xp1>=640||y>=480)break;
}
xp1=xp;
y=240;
setfillstyle(RED );
fillcircle (xp,y,20);
}break;
case';' : {
putimage(a[0],b[0],&cc);
double v=5;
vx=v*cos(ang);
vy=v*sin(ang);
xp1=xp;
for(t=0;;t+=0.02){
putimage(0,0,&bb);
putimage(xp, 240, &aa);
xp1=xp1+vx*t;
y=y-vy*t+0.5*10*t*t;
setfillstyle(RED );
fillcircle (xp1,y,20);
if((xp1>=(a[0]-25)&&xp1<=(a[0]+25))&&(y>=(b[0]-25)&&y<=(b[0]+25))){

exit=1;
}
if(exit){putimage(0,0,&bb);
putimage(xp, 240, &aa);
}
else{
putimage(0,0,&bb);
putimage(xp, 240, &aa);
setfillstyle(RED );
fillcircle (xp1,y,20);
putimage(a[0],b[0],&cc);
}
FlushBatchDraw();
Sleep(10);
if(xp1>=640||y>=480)break;
}
xp1=xp;
y=240;
setfillstyle(RED );
fillcircle (xp,y,20);
}break;

}

}

EndBatchDraw();

getch();

closegraph();
}

回答3:

1.ccg54032.co2045893.cwlhx520