Re: [問題] mouseDragged取得的座標會跳動

看板java作者 (弱智)時間11年前 (2013/10/29 23:28), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《sbrhsieh (十年一夢)》之銘言: : 不清楚 up_left_x, up_left_y 的意義,所以較難去探究你的演算法的錯誤點。 抱歉沒解釋清楚 up_left_x 是指label的座標 (圖片左上角的位置) : lable 本身的位置是相對它所在的 container,而 mouseDragged event 所帶的 : mouse 位置是相對於發出 event 的 component(假如 CDrawPicB instance 是 : 註冊在 label 身上,那麼就是相對於 label)。 : 正確的作法是將滑鼠的位移量(drag_x - press_x, drag_y - press_y) 與 label : 當下的位置去計算出 label 的下一個位置並移動之。 : 需要程式碼參考的話,可參考這一篇: : http://www.javaworld.com.tw/jute/post/view?bid=5&id=142635&sty=3 多虧您附的這個範例 我看到了 removeMouseListener這個方法 於是想著 為何我沒有寫這行? 於是run了一下程式 發現我先前註冊在labelA身上的mouselistener沒有取下 導致我將新的labelB拖曳覆蓋在舊的labelA上後, 再次點選labelB企圖拖曳它時,變成一次觸發了labelA與labelB的listener 我重改了一下程式,將"不該擁有mouselistener的label remove後 註冊在label上的圖片會劇烈晃動的現象隨即消失 ===以下是小小的心得 實在是太感謝您了,看來程式真的要多看才行 看的程式不夠多,知識不夠多真的是很難寫出自己要的程式 (我是想寫出像棋盤式戰鬥rpg的遊戲程式 ) 話說回來,光這一個小bug就讓我找了6、7個小時 看java範例看了3個禮拜 要一步登天開始寫遊戲實在是相當有困難 我的想法是: 倘若我是按部就班慢慢學 (例如說去補習班或是做許多練習題 想必這次的bug應該可以很快抓出來,甚至是避免掉 但這樣要花去許多的時間做事前練習 而立即動手寫遊戲,想學的部分就看範例去改 (例如說用滑鼠拖曳圖片 這樣雖然速度快,但會導致在很基本的地方犯錯 (例如說"=" 和 "=="的差別 這時就得靠google 然而有時google上不會剛好有你遇到的問題或是解法 雖然學程式就跟唸書一樣沒有捷徑 但還是想請教個意見,有寫過遊戲的大大們 都是如何起手的呢? 1. 上補習班 2. 買書 3. 上網找範例,或是直接看別人寫的程式碼學習 感謝 by猶豫該先停下多看 還是該繼續寫下去的不自量力新手 <( ̄▽ ̄|||)a -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.224.228.27 ※ 編輯: kenotic 來自: 36.224.199.105 (10/30 06:13)

10/30 12:35, , 1F
說真的 邊學邊看是最快的 多犯錯自然就知道哪些該避開了
10/30 12:35, 1F

10/30 12:37, , 2F
不過建議可以買本書來看OWO
10/30 12:37, 2F
感謝 我會去找書的^^ (現在正邊寫邊查google中,有時寫到後面才發現雖然寫出的功能一樣 但方法錯誤,於是添加新的功能時就得大改。真的是得好好累積經驗呢!) ※ 編輯: kenotic 來自: 1.171.254.230 (10/30 16:46)
文章代碼(AID): #1IRzGOXz (java)
文章代碼(AID): #1IRzGOXz (java)