保定网站建设设计,自考软件开发工具,做app模板网站,双鸭山网站建设公司发表于 2012-12-05 06:36:24 by 月小升最近在阅读俄罗斯方块的A1 A2 A3 A4B1 B2 B3 B4C1 C2 C3 C4D1 D2 D3 D4旋转以B2 B3 C2 C3 中间的点为旋转轴。旋转以后矩阵变为D1?C1?B1?A1D2?C2?B2?A2?D3?C3?B3?A3D4?C4?B4 A41#xff0c;1数据变成了 1,4问题#xff1a;旋…发表于 2012-12-05 06:36:24 by 月小升最近在阅读俄罗斯方块的A1 A2 A3 A4B1 B2 B3 B4C1 C2 C3 C4D1 D2 D3 D4旋转以B2 B3 C2 C3 中间的点为旋转轴。旋转以后矩阵变为D1?C1?B1?A1D2?C2?B2?A2?D3?C3?B3?A3D4?C4?B4 A411数据变成了 1,4问题旋转以后方块的位置发生重大移动。原因。这个方块的重心其实是B2.那么一根长条的重心在哪里A1 A2 A3 A4B1 B2 B3 B4C1 C2 C3 C4D1 D2 D3 D4以矩阵为重心顺时针旋转的话长条会直接跑到右侧了。长条我们希望旋转以后变成A1 A2 A3 A4B1 B2 B3 B4C1C2 C3 C4D1 D2 D3 D4可以得出长条的重心也在B2.这是一次旋转如果再次顺时针旋转。以B2为重心就会发生问题。没有位置存放D2.A1?A2?A3 A4B1 B2 ?B3 B4C1 C2 C3 C4D1 D2 D3 D4A1 A2 A3 A4B1 B2 B3 B4C1 C2 C3 C4D1 D2 D3 D4结论一个节省时间提高程序效率的而且比较简单的办法就是把所有希望变化以后的矩阵都写在一个数组里。即总体数据为三维数据。每一个矩阵的形态也存在其中。而非人为旋转。俄罗斯方块的旋转特性尽量不要用算法控制因为经过几次旋转就会发生位置偏移。如果每次记录偏移量也是可以的。直接代码太过复杂而且容易出错。所以建议写死在数组里。然后旋转就是更换数组的一个维度(旋转维度)This entry was posted in JAVA, 日常随笔 and tagged 游戏编程, 算法. Bookmark the permalink.月小升QQ 2651044202, 技术交流QQ群 178491360首发地址月小升博客 – https://java-er.com/blog/eluosi-xuanzhuan/无特殊说明文章均为月小升原创欢迎转载转载请注明本文地址谢谢