Kezdőoldal » Számítástechnika » Programozás » Hogy tudok cikk-cakk mozgast...

Hogy tudok cikk-cakk mozgast kesziteni Pythonba? Itt a link meddig jutottam el.

Figyelt kérdés
Eleri az aljat meg is fordul de onnantol otletem sincs hogyan tovabb.

2014. jún. 16. 11:20
 1/5 A kérdező kommentje:

Nem tudok pastebines linket adni mert nem engedi az oldal de itt a kod :


from tkinter import *


def move():

global x1, y1, dx, dy, flag, n, z


x1, y1 = x1 + dx, y1 + dy


if x1 > 360:

x1, dx, dy = 360, -15, 5

can1.itemconfig(oval1, fill = "purple")


if x1 < 10:

x1, dx, dy = 10, 15, 5

can1.itemconfig(oval1, fill = "red")


if y1 == 360:

x1, dx, dy = 360, -15, -5

can1.itemconfig(oval1, fill = "green")



can1.coords(oval1, x1, y1, x1 + 30, y1 + 30)


if flag > 0:

abl1.after(50, move)


def stop():

global flag

flag = 0


def start():

global flag

if flag == 0:

flag = 1

move()


###


x1, y1 = 10, 10

dx, dy = 15, 5

n = 0



flag = 0


###


abl1 = Tk()

abl1.title("Animációs gyakorlat Tkinter-rel")


can1 = Canvas(abl1, bg = "dark grey", height = 400, width = 400)

can1.pack(side=LEFT)


oval1 = can1.create_oval(x1, y1, x1 + 30, y1 + 30, fill = "white")


but1 = Button(abl1, text = "Quit", command = abl1.destroy).pack(side=BOTTOM, padx = 3, pady = 5)

but2 = Button(abl1, text = "Start", command = start).pack(padx = 3, pady = 5)

but3 = Button(abl1, text = "Stop", command = stop).pack(padx = 3, pady = 5)


abl1.mainloop()

2014. jún. 16. 11:22
 2/5 anonim ***** válasza:

Valami ilyesmire gondoltál?


[link]

2014. jún. 16. 13:04
Hasznos számodra ez a válasz?
 3/5 A kérdező kommentje:

Valami ilyesmi


Ott az ablak es a labdanak el kell indulnia lefele es a falrol visszapattanva megin lefele es ha elerte az aljat ugyan ugy csak vosszafele


Mintha egy biliard asztalon elloned a golyot

2014. jún. 16. 13:43
 4/5 anonim ***** válasza:

Ez nem egészen ugyanaz. Amiről te beszélsz, az már fizikai szimuláció.


Ha csak a cikk-cakk mozgás kell, annak a pályáját megadja az a függvény, amit írtam. A "fogak" sűrűségét az x együtthatója határozza meg, az eltolást a végén kivont szám, a többi pedig a fogak magasságát.


Mivel a mozgás az idő függvénye, ezért itt az x az adott időpont. Vagyis x helyére az időt helyettesítve megkapható az aktuális elhelyezkedés.


A biliárd asztalon történő mozgás azért komplikáltabb. Ott nagyon sok minden számít.

2014. jún. 16. 13:47
Hasznos számodra ez a válasz?
 5/5 iostream ***** válasza:

Én csak azt nem értem, hogy


if y1 == 360:

x1, dx, dy = 360, -15, -5

can1.itemconfig(oval1, fill = "green")


itt, ha y1 volt a túl nagy (érdemesebb >=-t vizsgálni, mert nem lesz mindig egész számú többszörös), akkor miért az x1-t meg a dx-t cseszegeted.


Ugyanígy kérdés, hogy ha x1-re megoldottad a mindkét irányú ütközést, akkor y1-re miért nem oldottad meg, hogy a másik oldalon is kezeljed.

2014. jún. 16. 15:27
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!