第一范文网 - 专业文章范例文档资料分享平台

单片机课程设计报告 - 图文

来源:用户分享 时间:2025/5/21 12:58:37 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

direct = MOVE_LEFT; break;

} } else

{ if(endY>startY) // {

direct = MOVE_DOWN; break;

} else

{ direct = MOVE_UP; break;

} } } }

close(fd); return direct; }

char * Get_Bmpfile_Name(intnum) // 输入一个数字,获取该数字相对应的图片 {

if(num==0)

returnbmpfiles[0]; else { inti = 0;

for (i = 0; i< 32; i++) {

if ((1 <

} }

returnbmpfiles[i];

}

17

} /*

LCD_Draw_Point:用来给屏幕上点(x, y)赋值 一个颜色,颜色值为color @x: 这个点的x轴坐标 @y: 这个点的y轴坐标 @color:这个点的颜色值 返回值:

无返回值 */

voidLCD_Draw_Point(int x, int y, int color) {

if (x>=0 && x <800 && y>=0 && y < 480) {

*(plcd + 800 * y + x) = color; } }

void LCD_Clear_Screen(char *bmpname ) // 给屏幕加一个背景图片 { intfd; inti = 0; int x, y;

unsigned char pixels[480*800*3];

fd = open(bmpname, O_RDONLY);

lseek(fd, 54, SEEK_SET); read(fd, pixels, 800*480*3); close(fd);

for (y = 0; y < 480; y++) {

for (x = 0; x < 800; x++) {

unsigned char r, g, b; int color;

b = pixels[i++]; g = pixels[i++]; r = pixels[i++];

18

color = (r << 16) |(g << 8) |(b);

LCD_Draw_Point( x, 480 - y,color); } } } /*

LCD_Draw_Bmp:把bmpname指定的bmp图片文件 显示在屏幕的点(x0, y0)的矩形区域内 */

voidLCD_Draw_Bmp(int x0, int y0, char *bmpname) { intfd; inti = 0; int x, y;

unsigned char pixels[100*100*3];

fd = open(bmpname, O_RDONLY);

lseek(fd, 54, SEEK_SET); read(fd, pixels, 100*100*3); close(fd);

//显示图片

for (y = 0; y < 100; y++) {

for (x = 0; x < 100; x++) {

unsigned char r, g, b; int color;

b = pixels[i++]; g = pixels[i++]; r = pixels[i++];

color = (r << 16) |(g << 8) |(b);

LCD_Draw_Point(x0 + x, y0 + 99 - y,color); } } }

void Game_Init() // 游戏开始的界面 { inti,j;

19

intx,y;

int index_x1=0,index_y1=0; int index_x2=0,index_y2=0;

while(index_x1==index_x2&&index_y1==index_y2) // 用于保证取到的两个点不会重合 {

index_x1=random() % 4; index_x2=random() % 4; index_y1=random() % 4; index_y2=random() % 4; }

for(i=0; i<4; i++) {

x=i*120; for(j=0; j<4; j++) {

y=j*120;

if((i==index_x1&&j==index_y1)||(i==index_x2&&j==index_y2)) LCD_Draw_Bmp(x, y, \else

LCD_Draw_Bmp(x, y, \ } }

matrix_2048[index_y1][index_x1]=2; // 把获得的数交给2048二维数组 matrix_2048[index_y2][index_x2]=2; }

void Zero_b() // 用于把buffer数组里的数全部清零 { inti,j;

for(i=0; i<4; i++) {

for(j=0; j<4; j++) { buffer[i][j]=0; } } }

void Move_left() // 向左移动操作 {

inti,j,k; Zero_b();

20

搜索更多关于: 单片机课程设计报告 - 图文 的文档
单片机课程设计报告 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c532pt7vhay7f2vc1v0ey6gjog0oh070069j_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top