C语言实现弹跳小球

时间:2021-05-20

这是一个简单的c语言源代码,C语言实现弹跳小球,设置了小球的分数及过关的难度。

#include "graphics.h"#include "math.h"#define LEFT 0x4b00#define RIGHT 0x4d00#define ESC 0x011bint x,y,x1,y1,key,t1,t2,keyx,keylong,keymove,over=0,i,tt=0,fast;int ballx[9]={53,103,263,120,236,390,410,450,600};int bally[9]={158,239,120,113,30,313,120,263,231},ballz[9]={0};float ls; win(){float lx,ly,ll; for(i=0;i<9;i++) { if(ballz[i]==1) continue; lx=(float)(ballx[i]-x); ly=(float)bally[i]-y; ll=lx*lx+ly*ly; ls=sqrt(ll); if((int)ls<17) {tt++; fast-=50; if(i%2==0) keymove+=5; else { setcolor(0); rectangle(keyx,460,keyx+keylong,470); keylong-=10; setcolor(YELLOW); rectangle(keyx,460,keyx+keylong,470); } ballz[i]=1; setcolor(0); circle(ballx[i],bally[i],10); if(y<bally[i]) if(x<ballx[i]) {t1=-1;t2=-1;} else {t1=1;t2=-1;} else if(x<ballx[i]) {t1=-1;t2=1;} else {t1=1;t2=1;} } }} fungo(){ x=100,y=50,keyx=200,keylong=100,keymove=15,fast=5000; for(i=0;i<9;i++) { setcolor(i+1); circle(ballx[i],bally[i],10); } sleep(1); t1=t2=1; while(1) { while(!kbhit()) { setcolor(YELLOW); rectangle(keyx,460,keyx+keylong,470); x1=x; y1=y; x+=t1; y+=t2; setcolor(4); circle(x,y,6); delay(fast); setcolor(0); circle(x,y,6); win(); if(tt==9) { cleardevice(); over=1; setcolor(RED); settextstyle(0,0,4); setusercharsize(3,1,3,1); outtextxy(200,200," YOU WIN! "); break; } if(y>480) { cleardevice(); over=1; setcolor(RED); settextstyle(0,0,4); setusercharsize(3,1,3,1); outtextxy(200,200,"GAME OVER"); break; } else if(x==11&&y==11) {t1=1;t2=1;} else if(x==629&&y==11) {t1=-1;t2=1;} else if(x==11) { if(y<y1) {t1=1;t2=-1;} else {t1=1;t2=1;} } else if(y==11) { if(x<x1) {t1=-1;t2=1;} else {t1=1;t2=1;} } else if(x==629) { if(y1>y) {t1=-1;t2=-1;} else {t1=-1;t2=1;} } else if(y==449) { if(x>=keyx&&x<=keyx+keylong) { if(x<(keyx+keylong/4)) {t1=-1;t2=-1;} else if(x>=(keyx+keylong/4)&&x<(keyx+keylong/2)) {t1=-1;t2=-2;} else if(x>=(keyx+keylong/2)&&x<(keyx+keylong/4*3)) {t1=1;t2=-2;} else {t1=1;t2=-1;} } } } if(over) break; key=bioskey(0); setcolor(0); rectangle(keyx,460,keyx+keylong,470); if(key==ESC) {cleardevice();break;} else if(key==LEFT) keyx-=keymove; else if(key==RIGHT) keyx+=keymove; }} main(){int gd=DETECT,gr; initgraph(&gd,&gr,"c:\\tc"); fungo(); getch(); sleep(1); closegraph();}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章