Quand j'ai entendu dire qu'il y avait un défi pour faire quelque chose qui fonctionne, j'ai trouvé diverses idées, mais celle qui était tout à fait à mon niveau (** seulement celle avec un degré de difficulté élevé **) ) Je ne pouvais pas y penser. Alors, quand j'explorais ceci et cela, quand j'ai soudainement vu le Bouncing Ball, je me suis souvenu d'une ** image familière **. C'est cette vidéo. Il s'agit d'une image dans laquelle se déplace la ** marque DVD **. C'est pourquoi j'aimerais faire ceci cette fois.
--Le produit final est this
Je vais en fait le faire sur la base de la balle rebondissante que j'ai faite plus tôt. En tant que processus de fabrication
Dans example07-06-1.py, rendez l'arrière-plan noir et la boule ovale. L'arrière-plan devient noir lorsque le dernier argument de la méthode canvas est bg = "black". Pour le transformer en ellipse, augmentez le rayon de l'axe des x du cercle.
Résultat corrigé
#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()
―― Ça ne va pas bien!
J'ai eu une erreur plusieurs fois et je me suis amélioré à chaque fois, mais cela n'a pas fonctionné du tout. J'ai donc reçu des conseils de mon professeur.
J'ai trouvé que je devais définir ** self.color sur aléatoire ** lorsque je frappe le mur **.
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()
Je ne peux toujours pas! Je ne peux pas jouer avec n'importe où. J'ai échoué.
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()
Je suis très déçu de ne pas pouvoir programmer comme prévu. Cependant, j'ai beaucoup appris parce que j'ai acquis de nouvelles connaissances à cause des erreurs continues.
Randomisation de la couleur https://qiita.com/daddygongon/items/d658cd7877104975564f #Randomisation de la couleur À propos de la portée https://qiita.com/iverson3kobe0824/items/067cca581bf1ca349dd1 vidéo dvd https://www.youtube.com/watch?v=gAAp4n7xqbo
Recommended Posts