回答編集履歴

2

訂正

2015/06/02 11:01

投稿

haru666
haru666

スコア1591

test CHANGED
@@ -20,9 +20,7 @@
20
20
 
21
21
  Point p_0 = kame[0].points.get(size);
22
22
 
23
- // current_xとcurrent_yはe.getXとe.getYの間違いかな…?
24
-
25
- if(e.getX() >= p_0.x && e.getX() <= p_0.x+68 && e.getY() >= p_0.y && e.getY() <= p_0.y + 48){
23
+ if(current_x >= p_0.x && current_x <= p_0.x+68 && current_y >= p_0.y && current_y <= p_0.y + 48){
26
24
 
27
25
  current_x = e.getX();
28
26
 

1

追記

2015/06/02 11:01

投稿

haru666
haru666

スコア1591

test CHANGED
@@ -1,3 +1,97 @@
1
+ 変更点は2つです。
2
+
3
+ 描画と亀の動きを弄るところを分けました。
4
+
5
+
6
+
7
+ mouseDraggedで亀を移動させる時、他の亀の移動も処理しています。
8
+
9
+ paintメソッドでは描画のみを実行しています。
10
+
11
+
12
+
13
+ ```lang-java
14
+
15
+ public class Rabbit extends Applet implements MouseListener, MouseMotionListener{
16
+
17
+ public void mouseDragged(MouseEvent e){
18
+
19
+ int size = kame[0].points.size() - 1;
20
+
21
+ Point p_0 = kame[0].points.get(size);
22
+
23
+ // current_xとcurrent_yはe.getXとe.getYの間違いかな…?
24
+
25
+ if(e.getX() >= p_0.x && e.getX() <= p_0.x+68 && e.getY() >= p_0.y && e.getY() <= p_0.y + 48){
26
+
27
+ current_x = e.getX();
28
+
29
+ current_y = e.getY();
30
+
31
+
32
+
33
+ kame[0].points.add(new Point(current_x, current_y));
34
+
35
+ // 他の亀はドラッグにあわせて動くので、ここで座標も弄りましょう
36
+
37
+ Point p_cur = kame[0].points.get(kame[0].points.size() - 1);
38
+
39
+ Point p_prev = kame[0].points.get(kame[0].points.size() - 2);
40
+
41
+ double dx = p_cur.x - p_prev.x;
42
+
43
+ double dy = p_cur.y - p_prev.y;
44
+
45
+ Usagi.move(dx, dy); // 他の亀の移動
46
+
47
+
48
+
49
+ repaint();
50
+
51
+ }
52
+
53
+ }
54
+
55
+
56
+
57
+ public void paint(Graphics g){
58
+
59
+ // 描画に関することだけやります
60
+
61
+ for(int i = 0; i < 4; i++){
62
+
63
+ int size = kame[i].points.size() - 1;
64
+
65
+ g.drawImage(imgs, kame[i].points.get(size).x, kame[i].points.get(size).y,this);
66
+
67
+ }
68
+
69
+ g.setColor(Color.black);
70
+
71
+ Usagi.paint(g);
72
+
73
+ }
74
+
75
+ }
76
+
77
+ ```
78
+
79
+
80
+
81
+ 先ほど見せていただいた修正後のコードを見たのですが、どこで実行時エラーがでているかまではちょっとわかりませんでした。
82
+
83
+ 動きも予想で書いているのでチグハグなところがあるかもしれません。
84
+
85
+
86
+
87
+
88
+
89
+ ---
90
+
91
+ 旧回答
92
+
93
+
94
+
1
95
  これは…まとめて質問に答えるのはたぶん難しいので気づいたところだけ。
2
96
 
3
97