前提・実現したいこと
Jason R.Briggs著の『たのしいプログラミング pythonではじめよう!』
の第13章「Bounce!ゲームを作ってみよう」をやっております。ものに
当たると跳ね返るボールをラケットで打ち返すという内容のゲームを作
っております。
コードを全て書き実行したのですが、エラーがでます。
初心者でどのようなエラーなのか分かりません。
エラーの改善方法を教えていただけませんか?
発生している問題・エラーメッセージ
Traceback (most recent call last):
File "C:\Users\AppData\Local\Programs\Python\Python36-32\Bounce.py", line 5, in <module>
class Ball:
File "C:\Users\AppData\Local\Programs\Python\Python36-32\Bounce.py", line 38, in Ball
ball = Ball(canvas, 'red')
NameError: name 'Ball' is not defined
上記はエラーメッセージなのですが、「Game」の枠は一応出てきます。
スクリーンショットに2枚目を参照ください。
該当のソースコード
ここに言語名を入力
python
ソースコード
from tkinter import *
import random
import time
class Ball:
def init(self, canvas, color):
self.canvas = canvas
self.id = canvas.create_oval(10, 10, 25, 25, fill=color)
self.canvas.move(self.id, 245, 100)
starts = [-3, -2, -1, 1, 2, 3]
random.shuffle(starts)
self.x = starts[0]
self.y = -3
self.canvas_height = self.canvas.winfo_height()
self.canvas_width = self.canvas.winfo_width()
def draw(self): self.canvas.move(self.id, self.x, self.y) pos = self.canvas.coords(self.id) if pos[1] <= 0: self.y = 3 if pos[3] >= self.canvas_height: self.y = -3 if pos[0] <=0: self.x = 3 if pos[2] >=self.canvas_width: self.x = -3 tk = Tk() tk.title("Game") tk.resizable(0, 0) tk.wm_attributes("-topmost", 1) canvas = Canvas(tk, width=500, height=400, bd=0, highlightthickness=0) canvas.pack() tk.update() ball = Ball(canvas, 'red') while True: ball.draw() tk.update_idletasks() tk.update() time.sleep(0.01)
試したこと
5行目のclass周辺に全角などの空白がないかチェックしました。
補足情報(FW/ツールのバージョンなど)
Python-shell-で実行しました。
ファイル名はBounce.pyです。
回答2件
あなたの回答
tips
プレビュー