微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ILI9235的51单片机驱动程序-推箱子游戏

ILI9235的51单片机驱动程序-推箱子游戏

时间:11-30 来源:互联网 点击:

/********************************************************************
画直线(可以画任意方向直线,包括横线、竖线、斜线)。
入口参数: (x1,y1)起点, (x2,y2)终点, color颜色。
出口参数: 无
说 明:用指定的颜色在指定的两点间画出一条直线。
***********************************************************************/
void Disline(uint x1,uint x2,uint y1,uint y2,uint color)
{
uint t;
int xerr=0,yerr=0,delta_x,delta_y,distance;
int incx,incy;
uint row,col;
delta_x = x2-x1;//计算坐标增量
delta_y = y2-y1;
col=x1;
row=y1;
if(delta_x>0) incx=1;//设置单步方向
else
{
if(delta_x==0) incx=0;//垂直线
else {incx=-1;delta_x=-delta_x;}
}
if(delta_y>0)incy=1;
else
{
if(delta_y==0) incy=0;//水平线
else {incy=-1;delta_y=-delta_y;}
}
if(delta_x>delta_y) distance=delta_x;//选取基本增量坐标轴
else distance=delta_y;

for(t=0;t<=distance+1;t++)
{ //画线输出
DisPoint(col,row,color);
xerr+=delta_x;
yerr+=delta_y;
if(xerr>distance)
{
xerr-=distance;
col+=incx;
}
if(yerr>distance)
{
yerr-=distance;
row+=incy;
}
}
}

void Dis32x32(uint y,uint x,uchar *Code32x32,uint fColor,uint bColor)
{
uint i,j;
y = 320-y-32;
LCD_SetPos(x,x+31,y,y+31);
LCD_SetPos(x,x+31,y,y+31);
for(i=0;i<128;i++) //按照字模成分描点
{
ushort w = Code32x32[i];
for(j=0;j<8;j++)
{
uint Color= (w&0x80)? fColor:bColor;//条件运算符,当为字模成份时描前景色 //否则描背景色
Write_Data_U16(Color);
w<=1;
}
}

}

void Dis16x16(uchar x,uchar y,uchar *Code16x16,uint fColor,uint bColor)
{
uint i,j;
y = 320-y-16;
LCD_SetPos(x,x+15,y,y+15);
for(i=0;i<32;i++)//按照字模成分描点
{
uchar w = Code16x16[i];
for(j=0;j<8;j++)
{
uint Color= (w&0x80)? fColor:bColor; //条件运算符,当为字模成份时描前景色
//否则描背景色
Write_Data_U16(Color);
w<=1;
}
}
}

//写16X32字符
void Dis16x32(uint y, uint x,uchar *Code16x32,uint fColor,uint bColor)
{
uint i,j;
y=320-y-32;
LCD_SetPos(x,x+31,y,y+15);

for(i=0;i<64;i++) //按字模成分描点
{
ushort w = Code16x32[i];
for(j=0;j<8;j++)
{
uint Color= (w&0x80)? fColor:bColor; //条件运算符,当为字模成份时描前景色
//否则描背景色
Write_Data_U16(Color);
w<=1;
}

}

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top