質問編集履歴

1

コードに意図等を補記

2021/01/17 05:34

投稿

kyskgsh
kyskgsh

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,14 @@
1
1
  ### 疑問
2
+
3
+
4
+
5
+ 【追記】
6
+
7
+ 分かりにくいとの指摘を受けておりますので、コード補記しました。
8
+
9
+
10
+
11
+ ------------------------------------------------------------------------------------
2
12
 
3
13
 
4
14
 
@@ -28,19 +38,39 @@
28
38
 
29
39
  constructor(){
30
40
 
31
- this.obj = {x:0};
41
+ this.obj = {x:0, y:0};//こちらが初期値です。例えばプレイヤーの座標。
32
42
 
33
43
  }
34
44
 
35
- add(){
45
+ add(moveFlg){
36
46
 
37
47
  var a = {};
38
48
 
39
49
  a.obj = this.obj;
40
50
 
41
- a.obj.x++;
51
+ if(moveFlg == 1){ a.obj.x++; }//xの初期値(0)に1を加算したい。yは初期値のままでよい。
42
52
 
53
+ else if(moveFlg == 2){ a.obj.x--; }//xの初期値(0)から1を減算したい。yは初期値のままでよい。
54
+
55
+ //moveFlgが0の時は初期値{x:0, y:0}にしたい
56
+
57
+ return a;
58
+
43
- }
59
+ }
60
+
61
+ add2(){
62
+
63
+ return this.obj.x++;//こちらだとxにどんどん加算されていくのは理解できる
64
+
65
+ }
66
+
67
+ render(moveFlg){
68
+
69
+ var A = this.add(moveFlg);
70
+
71
+ //A.obj.x(1 or -1)とA.obj.y(0)をもとに描画する処理
72
+
73
+ }
44
74
 
45
75
  }
46
76
 
@@ -48,9 +78,11 @@
48
78
 
49
79
  var q;
50
80
 
81
+ var moveFlg;
82
+
51
83
  window.onload = function(){
52
84
 
53
- q = new t();
85
+ q = new t();//こちらでプレーヤーの宣言
54
86
 
55
87
  init();
56
88
 
@@ -60,6 +92,10 @@
60
92
 
61
93
  function init(){
62
94
 
95
+ document.addEventListener('keydown', KeyDownFunc);
96
+
97
+ document.addEventListener('keyup', KeyUpFunc);
98
+
63
99
  requestAnimationFrame(update);
64
100
 
65
101
  }
@@ -68,12 +104,40 @@
68
104
 
69
105
  function update(){
70
106
 
71
- q.add();
72
-
73
- console.log(q.obj.x);
107
+ q.render(moveFlg);//プレイヤーに動きを加え描画
74
108
 
75
109
  requestAnimationFrame(update);
76
110
 
77
111
  }
78
112
 
113
+
114
+
115
+ function KeyDownFunc(e){
116
+
117
+ switch(e.keyCode){
118
+
119
+ case 87:
120
+
121
+ moveFlg = 2;
122
+
123
+ break;
124
+
125
+ case 83:
126
+
127
+ moveFlg = 1;
128
+
129
+ break;
130
+
131
+ }
132
+
133
+ }
134
+
135
+
136
+
137
+ function KeyUpFunc(e){
138
+
139
+ moveFlg = 0;
140
+
141
+ }
142
+
79
143
  ```