回答編集履歴

2

修正

2019/05/16 23:56

投稿

quickquip
quickquip

スコア11038

test CHANGED
@@ -12,24 +12,40 @@
12
12
 
13
13
  def __init__(self, x, y):
14
14
 
15
- self.position(x, y)
16
-
17
-
18
-
19
- def position(self, x, y):
20
-
21
15
  self.x = x
22
16
 
23
17
  self.y = y
24
18
 
25
19
 
26
20
 
21
+ class Character():
22
+
23
+ def __init__(self):
24
+
27
- a = Vector2(10, 20) # (10, 20) という座標を表すインスタンス
25
+ self.position = Vector2(0, 0)
28
26
 
29
27
 
30
28
 
29
+ def set_position(self, vec):
30
+
31
- a.position(0, 0) # (0, 0) を表すように更新
31
+ self.position.x = vec.x
32
+
33
+ self.position.y = vec.y
32
34
 
33
35
  ```
34
36
 
37
+ というような定義にして、
38
+
39
+ ```python
40
+
41
+ start_posistion = Vector2(10, 20)
42
+
43
+ c = Characher()
44
+
45
+ c.set_position(start_posistion)
46
+
47
+ ```
48
+
35
- が正着でしょうね。
49
+ みたいに使うのが正着でしょうね。
50
+
51
+ ("これが正しい"ということでは**決してありません**。これでは都合が悪いことはいろいろとあります)

1

追記

2019/05/16 23:56

投稿

quickquip
quickquip

スコア11038

test CHANGED
@@ -1 +1,35 @@
1
1
  疑問とコードとタイトルが乖離しているので、疑問にだけ回答しますが、[https://teratail.com/questions/180755](https://teratail.com/questions/180755) のコードが参考になると思います。
2
+
3
+
4
+
5
+ ----
6
+
7
+
8
+
9
+ ```python
10
+
11
+ class Vector2():
12
+
13
+ def __init__(self, x, y):
14
+
15
+ self.position(x, y)
16
+
17
+
18
+
19
+ def position(self, x, y):
20
+
21
+ self.x = x
22
+
23
+ self.y = y
24
+
25
+
26
+
27
+ a = Vector2(10, 20) # (10, 20) という座標を表すインスタンス
28
+
29
+
30
+
31
+ a.position(0, 0) # (0, 0) を表すように更新
32
+
33
+ ```
34
+
35
+ が正着でしょうね。