teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

5

2020/11/11 10:26

投稿

reee__hpp
reee__hpp

スコア0

title CHANGED
File without changes
body CHANGED
@@ -113,8 +113,10 @@
113
113
  image(img[array[4][3]], width/2-4,height/2+300,100,100);
114
114
  image(img[array[4][4]], width/2+96,height/2+300,100,100);
115
115
  image(img[array[4][5]], width/2+196,height/2+300,100,100);
116
- ```}
116
+ }
117
117
 
118
+ ```
119
+
118
120
  ### エラー
119
121
  対応してない部分が多いのでエラーが多発しております。
120
122
  (サイズの差、座標位置etc)
@@ -173,7 +175,9 @@
173
175
  picIdx[y][x]=stick;
174
176
  stick=0;
175
177
  }
176
- ```}
178
+ }
177
179
 
180
+ ```
181
+
178
182
  ### 補足
179
183
  エラーが沢山出ているのは対応してない部分が多いので当たり前だろ!と思うかもしれませんが、進まないまま日にちばかり経ってしまったので、手助けをよろしくお願いいたします。

4

2020/11/11 10:26

投稿

reee__hpp
reee__hpp

スコア0

title CHANGED
File without changes
body CHANGED
@@ -11,8 +11,8 @@
11
11
  参考になるコートがあったので、自分のものに当てはめてみようとしたのですが、エラーが沢山出て(対応してない部分が多いので当たり前かもしれない)、進め方がわからなくなりました。
12
12
 
13
13
  ```Processing
14
- コード
14
+
15
- ```PImage[] img=new PImage[6];
15
+ PImage[] img=new PImage[6];
16
16
  boolean f;
17
17
  int[][] picIdx;
18
18
  PImage[] pic;
@@ -113,7 +113,7 @@
113
113
  image(img[array[4][3]], width/2-4,height/2+300,100,100);
114
114
  image(img[array[4][4]], width/2+96,height/2+300,100,100);
115
115
  image(img[array[4][5]], width/2+196,height/2+300,100,100);
116
- }
116
+ ```}
117
117
 
118
118
  ### エラー
119
119
  対応してない部分が多いのでエラーが多発しております。
@@ -121,6 +121,7 @@
121
121
 
122
122
  ### 参考にしたコード
123
123
 
124
+ ```
124
125
  int[][] picIdx;
125
126
  PImage[] pic;
126
127
  int stick;
@@ -172,7 +173,7 @@
172
173
  picIdx[y][x]=stick;
173
174
  stick=0;
174
175
  }
175
- }
176
+ ```}
176
177
 
177
178
  ### 補足
178
179
  エラーが沢山出ているのは対応してない部分が多いので当たり前だろ!と思うかもしれませんが、進まないまま日にちばかり経ってしまったので、手助けをよろしくお願いいたします。

3

2020/11/11 10:25

投稿

reee__hpp
reee__hpp

スコア0

title CHANGED
File without changes
body CHANGED
@@ -10,7 +10,9 @@
10
10
 
11
11
  参考になるコートがあったので、自分のものに当てはめてみようとしたのですが、エラーが沢山出て(対応してない部分が多いので当たり前かもしれない)、進め方がわからなくなりました。
12
12
 
13
+ ```Processing
14
+ コード
13
- PImage[] img=new PImage[6];
15
+ ```PImage[] img=new PImage[6];
14
16
  boolean f;
15
17
  int[][] picIdx;
16
18
  PImage[] pic;

2

2020/11/11 10:24

投稿

reee__hpp
reee__hpp

スコア0

title CHANGED
File without changes
body CHANGED
@@ -15,8 +15,6 @@
15
15
  int[][] picIdx;
16
16
  PImage[] pic;
17
17
  int stick;
18
- final int W=64;
19
- final int H=64;
20
18
  int xx, yy;
21
19
  int dx;
22
20
  int dy;
@@ -25,14 +23,7 @@
25
23
 
26
24
  size(800,1000);
27
25
 
28
- int k;
29
-
30
- for(k=0; k < height; k++){
31
- stroke(k,160,180);
32
- line(0, k, width,k);
33
- }
34
26
 
35
-
36
27
  img[0]=loadImage("heart.jpg");
37
28
  img[1]=loadImage("triangle.jpg");
38
29
  img[2]=loadImage("clober.jpg");
@@ -59,12 +50,7 @@
59
50
  }
60
51
  f = ( frameCount >= 1 );
61
52
  }
62
-
63
- for (int i=0; i<5; i++) {
53
+
64
- for (int j=0; j<6; j++) {
65
- image(pic[picIdx[i][j]], j*64, i*64);
66
- }
67
- }
68
54
  if (stick!=0) {
69
55
  image(pic[stick], mouseX-dx, mouseY-dy);
70
56
  }
@@ -127,6 +113,10 @@
127
113
  image(img[array[4][5]], width/2+196,height/2+300,100,100);
128
114
  }
129
115
 
116
+ ### エラー
117
+ 対応してない部分が多いのでエラーが多発しております。
118
+ (サイズの差、座標位置etc)
119
+
130
120
  ### 参考にしたコード
131
121
 
132
122
  int[][] picIdx;
@@ -180,4 +170,7 @@
180
170
  picIdx[y][x]=stick;
181
171
  stick=0;
182
172
  }
183
- }
173
+ }
174
+
175
+ ### 補足
176
+ エラーが沢山出ているのは対応してない部分が多いので当たり前だろ!と思うかもしれませんが、進まないまま日にちばかり経ってしまったので、手助けをよろしくお願いいたします。

1

2020/11/11 10:23

投稿

reee__hpp
reee__hpp

スコア0

title CHANGED
File without changes
body CHANGED
@@ -8,19 +8,31 @@
8
8
  2次元配列に画像を格納してランダム配置まではできたのですが、マウス操作のところでどうしたら良いか分からなくなりました。
9
9
  ただ図形を移動するだけとかなら出来るのですが、配列に入れたものを隣の配列と交換となるとよく分かりません。
10
10
 
11
- 先生聞いたところ、「Classをつくて、Listで、画像を入れ配列を作り、dist関数で、距離が近い座標画像と入れ替えられるようしたいいよ」と言われました。
11
+ 参考なるコートがあったで、自分ものに当てはめてみようしたのですが、エラーが沢山出て(対応してな部分が多ので当たり前かもしない)、進め方がわからなくなりました。
12
12
 
13
- しかし2次元配列をどうListに入れれば良いかも、その先のことも調べてもなかなか上手く行きません。
14
-
15
13
  PImage[] img=new PImage[6];
16
14
  boolean f;
17
-
15
+ int[][] picIdx;
16
+ PImage[] pic;
17
+ int stick;
18
+ final int W=64;
19
+ final int H=64;
20
+ int xx, yy;
21
+ int dx;
22
+ int dy;
18
23
  int [][] array;
19
24
  void setup(){
20
25
 
21
26
  size(800,1000);
22
27
 
28
+ int k;
29
+
30
+ for(k=0; k < height; k++){
31
+ stroke(k,160,180);
32
+ line(0, k, width,k);
33
+ }
23
34
 
35
+
24
36
  img[0]=loadImage("heart.jpg");
25
37
  img[1]=loadImage("triangle.jpg");
26
38
  img[2]=loadImage("clober.jpg");
@@ -43,11 +55,38 @@
43
55
  while( i > 0 && array[ i ][ j ] == array[ i - 1 ][ j ] )
44
56
  array[i][j] = (int)random(0,5);
45
57
  }
58
+
46
59
  }
47
60
  f = ( frameCount >= 1 );
48
61
  }
62
+
49
-
63
+ for (int i=0; i<5; i++) {
50
-
64
+ for (int j=0; j<6; j++) {
65
+ image(pic[picIdx[i][j]], j*64, i*64);
66
+ }
67
+ }
68
+ if (stick!=0) {
69
+ image(pic[stick], mouseX-dx, mouseY-dy);
70
+ }
71
+ }
72
+
73
+ void mousePressed() {
74
+ int x=mouseX/W;
75
+ int y=mouseY/H;
76
+ dx=mouseX%W;
77
+ dy=mouseY%H;
78
+ if (stick==0) {
79
+ xx=x;
80
+ yy=y;
81
+ stick=picIdx[y][x];
82
+ picIdx[y][x]=0;
83
+ } else {
84
+ picIdx[yy][xx]=picIdx[y][x];
85
+ picIdx[y][x]=stick;
86
+ stick=0;
87
+ }
88
+ }
89
+
51
90
  image(img[array[0][0]], width/2-304,height/2-100,100,100);
52
91
  image(img[array[0][1]], width/2-204,height/2-100,100,100);
53
92
  image(img[array[0][2]], width/2-104,height/2-100,100,100);
@@ -86,27 +125,59 @@
86
125
  image(img[array[4][3]], width/2-4,height/2+300,100,100);
87
126
  image(img[array[4][4]], width/2+96,height/2+300,100,100);
88
127
  image(img[array[4][5]], width/2+196,height/2+300,100,100);
89
-
90
128
  }
91
129
 
92
- ### したこと
130
+ ### 参考にしたコード
93
131
 
132
+ int[][] picIdx;
133
+ PImage[] pic;
134
+ int stick;
94
- 2次元配列のList化について
135
+ final int W=64;
136
+ final int H=64;
137
+ int xx, yy;
138
+ int dx;
139
+ int dy;
95
140
 
141
+ void setup() {
142
+ size(384, 320);
143
+ pic=new PImage[5];
144
+ pic[0]=get(0, 0, 64, 64);
145
+ PImage img=loadImage("https://photoshopvip.net/wp-content/uploads/2014/06/BALLICONS.jpg");
146
+ for (int i=1; i<5; i++) {
96
- ArrayList<Integer> a = new ArrayList<Integer>();
147
+ pic[i]=img.get(12+77*1, 15+77*i, 64, 64);
148
+ }
149
+ picIdx=new int[5][6];
150
+ for (int i=0; i<5; i++) {
151
+ for (int j=0; j<6; j++) {
152
+ picIdx[i][j]=int(random(4)+1);
153
+ }
154
+ }
155
+ }
97
156
 
157
+ void draw() {
158
+ for (int i=0; i<5; i++) {
159
+ for (int j=0; j<6; j++) {
160
+ image(pic[picIdx[i][j]], j*64, i*64);
161
+ }
162
+ }
98
- を利用して、addで画像を追加?
163
+ if (stick!=0) {
164
+ image(pic[stick], mouseX-dx, mouseY-dy);
165
+ }
166
+ }
99
167
 
100
- distに関して
101
-
102
- rect( x, y, 50, 50 );
168
+ void mousePressed() {
103
- if( mousePressed && dist( x, y, mouseX, mouseY ) < 50 ) {
104
- x = mouseX; y = mouseY;
169
+ int x=mouseX/W;
170
+ int y=mouseY/H;
171
+ dx=mouseX%W;
172
+ dy=mouseY%H;
173
+ if (stick==0) {
174
+ xx=x;
175
+ yy=y;
176
+ stick=picIdx[y][x];
177
+ picIdx[y][x]=0;
178
+ } else {
179
+ picIdx[yy][xx]=picIdx[y][x];
180
+ picIdx[y][x]=stick;
181
+ stick=0;
105
- }
182
+ }
106
-
107
- の応用??
183
+ }
108
- (昔課題の例題にあった四角形を移動させる先生のサンプルコードです。)
109
-
110
- どういう処理をするかは何となく理解しているのですが、調べても配列の中身をマウスで動かすというのが見当たらずどう書いていいか(書き出しも)分からなくなってしまい進まないまま日にちばかり経ってしまったので質問させて頂きました。
111
-
112
- よろしくお願いいたします。