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

回答編集履歴

3

ソースの追記と文言の修正

2016/07/11 07:25

投稿

tignear
tignear

スコア260

answer CHANGED
@@ -1,7 +1,48 @@
1
1
  同期化処理(排他制御)にはいくつか方法があると思います
2
- - ``java.util.Collections()``を使用する
2
+ - ``java.util.Collections.synchronizedList(List)``を使用する
3
3
  ```java
4
4
  //FQDN(完全修飾名)
5
5
  java.util.List<Gun> syncArray = java.util.Collections.synchronizedList(new java.util.ArrayList<Gun>());
6
6
  ```
7
- - スレッドを一つにまとめて処理する
7
+ - スレッドを一つにまとめて処理する
8
+ ```java
9
+ long c;
10
+ int pup;
11
+ boolean cgun;
12
+ boolean loop=true;
13
+ @Override
14
+ public void run(){
15
+ while(loop){
16
+ frame();
17
+ Thread.sleep(16);
18
+ }
19
+ }
20
+
21
+ private void frame(){
22
+ c++;
23
+ player.updata(ke.getKeyCode());
24
+ cgun();
25
+ //1フレームごとの処理
26
+ //cにはloop回数が入ってます
27
+ }
28
+ private void cgun(){
29
+ gun = new Gun(10000, 10000); //Enter押されたらインスタンス生成
30
+ gunList.add(gun); //配列に追加
31
+ gunList.get(gunCount).startLine(player.m_x + 16, player.m_y);
32
+ gunCount++;
33
+ }
34
+ protected void processKeyEvent(KeyEvent ke){
35
+ /*何かキーが押された場合*/
36
+ if(ke.getID() == KeyEvent.KEY_PRESSED){
37
+ System.out.println("キー" + ke.getKeyCode() + "が押された");
38
+
39
+ /*押されたキーが左右だった場合*/
40
+ pup=ke.getKeyCode();
41
+
42
+ /*押されたキーがENTERだった場合*/
43
+ if(ke.getKeyCode() == KeyEvent.VK_ENTER){
44
+ cgun=true;
45
+ }
46
+ }
47
+ }
48
+ ```

2

非現実的な選択肢を削除

2016/07/11 07:25

投稿

tignear
tignear

スコア260

answer CHANGED
@@ -4,5 +4,4 @@
4
4
  //FQDN(完全修飾名)
5
5
  java.util.List<Gun> syncArray = java.util.Collections.synchronizedList(new java.util.ArrayList<Gun>());
6
6
  ```
7
- - スレッドを一つにまとめて処理する
7
+ - スレッドを一つにまとめて処理する
8
- - ArrayListクラスをスーパークラスとするGunListクラスを作ってremove()とadd()をオーバーライドして・・

1

コードを追記

2016/07/10 00:40

投稿

tignear
tignear

スコア260

answer CHANGED
@@ -1,4 +1,8 @@
1
- 同期化処理にはいくつか方法があると思います
1
+ 同期化処理(排他制御)にはいくつか方法があると思います
2
2
  - ``java.util.Collections()``を使用する
3
+ ```java
4
+ //FQDN(完全修飾名)
5
+ java.util.List<Gun> syncArray = java.util.Collections.synchronizedList(new java.util.ArrayList<Gun>());
6
+ ```
3
7
  - スレッドを一つにまとめて処理する
4
8
  - ArrayListクラスをスーパークラスとするGunListクラスを作ってremove()とadd()をオーバーライドして・・