Re: [問題] mouseDragged取得的座標會跳動
※ 引述《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
10/30 12:37, 2F
感謝 我會去找書的^^
(現在正邊寫邊查google中,有時寫到後面才發現雖然寫出的功能一樣
但方法錯誤,於是添加新的功能時就得大改。真的是得好好累積經驗呢!)
※ 編輯: kenotic 來自: 1.171.254.230 (10/30 16:46)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
java 近期熱門文章
PTT數位生活區 即時熱門文章