質問編集履歴

5

試したことを追記

2018/10/20 08:02

投稿

Alpa
Alpa

スコア80

test CHANGED
File without changes
test CHANGED
@@ -30,6 +30,18 @@
30
30
 
31
31
  ・インポートをした
32
32
 
33
+ ・コンパイル時にjavac *.javaでコンパイルした
34
+
35
+
36
+
37
+ javac *.javaでコンパイルすると
38
+
39
+ コンパイルはできたのですが
40
+
41
+ クラスがないといわれて
42
+
43
+ 実行ができませんでした
44
+
33
45
 
34
46
 
35
47
  下のコードは実際に書いたコードです

4

追記

2018/10/20 08:02

投稿

Alpa
Alpa

スコア80

test CHANGED
File without changes
test CHANGED
@@ -14,6 +14,8 @@
14
14
 
15
15
  同じパッケージ内のクラスがインスタンス化できない
16
16
 
17
+ パッケージをつける前はコンパイルも通り実行できました
18
+
17
19
 
18
20
 
19
21
  ### 試したこと

3

タイトルの変更等の追記

2018/10/20 07:54

投稿

Alpa
Alpa

スコア80

test CHANGED
@@ -1 +1 @@
1
- 同じパッケジ内のクラスが使えな
1
+ たくさんあるエラを解決した
test CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
 
4
4
 
5
- 同じパッケージ内のクラスを使いたい
5
+ 同じパッケージ内のクラスを使いたい
6
+
7
+ 19個エラーが出てしまっているのでどうにかしたい
6
8
 
7
9
 
8
10
 

2

エラー内容を追記

2018/10/20 07:51

投稿

Alpa
Alpa

スコア80

test CHANGED
File without changes
test CHANGED
@@ -672,6 +672,48 @@
672
672
 
673
673
 
674
674
 
675
+ ### エラー
676
+
677
+
678
+
679
+ ```
680
+
681
+ Terraria.java:32: エラー: シンボルを見つけられません
682
+
683
+ FileOperation file = new FileOperation();
684
+
685
+ シンボル: クラス FileOperation
686
+
687
+ 場所: クラス Terraria
688
+
689
+
690
+
691
+ Terraria.java:128: エラー: シンボルを見つけられません
692
+
693
+ if(map.get(i).mapChipNumber == 1){
694
+
695
+ シンボル: 変数 mapChipNumber
696
+
697
+ 場所: インタフェース Map
698
+
699
+
700
+
701
+ Terraria.java:293: エラー: Mapはabstractです。インスタンスを生成することはできません
702
+
703
+ map.add(new Map((j * 10) + 10, (i * 10) + 31, 0, Integer.parseInt(strs[j])));
704
+
705
+
706
+
707
+ 同じようなエラーは文字数制限の都合上削除しました
708
+
709
+
710
+
711
+ エラー19個
712
+
713
+ ```
714
+
715
+
716
+
675
717
  ### 補足情報(FW/ツールのバージョンなど)
676
718
 
677
719
 

1

実際のコードの追加&エラー発生の場所の追記

2018/10/20 07:43

投稿

Alpa
Alpa

スコア80

test CHANGED
File without changes
test CHANGED
@@ -28,6 +28,650 @@
28
28
 
29
29
 
30
30
 
31
+ 下のコードは実際に書いたコードです
32
+
33
+ このほかのクラスも同じパッケージにしています
34
+
35
+ エラーが発生する場所はFileOperationクラスの作成とMapクラスの作成や使用の部分です
36
+
37
+ ```java
38
+
39
+ package terraria.game;
40
+
41
+
42
+
43
+ import terraria.game.*;
44
+
45
+ import javax.swing.*;
46
+
47
+ import javax.swing.Timer;
48
+
49
+ import javax.imageio.*;
50
+
51
+ import java.awt.*;
52
+
53
+ import java.awt.event.*;
54
+
55
+ import java.awt.image.*;
56
+
57
+ import java.util.*;
58
+
59
+ import java.io.*;
60
+
61
+
62
+
63
+ public class Terraria extends JFrame implements ActionListener, KeyListener, MouseMotionListener, MouseListener
64
+
65
+ {
66
+
67
+ //処理の段階分けの列挙型
68
+
69
+ enum STATUS{
70
+
71
+ INIT,
72
+
73
+ TITLE,
74
+
75
+ GAME
76
+
77
+ }
78
+
79
+
80
+
81
+ STATUS status = STATUS.INIT;
82
+
83
+
84
+
85
+ //画面のダブルバッファリング関係
86
+
87
+ BufferedImage buff = new BufferedImage(700, 500, BufferedImage.TYPE_4BYTE_ABGR_PRE);
88
+
89
+ Graphics2D g2 = buff.createGraphics();
90
+
91
+
92
+
93
+ //キー入力の処理を行うタイマー
94
+
95
+ Timer keyTimer = new Timer(10, this);
96
+
97
+
98
+
99
+ //ファイル操作クラス
100
+
101
+ FileOperation file = new FileOperation();
102
+
103
+
104
+
105
+ //マップデータを格納したコレクション
106
+
107
+ ArrayList<Map> map = new ArrayList<Map>();
108
+
109
+
110
+
111
+ //キー入力フラグ
112
+
113
+ boolean key_up = false;
114
+
115
+ boolean key_down = false;
116
+
117
+ boolean key_right = false;
118
+
119
+ boolean key_left = false;
120
+
121
+ boolean key_enter = false;
122
+
123
+ boolean key_space = false;
124
+
125
+
126
+
127
+ //ウィンドウに入ったか判定するフラグ
128
+
129
+ boolean windowIn = false;
130
+
131
+
132
+
133
+ //マウスの座標
134
+
135
+ int mouseX = 0;
136
+
137
+ int mouseY = 0;
138
+
139
+
140
+
141
+ //マップデータを格納したコレクションの要素数
142
+
143
+ int mapSize = map.size();
144
+
145
+
146
+
147
+ public static void main(String[] args)
148
+
149
+ {
150
+
151
+ Terraria frame = new Terraria();
152
+
153
+ frame.setTitle("テラリア");
154
+
155
+ frame.setSize(700, 500);
156
+
157
+ frame.setLocationRelativeTo(null);
158
+
159
+ frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
160
+
161
+ frame.setResizable(false);
162
+
163
+ frame.setAlwaysOnTop(false);
164
+
165
+ frame.setVisible(true);
166
+
167
+ }
168
+
169
+
170
+
171
+ Terraria()
172
+
173
+ {
174
+
175
+ JPanel panel = new JPanel();
176
+
177
+ panel.setLayout(null);
178
+
179
+
180
+
181
+ addKeyListener(this);
182
+
183
+ addMouseMotionListener(this);
184
+
185
+ addMouseListener(this);
186
+
187
+
188
+
189
+ keyTimer.setActionCommand("キー入力");
190
+
191
+
192
+
193
+ getContentPane().add(panel, BorderLayout.CENTER);
194
+
195
+ }
196
+
197
+
198
+
199
+ public void actionPerformed(ActionEvent e)
200
+
201
+ {
202
+
203
+ String cmd = e.getActionCommand();
204
+
205
+
206
+
207
+ switch(cmd){
208
+
209
+ case "キー入力":{
210
+
211
+ //キー入力処理を実行
212
+
213
+ keyProcessing();
214
+
215
+ }break;
216
+
217
+ }
218
+
219
+ }
220
+
221
+
222
+
223
+ public void paint(Graphics g)
224
+
225
+ {
226
+
227
+ g2 = buff.createGraphics();
228
+
229
+
230
+
231
+ switch(status){
232
+
233
+ case INIT:{
234
+
235
+ if(!file.fileCheck("./SeveData")){
236
+
237
+ file.makeDir("./SeveData");
238
+
239
+ System.exit(0);
240
+
241
+ }
242
+
243
+
244
+
245
+ //背景色を白に設定
246
+
247
+ g2.setBackground(Color.white);
248
+
249
+
250
+
251
+ //マップを読み込む
252
+
253
+ loadMap();
254
+
255
+
256
+
257
+ //キー入力処理のタイマーを開始
258
+
259
+ keyTimer.start();
260
+
261
+
262
+
263
+ //タイトル画面に遷移
264
+
265
+ status = STATUS.TITLE;
266
+
267
+ repaint();
268
+
269
+ }break;
270
+
271
+
272
+
273
+ case TITLE:{
274
+
275
+ //画面を初期化
276
+
277
+ clearBack();
278
+
279
+ }break;
280
+
281
+
282
+
283
+ case GAME:{
284
+
285
+ //画面を初期化
286
+
287
+ clearBack();
288
+
289
+
290
+
291
+ for(int i = 0; i < mapSize; i++){
292
+
293
+ if(map.get(i).mapChipNumber == 1){
294
+
295
+ g2.setColor(Color.green);
296
+
297
+ }else if(map.get(i).mapChipNumber == 2){
298
+
299
+ g2.setColor(Color.blue);
300
+
301
+ }
302
+
303
+
304
+
305
+ g2.fillRect(map.get(i).x, map.get(i).y, 10, 10);
306
+
307
+ }
308
+
309
+ }break;
310
+
311
+ }
312
+
313
+
314
+
315
+ g.drawImage(buff, 0, 0, this);
316
+
317
+ g2.dispose();
318
+
319
+ }
320
+
321
+
322
+
323
+ public void keyReleased(KeyEvent e)
324
+
325
+ {
326
+
327
+ switch(e.getKeyText(e.getKeyCode())){
328
+
329
+ case "上": key_up = false; break;
330
+
331
+ case "下": key_down = false; break;
332
+
333
+ case "右": key_right = false; break;
334
+
335
+ case "左": key_left = false; break;
336
+
337
+ case "Enter": key_enter = false; break;
338
+
339
+ case "スペース": key_space = false; break;
340
+
341
+ }
342
+
343
+ }
344
+
345
+
346
+
347
+ public void keyPressed(KeyEvent e)
348
+
349
+ {
350
+
351
+ switch(e.getKeyText(e.getKeyCode())){
352
+
353
+ case "上": key_up = true; break;
354
+
355
+ case "下": key_down = true; break;
356
+
357
+ case "右": key_right = true; break;
358
+
359
+ case "左": key_left = true; break;
360
+
361
+ case "Enter": key_enter = true; break;
362
+
363
+ case "スペース": key_space = true; break;
364
+
365
+ }
366
+
367
+ }
368
+
369
+
370
+
371
+ public void keyTyped(KeyEvent e){}
372
+
373
+
374
+
375
+ public void mouseMoved(MouseEvent e)
376
+
377
+ {
378
+
379
+ if(windowIn){
380
+
381
+ Point point = e.getPoint();
382
+
383
+ mouseX = point.x;
384
+
385
+ mouseY = point.y;
386
+
387
+ }
388
+
389
+ }
390
+
391
+
392
+
393
+ public void mouseDragged(MouseEvent e)
394
+
395
+ {
396
+
397
+ if(windowIn){
398
+
399
+ Point point = e.getPoint();
400
+
401
+ mouseX = point.x;
402
+
403
+ mouseY = point.y;
404
+
405
+
406
+
407
+ int index = getMapIndex(mouseX, mouseY);
408
+
409
+
410
+
411
+ if(index != -1){
412
+
413
+ debug("I: " + index + " X: " + map.get(index).x + " Y: " + map.get(index).y + " L: " + map.get(index).layer + " M: " + map.get(index).mapChipNumber);
414
+
415
+ }
416
+
417
+ }
418
+
419
+ }
420
+
421
+
422
+
423
+ public void mouseClicked(MouseEvent e)
424
+
425
+ {
426
+
427
+ if(windowIn){
428
+
429
+ int btn = e.getButton();
430
+
431
+
432
+
433
+ switch(btn){
434
+
435
+ case MouseEvent.BUTTON1:{
436
+
437
+ int index = getMapIndex(mouseX, mouseY);
438
+
439
+
440
+
441
+ if(index != -1){
442
+
443
+ debug("Index番号: " + index);
444
+
445
+ debug("X座標: " + map.get(index).x);
446
+
447
+ debug("Y座標: " + map.get(index).y);
448
+
449
+ debug("Layer: " + map.get(index).layer);
450
+
451
+ debug("MapCN: " + map.get(index).mapChipNumber);
452
+
453
+ }
454
+
455
+ }break;
456
+
457
+
458
+
459
+ case MouseEvent.BUTTON2:{
460
+
461
+ //中クリックした時の処理
462
+
463
+ }break;
464
+
465
+
466
+
467
+ case MouseEvent.BUTTON3:{
468
+
469
+ //右クリックした時の処理
470
+
471
+ }break;
472
+
473
+ }
474
+
475
+
476
+
477
+ if(e.getClickCount() >= 2){
478
+
479
+ //ダブルクリックした時の処理
480
+
481
+ }
482
+
483
+ }
484
+
485
+ }
486
+
487
+
488
+
489
+ public void mouseEntered(MouseEvent e)
490
+
491
+ {
492
+
493
+ windowIn = true;
494
+
495
+ }
496
+
497
+
498
+
499
+ public void mouseExited(MouseEvent e)
500
+
501
+ {
502
+
503
+ windowIn = false;
504
+
505
+ }
506
+
507
+
508
+
509
+ public void mousePressed(MouseEvent e){}
510
+
511
+ public void mouseReleased(MouseEvent e){}
512
+
513
+
514
+
515
+ void clearBack()
516
+
517
+ {
518
+
519
+ //画面の初期化処理
520
+
521
+ g2.setColor(Color.white);
522
+
523
+ g2.fillRect(0, 0, 700, 500);
524
+
525
+ }
526
+
527
+
528
+
529
+ void keyProcessing()
530
+
531
+ {
532
+
533
+ if(key_up){
534
+
535
+
536
+
537
+ }
538
+
539
+
540
+
541
+ if(key_down){
542
+
543
+
544
+
545
+ }
546
+
547
+
548
+
549
+ if(key_right){
550
+
551
+
552
+
553
+ }
554
+
555
+
556
+
557
+ if(key_left){
558
+
559
+
560
+
561
+ }
562
+
563
+
564
+
565
+ if(key_enter){
566
+
567
+ if(status == STATUS.TITLE){
568
+
569
+ //ゲーム画面に切り替え
570
+
571
+ status = STATUS.GAME;
572
+
573
+ repaint();
574
+
575
+ }
576
+
577
+ }
578
+
579
+
580
+
581
+ if(key_space){
582
+
583
+
584
+
585
+ }
586
+
587
+ }
588
+
589
+
590
+
591
+ void loadMap()
592
+
593
+ {
594
+
595
+ //マップデータを1行ずつ読み込んで格納するコレクション
596
+
597
+ ArrayList<String> mapData = new ArrayList<String>();
598
+
599
+
600
+
601
+ //マップデータの読み込み
602
+
603
+ file.readS2("./SeveData/Test/TestMapData.txt", mapData);
604
+
605
+
606
+
607
+ //読み込んだマップデータの要素数を数値化
608
+
609
+ int mapDataSize = mapData.size();
610
+
611
+
612
+
613
+ //[,]で分割してマップデータを作成し格納
614
+
615
+ for(int i = 0; i < mapDataSize; i++){
616
+
617
+ String[] strs = mapData.get(i).split(",", 0);
618
+
619
+
620
+
621
+ for(int j = 0; j < strs.length; j++){
622
+
623
+ map.add(new Map((j * 10) + 10, (i * 10) + 31, 0, Integer.parseInt(strs[j])));
624
+
625
+ }
626
+
627
+ }
628
+
629
+
630
+
631
+ //マップデータの要素数を更新
632
+
633
+ mapSize = map.size();
634
+
635
+ }
636
+
637
+
638
+
639
+ int getMapIndex(int x, int y)
640
+
641
+ {
642
+
643
+ for(int i = 0; i < mapSize; i++){
644
+
645
+ if((x >= map.get(i).x && x <= map.get(i).x + 10) && (y >= map.get(i).y && y <= map.get(i).y + 10)){
646
+
647
+ return i;
648
+
649
+ }
650
+
651
+ }
652
+
653
+
654
+
655
+ return -1;
656
+
657
+ }
658
+
659
+
660
+
661
+ void debug(Object obj)
662
+
663
+ {
664
+
665
+ System.out.println(obj);
666
+
667
+ }
668
+
669
+ }
670
+
671
+ ```
672
+
673
+
674
+
31
675
  ### 補足情報(FW/ツールのバージョンなど)
32
676
 
33
677