GameDesign 板


LINE

我归纳成三点旋转法 三点旋转就是 画成九宫格 旋转後中心点不动, 四格就只要转三格, 方向性是一样的 我用 console 写2char当一格, 参考看看吧 直条不适用 wiki 有写到好几种方式 和踢墙 後期任天堂有改 看看 wiki应该就会转了 void SquareRotation( Sqr *pSqr ) { ClearThisSquare( pSqr ) ; switch( pSqr->sqrtype ) { //正方形不旋转 case Type1Square: return; //作三点旋转 case Type2Seven: case Type3InvSeven: case Type4N: case Type5InvN: case Type6Hill: PointRotation( pSqr, &pSqr->pt11, &pSqr->pt12, &pSqr->pt11.loc ) ; PointRotation( pSqr, &pSqr->pt21, &pSqr->pt22, &pSqr->pt21.loc ) ; PointRotation( pSqr, &pSqr->pt41, &pSqr->pt42, &pSqr->pt41.loc ) ; break; //直条就用暴力法写一写 case Type7Line: switch( pSqr->rot ){ case R1://横的转直的 pSqr->pt11.x = pSqr->pt31.x ; pSqr->pt12.x = pSqr->pt32.x ; pSqr->pt21.x = pSqr->pt31.x ; pSqr->pt22.x = pSqr->pt32.x ; pSqr->pt41.x = pSqr->pt31.x ; pSqr->pt42.x = pSqr->pt32.x ; pSqr->pt11.y = pSqr->pt31.y-2 ; pSqr->pt12.y = pSqr->pt32.y-2 ; pSqr->pt21.y = pSqr->pt31.y-1 ; pSqr->pt22.y = pSqr->pt32.y-1 ; pSqr->pt41.y = pSqr->pt31.y+1 ; pSqr->pt42.y = pSqr->pt32.y+1 ; pSqr->rot = R2 ; break; case R2://直的转横的 pSqr->pt11.x = pSqr->pt31.x-4 ; pSqr->pt12.x = pSqr->pt32.x-4 ; pSqr->pt21.x = pSqr->pt31.x-2 ; pSqr->pt22.x = pSqr->pt32.x-2 ; pSqr->pt41.x = pSqr->pt31.x+2 ; pSqr->pt42.x = pSqr->pt32.x+2 ; pSqr->pt11.y = pSqr->pt31.y ; pSqr->pt12.y = pSqr->pt32.y ; pSqr->pt21.y = pSqr->pt31.y ; pSqr->pt22.y = pSqr->pt32.y ; pSqr->pt41.y = pSqr->pt31.y ; pSqr->pt42.y = pSqr->pt32.y ; pSqr->rot = R1 ; break; } break; default: QuitGame(255); break; } } ※ 引述《cooper6334 (小恐龙)》之铭言: : 来分享一下我的做法好了 : 我用win32api来贴图 : 基本架构就是一个12x23的阵列(10*20+左右墙+底+生成方块的位置) : 阵列内容有 状态 -1墙 0空 1正在操作 2定住的方快 : 颜色 根据方块种类而定 : 然後就是当状态!=0的时候就依颜色印出来 : 第0,1列是不印的,我拿来放刚生成的方块 : 每隔一小段时间就把状态是1的往下移, : 直到下面一格不是空的,就把方块固定住并在最上面产生新的方块 : 移动也是把状态是1的往左或右移一格,除非要移的地方已经被占走了 : 删除的部份就设一个参数d=0,从底下往上搜, : 假如碰到一整列满的就d++,其他的列就往下移d列 : ▓▓▓▓▓▓▓▓▓ d=2,往下搬2列 : ▓▓▓▓▓▓▓▓▓▓▓ d=2 : ▓▓▓▓▓▓▓▓ ▓▓ d=1,往下搬1列 => ▓▓▓▓▓▓▓▓▓ : ▓▓▓▓▓▓▓▓▓▓▓ d=1 ▓▓▓▓▓▓▓▓ ▓▓ : ▓▓▓▓▓▓▓▓▓ ▓ d=0 ▓▓▓▓▓▓▓▓▓ ▓ : 最麻烦的是旋转的部份,我的做法就是一格一格转 : 就看这方块转过去会占到那几格就一一转过去, : 假如会碰到墙壁还要分成不同的状况来写 : 其实我主要是想看看大家旋转的部份怎麽处理 : 因为我觉得我这部份写得很囧,一开始没写好转一转还会飞天 : 我的写法有什麽问题都请多指教 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.161.59.189
1F:→ Splash5:其实大家可以多去玩ds的tetris 或是tetris:the grand mast 12/15 22:18
2F:→ Splash5:master 可以参考这些游戏的旋转模式 12/15 22:18
3F:推 chchwy:wiki有这种东西阿XDDD 请问是哪个条目? 12/15 23:31
4F:→ clanguage:我记得wikipedia是有, 可能被修改了 12/16 00:35
5F:→ clanguage:看这个吧 http://tetris.wikia.com/wiki/SRS 12/16 00:35
6F:→ clanguage:有很多旋转系统 这是有发展历史的 12/16 00:36







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP