C主机-LCD点阵屏使用(编程)介绍
像素点:0-127*0-63
所用函数:
LCD_DrawRectangle(x,y,x1,y1,1);
LCD_DrawCircle(x,y,r,1);
LCD_Clear(0);
第一步:
1、实现小球移动
2、实现小球碰壁后,反d
3、循环反d
实现效果:
第二步:
1、创建接球平台
2、实现平台移动
3、控制平台移动区域
第三步:
1、实现平台接到小球,反d
2、没接到小球时,小球掉落时,游戏停止
3、接到球时,统计数值
#include "ASEIO.h"
int x11=0;//球X坐标
int y11=0;//球Y坐标
int a=0;//数值统计
int vx=1,vy=1;//球的移动方向
int x101;//球随机出现时,移动的方向随机
int x1=31;//接球平台的坐标
int zuo=0;//左键坐标
int you=0;//右键坐标
int enter=0;//确认键,游戏开始键 ENTER
void main()
{
for(;;)
{
enter=Get_Button();//按下确认键,游戏开始
if(enter==1)
{
x11=Get_Rand(1,126);//球,随机X坐标
y11=Get_Rand(1,30);//球,随机Y坐标
x1=Get_Rand(5,110);//接球平台,随机位置
x101=Get_Rand(1,2);//开始时,球向不同的方向动
if(x101==1)
{
vx=-1;
}
else
{
vx=1;
}
for(;;)
{
wait(0.03);
LCD_Clear();
LCD_DrawCircle(x11,y11,2,1);
LCD_DrawRectangle(0,0,127,63,0);
LCD_DrawRectangle(x1,59,x1+15,60,0);
x11=x11+vx*1;
y11=y11+vy*1;
zuo=Get_BtnLeft();//按下左键,向左移动
if(zuo==1)
{
if(x1<=1)
{
x1=1;
}
else
{
x1=x1-2;
}
}
you=Get_BtnRight();//按下右键,向右移动
if(you==1)
{
if(x1>=112)
{
x1=112;
}
else
{
x1=x1+2;
}
}
if(y11==59)
{
if((x1<=x11)&&(x1+15>=x11))//判断是否接到
{
BEEP(1000,0.1);
a++;
vy=-vy;
}
}
if(y11==0)
{
vy=1;
}
if(x11==127)
{
vx=-vx;
}
if(x11==0)
{
vx=1;
}
if(y11==61)//如果没有接到的情况下,游戏停止,限时统计数值
{
BEEP(1500,0.5);
LCD_Clear();
printf("\n\n\n Game over\n\n %d",a);
break;
}
}
//wait(0.02);
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)