Jun-24-2020, 03:59 PM
I need help with animation speed in my simple game similar to pong. I am currently trying to have two buttons which will change the speed of "an egg". My plan for the game is that if you click on the "fast game", "the egg" will move downwards in 10 miliseconds and if you click on the "slow game", "the egg" will move downwards in 100 miliseconds.
And this is the code I am currently trying to change:
And this is the code I am currently trying to change:
import tkinter from random import * canvas = tkinter.Canvas(width=600, heigh=300, bg="lightgreen") canvas.pack() import winsound def draw_egg(x, y): canvas.create_oval(x-5, y-7,x+5, y+7, fill='wheat') def draw_bowl(x, y): canvas.create_polygon (x, y-10, x+50,y-10, x+40,y+10, x+10, y+10, fill='brown',) def count_points(number_of_points): canvas.create_text(100, 10, text='Number of points:') canvas.create_text(200, 10, text=number_of_points) def lives (number_of_lives): canvas.create_text(400, 10, text='Number of lives:', fill="red") canvas.create_text(500, 10, text=number_of_lives, fill="red") def fast_game(): miliseconds=10 egg_falling() def slow_game(): miliseconds=100 egg_falling() def egg_falling(): canvas.delete('all') global egg_x, egg_y, number_of_points, number_of_lives egg_y = egg_y + 5 draw_egg(egg_x, egg_y) draw_bowl(bowl_x, bowl_y) count_points(number_of_points) lives(number_of_lives) if egg_y>300: egg_x = randrange(300) egg_y = 20 number_of_points = number_of_points number_of_lives = number_of_lives -1 winsound.PlaySound("SystemHand", winsound.SND_ALIAS) if bowl_x<egg_x<bowl_x+50 and bowl_y-10<egg_y<bowl_y: number_of_points= number_of_points + 10 egg_x = randrange(600) egg_y = 20 winsound.PlaySound("SystemExit", winsound.SND_ALIAS) if number_of_lives < 1: game_over() canvas.after(milisekundy, vajco_pada) def game_over(): canvas.delete('all') vajco_y = 0 canvas.create_text (300, 50, text= "GAME OVER", font= "arial 60") canvas.create_text (200, 200, text= "SCORE:",) canvas.create_text (400, 200, text= number_of_lives,) def mouse(coordinates): global number_of_points, bowl_x, number_of_lives, bowl_y bowl_x= coordinates.x bowl_y canvas.delete('all') draw_egg(egg_x, egg_y) draw_bowl(bowl_x, bowl_y) count_points(number_of_points) lives (number_of_lives) if number_of_points < 1: game_over() number_of_points = 0 number_of_lives = 3 egg_x = randrange(300) egg_y = 20 bowl_x = 150 bowl_y = 250 miliseconds=50 button2 = tkinter.Button(text='fast game', command = fast_game) button2.pack() button1 = tkinter.Button(text='slow game', command = slow_game) button1.pack() canvas.bind('<Motion>', mouse)