Re: [問題] 如何用 D3D 做出一個魔術方塊

看板C_and_CPP作者 (哈哈哈哈哈哈哈哈哈哈哈)時間14年前 (2009/09/12 18:11), 編輯推噓4(4036)
留言40則, 7人參與, 最新討論串2/2 (看更多)
我稍微看了 D3DXIntersect 後, 還有一個地方不知道該如何解決, 所以再次來請教大家 D3DXIntersect 可以幫助讓我知道滑鼠點下去時, 是點到哪一個面 (三角形), 但是我要如何知道有哪些面 (三角形)是要一起轉的 ?? 因為魔術方塊轉一次, 面的相鄰關係都換了, 我沒有修過圖學的課, 如果我問題的點是在圖學的話, 那我應該去看哪一個部份呢 ?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.167.201.152

09/12 23:33, , 1F
請問我是不是有什麼地方說明得不夠清楚 ??
09/12 23:33, 1F

09/12 23:34, , 2F
感覺大家對這個問題興趣缺缺阿 T_T
09/12 23:34, 2F

09/12 23:38, , 3F
一時實在想不到什麼好方法, 幫你推一下衝人氣好了XD
09/12 23:38, 3F

09/12 23:38, , 4F
是我的話, 我會想辦法自己keep住3x3x3共27個小方塊自己
09/12 23:38, 4F

09/12 23:39, , 5F
的位置關係, 然後每次draw完整的小方塊; 這樣在某種限制
09/12 23:39, 5F

09/12 23:40, , 6F
下可以自己在被後把27個小方塊與哪些三角形畫在哪都
09/12 23:40, 6F

09/12 23:41, , 7F
handle好, 這樣用Windows event收到滑鼠座標就夠了; 不
09/12 23:41, 7F

09/12 23:41, , 8F
過畫面自由度比較高就很難處理, 另外小弟也跟D3D那個選
09/12 23:41, 8F

09/12 23:41, , 9F
三角形的API不太熟....Orz
09/12 23:41, 9F

09/12 23:57, , 10F
你所有的三角形必然有一個固定的組成模式吧
09/12 23:57, 10F

09/12 23:58, , 11F
一般都是取得目標三角形之後便可以知道你的邏輯物件
09/12 23:58, 11F

09/12 23:58, , 12F
旋轉等的問題是由邏輯物件處理, 也就是會將相關的三角形
09/12 23:58, 12F

09/12 23:59, , 13F
一起旋轉
09/12 23:59, 13F

09/13 00:43, , 14F
謝謝V大與E大的回覆, 不知道我對邏輯物件的想法是否正
09/13 00:43, 14F

09/13 00:44, , 15F
確, 每個小方塊都可以對應到兩種旋轉模式, 所以每個小
09/13 00:44, 15F

09/13 00:45, , 16F
方塊都對應到兩個邏輯物件, 每個邏輯物件包含九個方塊
09/13 00:45, 16F

09/13 00:46, , 17F
不過每當我旋轉一次, 所對應到的九個方塊也跟著變動
09/13 00:46, 17F

09/13 00:49, , 18F
所以每當我旋轉一次都要重新建立出邏輯物件
09/13 00:49, 18F

09/13 01:14, , 19F
用opengl是有跟你這功能一樣的select buffer
09/13 01:14, 19F

09/13 01:14, , 20F
感覺你必須先建立一個graph 存下相鄰關係
09/13 01:14, 20F

09/13 01:15, , 21F
滑鼠點擊只是幫助你知道你hit到哪一個 "name"的方塊
09/13 01:15, 21F

09/13 01:16, , 22F
graph應該是用每個三角形的name去做trace 再改變相鄰關係
09/13 01:16, 22F

09/13 01:18, , 23F
如果你要做旋轉 是要做到動畫嘛??
09/13 01:18, 23F

09/13 01:18, , 24F
不然根本不用這麼複雜吧 改變滑鼠移動後 三角形face的顏色
09/13 01:18, 24F

09/13 01:19, , 25F
在render上去 就好了??
09/13 01:19, 25F

09/13 01:35, , 26F
滑鼠點擊只是個操作方式...D3D是畫面呈現方式
09/13 01:35, 26F

09/13 01:35, , 27F
至於要旋轉 因為每一個frame都要重畫整個物體
09/13 01:35, 27F

09/13 01:36, , 28F
魔術方塊的旋轉是遊戲的邏輯部分..3者是可以切開的
09/13 01:36, 28F

09/13 01:37, , 29F
反正他不是對X軸轉就是對Z軸轉90度 你就先轉好這整個3*3面
09/13 01:37, 29F

09/13 01:39, , 30F
再回到上一個frame魔術方塊的轉向 (如果你整個物體會轉的話)
09/13 01:39, 30F

09/13 23:36, , 31F
3*3*3-1個box mesh,每個都去問一次,比較要注意的是計算射線
09/13 23:36, 31F

09/14 23:08, , 32F
Q大的方法我不知道有沒有誤解, 聽起來像是 "找出每次
09/14 23:08, 32F

09/14 23:09, , 33F
旋轉時, 顏色變換的規則, 然後每次旋轉就直接把顏色換
09/14 23:09, 33F

09/14 23:12, , 34F
過去, 動畫部分就有點像是個特效, 顏色變化的規則才是
09/14 23:12, 34F

09/14 23:12, , 35F
這個小遊戲的核心部份
09/14 23:12, 35F

09/14 23:14, , 36F
y大, 我沒聽懂 "每個都去問一次" 是什麼意思
09/14 23:14, 36F

09/14 23:16, , 37F
如果可以的話, 可以麻煩你再稍微說明一下嗎, 謝謝
09/14 23:16, 37F

09/14 23:18, , 38F
j大我有懂你的意思, 謝謝, 也再次謝謝V大跟E大
09/14 23:18, 38F

09/14 23:21, , 39F
因為我初學DX, 所以想說會不會有一套比較正規的解法
09/14 23:21, 39F

09/16 00:05, , 40F
G = {V,E} XDDD 抱歉 我自嗨一下
09/16 00:05, 40F
文章代碼(AID): #1AgtFYop (C_and_CPP)
文章代碼(AID): #1AgtFYop (C_and_CPP)