在用51单片机做俄罗斯方块游戏时,看到别人的程序,有段话看不懂,求指教

/*显示四个小格的方块 */
void playbuf(uchar buff,char offsetx,char offsety)
{
change1((((*(moxing+((buff&0xf0)|((buff&0x0f)<<2))))&0xf0)>>4)+offsetx,((*((moxing+((buff&0xf0)|((buff&0x0f)<<2)))))&0x0f)+offsety);
change1((((*((moxing+((buff&0xf0)|((buff&0x0f)<<2))+1)))&0xf0)>>4)+offsetx,((*(((moxing+((buff&0xf0)|((buff&0x0f)<<2))))+1))&0x0f)+offsety);
change1((((*(((moxing+((buff&0xf0)|((buff&0x0f)<<2))))+2))&0xf0)>>4)+offsetx,((*((moxing+((buff&0xf0)|((buff&0x0f)<<2)))+2))&0x0f)+offsety);
change1((((*(((moxing+((buff&0xf0)|((buff&0x0f)<<2))))+3))&0xf0)>>4)+offsetx,((*((moxing+((buff&0xf0)|((buff&0x0f)<<2)))+3))&0x0f)+offsety);
}

看看change1();这个函数是什么意思。然后把参数带入看看怎样实现撒。追问

change1()是将4*4个点合成一个,我主要是不明白他为什么要这样做,大神,能解释下吗?

追答

合成一个方块难道是为了组成不同形状中的正方形那个图形吗?

追问

不是,就是俄罗斯方块的方块,我就想知道change1里面的那一串运算的作用?怎么实现的?

温馨提示:答案为网友推荐,仅供参考