回答編集履歴

1

補足を追加

2021/01/24 01:40

投稿

Daregada
Daregada

スコア11990

test CHANGED
@@ -1,7 +1,3 @@
1
- プログラムが「思っている通り」に動かないということですね。実は、プログラムは「書いたとおり」に動きます。
2
-
3
-
4
-
5
1
  以下の2箇所を修正してください。
6
2
 
7
3
 
@@ -29,3 +25,97 @@
29
25
  +root.bind("<KeyRelease>",key_up)
30
26
 
31
27
  ```
28
+
29
+ 修正後のプログラムは以下の通りです。
30
+
31
+
32
+
33
+ ```Python
34
+
35
+ import tkinter
36
+
37
+
38
+
39
+ key = ""
40
+
41
+
42
+
43
+
44
+
45
+ def key_down(e):
46
+
47
+ global key
48
+
49
+ key = e.keysym
50
+
51
+
52
+
53
+
54
+
55
+ def key_up(e):
56
+
57
+ global key
58
+
59
+ key = ""
60
+
61
+
62
+
63
+
64
+
65
+ cx = 400
66
+
67
+ cy = 300
68
+
69
+
70
+
71
+
72
+
73
+ def main_proc():
74
+
75
+ global cx, cy
76
+
77
+ if key == "Up":
78
+
79
+ cy = cy - 20
80
+
81
+ if key == "Down":
82
+
83
+ cy = cy + 20
84
+
85
+ if key == "Left":
86
+
87
+ cx = cx - 20
88
+
89
+ if key == "Right":
90
+
91
+ cx = cx + 20
92
+
93
+ canvas.coords("MYCHR", cx, cy)
94
+
95
+ root.after(100, main_proc)
96
+
97
+
98
+
99
+
100
+
101
+ root = tkinter.Tk()
102
+
103
+ root.title("移動するネコ")
104
+
105
+ root.bind("<KeyPress>", key_down)
106
+
107
+ root.bind("<KeyRelease>", key_up)
108
+
109
+ canvas = tkinter.Canvas(width=800, height=600, bg="lightgreen")
110
+
111
+ canvas.pack()
112
+
113
+ img = tkinter.PhotoImage(file="mimi.png")
114
+
115
+ canvas.create_image(cx, cy, image=img, tag="MYCHR")
116
+
117
+ main_proc()
118
+
119
+ root.mainloop()
120
+
121
+ ```