作者kenotic (弱智)
看板java
标题Re: [问题] mouseDragged取得的座标会跳动
时间Tue Oct 29 23:28:21 2013
※ 引述《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)
1F:→ danny8376:说真的 边学边看是最快的 多犯错自然就知道哪些该避开了 10/30 12:35
2F:→ danny8376:不过建议可以买本书来看OWO 10/30 12:37
感谢 我会去找书的^^
(现在正边写边查google中,有时写到後面才发现虽然写出的功能一样
但方法错误,於是添加新的功能时就得大改。真的是得好好累积经验呢!)
※ 编辑: kenotic 来自: 1.171.254.230 (10/30 16:46)