Als ich hörte, dass es eine Herausforderung gab, etwas zu machen, das funktioniert, kam ich auf verschiedene Ideen, aber die, die ganz auf meinem Niveau war (** nur die mit einem hohen Schwierigkeitsgrad **) ) Ich konnte nicht daran denken. Als ich dies und das erkundete, als ich plötzlich den springenden Ball sah, erinnerte ich mich an ein ** vertrautes Bild **. Das ist dieses Video. Dies ist ein Bild, in dem sich die ** DVD-Markierung ** bewegt. Deshalb möchte ich diesmal machen.
Ich werde es tatsächlich basierend auf dem Bouncing Ball machen, den ich zuvor gemacht habe. Als Herstellungsprozess
Machen Sie in Beispiel 07-06-1.py den Hintergrund schwarz und den Ball oval. Der Hintergrund wird schwarz, wenn das letzte Argument der Canvas-Methode bg = "schwarz" ist. Erhöhen Sie den Radius der x-Achse des Kreises, um ihn in eine Ellipse umzuwandeln.
Korrigiertes Ergebnis
#cording:utf-8
import tkinter as tk
x = 400
y = 300
dx = 1
dy = 1
def move():
global x, y , dx, dy
canvas.create_oval(x - 30, y - 20, x + 30, y + 20, fill= "black", width= 0)
x = x + dx
y = y + dy
canvas.create_oval(x - 30, y - 20, x + 30, y + 20, fill= "red", width= 0)
if x >= canvas.winfo_width():
dx = -1
if x <= 0:
dx = +1
if y >= canvas.winfo_height():
dy = -1
if y <= 0:
dy = +1
root.after(10,move)
root = tk.Tk()
root.geometry("600x400")
canvas = tk.Canvas(root, width = 600, height = 400, bg= "black")
canvas.place(x = 0, y =0)
root.after(10, move)
root.mainloop()
――Es geht nicht gut!
Ich habe viele Male einen Fehler bekommen und mich jedes Mal verbessert, aber es hat überhaupt nicht funktioniert. Also bekam ich einen Rat von meinem Lehrer.
Ich fand, dass ich ** self.color auf random ** setzen sollte, wenn ich gegen die Wand stoße **.
python
#cording:utf-8
import tkinter as tk
import random
class Ball:
def __init__(self, x, y, dx, dy,color):
self.x = x
self.y = y
self.dx = dx
self.dy = dy
self.color = color
def color_maker(init, fin):
color1= "#"+ hex(random.randint(init, fin)
).lstrip("0x") + hex(random.randint(init, fin)
).lstrip("0x")+ hex(random.randint(init, fin)).lstrip("0x")
return color1
def move(self,canvas):
canvas.create_oval(self.x - 20, self.y - 20, self.x + 20, self.y + 20, fill="black", wibdth = 0)
self.x = self.x + self.dx
self.y = self.y + self.dy
canvas.create_oval(self.x - 20, self.y - 20, self.x + 20, self.y + 20, fill = self.color , width = 0)
if self.x <= 0:
self.dx = 1
self.color = color_maker(8,15)
if self.x >= canvas.winfo_width():
self.dx= -1
self.color = color_maker(8,15)
if self.y <= 0:
self.dy = 1
self.color = color_maker(8,15)
if self.y >= canvas.winfo_height():
self.dy= -1
self.color = color_maker(8,15)
b = Ball(400, 300, 1,1, self.color)
def loop():
b.move(canvas)
root.after(10, loop)
root = tk.Tk()
root.geometry("800x600")
canvas = tk.Canvas(root, width = 800, height = 600, bg = "black")
canvas.place(x = 0, y = 0)
root.after(10, loop)
root.mainloop()
Kann immer noch nicht! Ich kann nirgendwo damit spielen. Ich bin durchgefallen.
python
#cording:utf-8
import tkinter as tk
import random
x = 400
y = 300
dx = 1
dy = 1
def move():
global x, y , dx, dy
canvas.create_oval(x - 30, y - 20, x + 30, y + 20, fill= "black", width= 0)
x = x + dx
y = y + dy
canvas.create_oval(x - 30, y - 20, x + 30, y + 20,fill = "blue", width= 0)
if x >= canvas.winfo_width():
dx = -1
if x <= 0:
dx = +1
if y >= canvas.winfo_height():
dy = -1
if y <= 0:
dy = +1
root.after(10,move)
root = tk.Tk()
root.geometry("600x400")
canvas = tk.Canvas(root, width = 600, height = 400, bg= "black")
canvas.place(x = 0, y =0)
root.after(10, move)
root.mainloop()
Ich bin sehr enttäuscht, dass ich nicht wie erwartet programmieren kann. Ich habe jedoch viel gelernt, weil ich aufgrund der ständigen Fehler neue Erkenntnisse gewonnen habe.
Randomisierung der Farbe https://qiita.com/daddygongon/items/d658cd7877104975564f #Randomisierung der Farbe Informationen zum Gültigkeitsbereich https://qiita.com/iverson3kobe0824/items/067cca581bf1ca349dd1 DVD-Video https://www.youtube.com/watch?v=gAAp4n7xqbo
Recommended Posts