ich glaube ziemlich alles richtig gemacht zu haben aber wenn ich es ausführe sehe ich nur ein Fenster und kein ball oder ein Schläger
Ich arbeite mit Python 3.4.3rc1
Es kommt immer die Fehlermeldung:
Traceback (most recent call last):
File "C:\Users\Timon Wanner\Desktop\Projekt.py", line 76, in <module>
schläger = Schläger(canvas, 'blue')
TypeError: object() takes no parameters
Code: Alles auswählen
from tkinter import *
import random
import time
class Ball:
def _init_(self, canvas, color):
self.canvas = canvas
self.canvas = schläger
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()
self.hit_bottom = False
def triff_schläger(self, pos):
schläger_pos = self.canvas.coords(self.schläger.id)
if pos[2] >= schläger_pos[0] and pos[0] <= schläger_pos[2]:
if pos[3] >= schläger_pos[1] and pos[3] <= schläger_pos[3]:
return True
return False
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.hit_bottom = True
if self.triff_schläger(pos) == True:
self.x = -3
if pos[0] <= 0:
self.x = 3
if pos[2] >= self.canvas_width:
self.x = -3
class Schläger:
def _init_(self, canvas, color):
self.canvas = canvas
self.id = canvas.create_rectangle(0, 0, 100, 10, fill=color)
self.canvas.move(self.id, 200, 300)
self.x = 0
self.canvas_width = self.canvas.winfo_width()
self.canvas.blind_all('<KeyPress-Left>', self.nach_links)
self.canvas.blind_all('<KeyPress-Right>', self.nach_rechts)
def draw(self):
self.canvas.move(self.id, self.x, 0)
pos = self.canvas.coords(self.id)
if pos[0] <= 0:
self.x = 0
elif pos[2] >= self.canvas_width:
self.x = 0
def nach_links(self, evt):
self.x = -2
def nach_rechts(self, evt):
self.x = 2
tk = Tk()
tk.title("Spiel")
tk.resizable(0, 0)
tk.wm_attributes("-topmost", 1)
canvas = Canvas(tk, width=500, height=400, bd=0, highlightthickness=0)
canvas.pack()
tk.update()
schläger = Schläger(canvas, 'blue')
ball = Ball(canvas, schläger, 'red')
while 1:
if ball. hit_bottom == False:
ball.draw()
schläger.draw()
tk.update_idletasks()
tk.update()
time.sleep(0.01)