Warning: unlink(/home/wao2023no7/code-chips.com/public_html/wp-content/lolipop-migrator//.htaccess): No such file or directory in /home/wao2023no7/code-chips.com/public_html/wp-content/plugins/lolipop-migrator/includes/class-lolipop-migrator-file.php on line 47
لماذا لا ينتج المزيد من الكتل وينتج كتلة واحدة فقط في كل مرة؟ تكنتر | code chips

لماذا لا ينتج المزيد من الكتل وينتج كتلة واحدة فقط في كل مرة؟ تكنتر

[ad_1]

import tkinter as tk
import random

# Create the Tkinter window
root = tk.Tk()
root.title("Character Movement")

canvas = tk.Canvas(root, width=400, height=400)
canvas.pack()

# Create the character (rectangle)
character = canvas.create_rectangle(180, 180, 220, 220, fill="blue")

# Create a list to keep track of falling blocks
falling_blocks = []

# Function to move the character
def move(event):
    x, y = 0, 0
    if event.keysym == 'Up':
        y = -10
    elif event.keysym == 'Down':
        y = 10
    elif event.keysym == 'Left':
        x = -10
    elif event.keysym == 'Right':
        x = 10
    # Check if the character is within the window boundaries before moving
    if 0 < canvas.coords(character)[0] + x < 400 and 0 < canvas.coords(character)[1] + y < 400:
        canvas.move(character, x, y)
        check_collision()

# Function to create falling blocks
def create_falling_block():
    x = random.randint(0, 400)
    block = canvas.create_rectangle(x, 0, x+30, 30, fill="red")
    falling_blocks.append(block)
    animate_falling_block(block)

# Function to animate the falling blocks
def animate_falling_block(block):
    if canvas.coords(block)[3] < 400:
        canvas.move(block, 0, 5)
        if check_collision(block):
            end_game()
        else:
            root.after(100, animate_falling_block, block)

# Function to check for collisions
def check_collision(block=None):
    character_coords = canvas.coords(character)
    if block:
        block_coords = canvas.coords(block)
        if (character_coords[0] < block_coords[2] and character_coords[2] > block_coords[0] and character_coords[1] < block_coords[3] and character_coords[3] > block_coords[1]):
            return True
    return False

# Function to end the game
def end_game():
    canvas.create_text(200, 200, text="You lose!", font=("Helvetica", 20), fill="red")

# Create falling blocks every 2 seconds
root.after(2000, create_falling_block)

# Bind arrow key presses to the move function
root.bind('<Up>', move)
root.bind('<Down>', move)
root.bind('<Left>', move)
root.bind('<Right>', move)

# Run the Tkinter main loop
root.mainloop()

كيفية تفرخ أكثر من واحد

ما حاولت:

إضافة حلقات مثل while true وsys.sleep وما إلى ذلك

الحل 1

بايثون
# Create falling blocks every 2 seconds
root.after(2000, create_falling_block)

يمكنك القيام بذلك مرة واحدة فقط، في البداية. عليك أن تفعل ذلك في كثير من الأحيان.

[ad_2]

コメント

タイトルとURLをコピーしました