拖曳的問題 |
尚未結案
|
dachura
一般會員 發表:2 回覆:3 積分:1 註冊:2004-03-29 發送簡訊給我 |
各位先進好 我在寫一個孔明棋遊戲
並練習用drag來實現下棋的動作
棋子是用image陣列動態產生的
本來我是在dragdrop事件裡
去看Source(我移的棋子)和Sender(我要移到的位置)
來決定這一歩動作是否合法
寫出來是正常能run 可是我想要在拿棋子的時候,真的看的出來有在拖的感覺
而不是只有dragCursor在動而已
所以我就在DragOver的事件裡去抓游標的位置讓棋子跟它動
到這邊也沒問題 可是這樣當我DragDrop的時候,sender和source卻變成了同一個
我猜是因為source一直擋在cursor的下面所以游標就把它當成sender了
總之這樣就不能依據sender去判斷現在拖到哪個位置
所以想請問大家有沒有辦法解決
讓我的source跟游標一起動,也可以知道移動到哪個棋格上面 我有想過再加一個OnMouseMove之類的事件去測滑鼠的位置
然後再換算出他停在哪個image(棋子或棋格)上
可是覺得這樣有點怪
所以先上來請教各位是不是有更好的方法 不好意思寫的有點囉唆
因為是新手怕有什麼地方遺漏了 謝謝耐心看完文章的人^^ 發表人 - taishyang 於 2004/05/04 00:20:53
|
anpino
版主 發表:31 回覆:477 積分:231 註冊:2003-01-02 發送簡訊給我 |
棋子的DragMode設為dmAutomatic,OnDragOver事件加入Accept = true;
棋盤也一樣,並利用棋盤的OnDragDrop事件傳進的int X, int Y取得棋子的位址. -------------------------------
數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D
------------------------------- 發表人 - anpino 於 2004/05/04 16:39:19
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
引言: 各位先進好 可是這樣當我DragDrop的時候,sender和source卻變成了同一個 我猜是因為source一直擋在cursor的下面所以游標就把它當成sender了 總之這樣就不能依據sender去判斷現在拖到哪個位置 所以想請問大家有沒有辦法解決 讓我的source跟游標一起動,也可以知道移動到哪個棋格上面 謝謝耐心看完文章的人^^ 發表人 - taishyang 於 2004/05/04 00:20:53taishyang你好: 要不要試著用DragOver的事件中的X和Y來換算棋格的位置? 看看可不可行… |
dachura
一般會員 發表:2 回覆:3 積分:1 註冊:2004-03-29 發送簡訊給我 |
|
anpino
版主 發表:31 回覆:477 積分:231 註冊:2003-01-02 發送簡訊給我 |
建議你用TImage* [7][7]陣列紀錄棋盤上7*7個TImage物件,
並將這7*7個TImage物件的OnDragDrop設成同一個,
在OnDragDrop中用loop去找Sender是TImage* [7][7]中的哪一個,
找到後判斷上面有沒有棋子,
沒有的話,就將棋子放上去。 看你的描述, 你的程式不需要知道拖曳時棋子在整個7*7棋盤裡的座標是什麼,
而是哪個棋格(就是TImage* [7][7]中的哪一個)收到OnDragDrop (表示棋子在該棋格上)。 -------------------------------
數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D
-------------------------------
|
dachura
一般會員 發表:2 回覆:3 積分:1 註冊:2004-03-29 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |