OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4931|回复: 3

关于俄罗斯方块的一些基础问题

[复制链接]

3

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2016-1-16
在线时间
23 小时
发表于 2016-3-8 20:41:25 | 显示全部楼层 |阅读模式
5金钱
学了32一段时间,所以想做个小游戏,因为这个不花钱嘛,但是看到这里我有点看不懂了

u16 Tetris[19]={0x0F00,0x4444,0x0660,0x4460,0x02E0,0x6220,0x0740,0x2260,0X6220,0x0E20,0x6440,0x0470,0x0C60,0x2640,0x0360,0x4620,0x04E0,0x2620,0x0E40,0x4640};
u16 BoxSR[Y_BOXS+4]={0x0000,0x0000,0x0000,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xFFFF};

_Shape NewShape={60,30,SHAPE_COLOR,1,1,1,0};
_Game Game={10000,1,0};

void LCD_DrawBlock(u16 sx,u16 sy,u16 color)
{
        LCD_DrawRectangle(sx,sy,sx+BPIXEL-1,sy+BPIXEL-1,color);       
        LCD_Fill(sx+2,sy+2,sx+BPIXEL-3,sy+BPIXEL-3,color);
}


void LCD_DrawShape(u16 sx,u16 sy,u8 n,u16 color)
{
       
        u8 a,b;
        u16 temp=Tetris[n];
        u8 i;
        for(i=0;i<16;i++)
        {
                a=i/4;
                b=i%4;
                if(temp&0x8000)
                {
                        LCD_DrawRectangle(sx+b*BPIXEL,sy+a*BPIXEL,sx+(b+1)*BPIXEL-1,sy+(a+1)*BPIXEL-1,color);
                        LCD_Fill(sx+b*BPIXEL+2,sy+a*BPIXEL+2,sx+(b+1)*BPIXEL-3,sy+(a+1)*BPIXEL-3,color);
                        BoxSR[sy/BPIXEL+a]|=1<<((sx/BPIXEL)+b);        //±ê&#188;&#199;&#184;&#195;·&#189;&#191;éò&#209;±&#187;í&#188;D&#206;&#213;&#188;ó&#195;
                }
                temp<<=1;
        }
}


其中红色字体由什么决定的?当我改为0x1000,0x2000,0x4000时生成图形就不一样了
是参照这个帖子的程序
http://www.openedv.com/forum.php ... digest%26digest%3D1

最佳答案

查看完整内容[请看2#楼]

不好意思,大家,我搞懂了。。。。。。。。。我去,我用断点一步步查看的,然后懂了,以前不会用断点
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2016-1-16
在线时间
23 小时
 楼主| 发表于 2016-3-8 20:41:26 | 显示全部楼层
不好意思,大家,我搞懂了。。。。。。。。。我去,我用断点一步步查看的,然后懂了,以前不会用断点
回复

使用道具 举报

58

主题

6293

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11474
金钱
11474
注册时间
2014-4-1
在线时间
1297 小时
发表于 2016-3-8 20:44:21 | 显示全部楼层

看程序,temp的含义在填写Tetris[n]数组时就已经确定了。
所以应当往上游追溯。


回复

使用道具 举报

3

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2016-1-16
在线时间
23 小时
 楼主| 发表于 2016-3-8 20:51:39 | 显示全部楼层
xuande 发表于 2016-3-8 20:44
看程序,temp的含义在填写Tetris[n]数组时就已经确定了。
所以应当往上游追溯。

对,但是我跟着上游追溯,但是得不到我想要的结果,还是不明白怎么来的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 07:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表