level 1
本人只写出了下面的移动的板子和弹球 不知道怎么写上面的砖块
二楼给我写的板子和弹球代码 求大神告诉下怎么写出打掉砖块的代码 实在想不出来了
2017年07月12日 01点07分
1
level 1
#include <graphics.h>
#include <math.h>
#include <stdio.h>
int offs[4][2]={{-2,0},{0,-2},{2,0},{0,2}};
int x=0,y=0,dx =2,dy=2;//球起始位置和速度
int direction =2;
int width,height;
void draw(int cx);
void loop();
void moveShape(int cx);//轨迹
void drawShape(int cx);//球大小
void moveShape(int cx)
{
if(x<0) dx=rand()%3+2;
if(y<0) dy=rand()%3+2;
if(x+40>width) dx=-(rand()%3+2);
if((y+40)>400&&y<420&&x>=cx&&x<=(cx+80))dy=-(rand()%3+2);;
x+=dx;
y+=dy;
}
void drawShape(int cx)
{
moveShape(cx);
ege_fillellipse(x,y,40,40);
}
void loop()
{
for(; is_run(); delay_fps(60))
{ int cy,cx;
if(kbhit())
{
key_msg km=getkey();
// switch(km.key)
// {
// case key_left:direaction=0 ;break;
// case key_right:direaction=2 ;break;
// case key_down:direaction=3 ;break;
// case key_up:direaction=1 ;break;
// default:break;
// }
if(km.key>=37&&km.key<=40)
direction = km.key-37;
}
if(mousemsg())
{
mousepos(&cx,&cy);
}
cleardevice();
drawShape(cx);
draw(cx);
}
}
void draw(int cx)
{
setfillcolor(EGEARGB(0xff,0xff,0x0,0x0));
ege_fillrect(cx,400,100,20);
}
int main()
{
setinitmode(INIT_ANIMATION);
initgraph(640,480);
width=getwidth();
height=getheight();
loop();
closegraph();
return 0;
}
2017年07月12日 01点07分
2
楼主,你输入的37~40代表的是什么呀?
2018年09月18日 06点09分