pygame:试图弹跳球,但是卡住了 - python

import pygame

Red = 255, 0, 0
Black= 0,0,0
rectXpos = 2
rectypos = 2
speed = 2
screenedgex = 500

pygame.init()

window = pygame.display.set_mode(size=(500, 500))

clock = pygame.time.Clock()
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        pygame.display.update()

        window.fill(Black)
        square = pygame.draw.rect(window, Red, [rectXpos, rectypos, 50, 50],2)
        rectXpos += 2

        if rectXpos < 500:
            rectXpos -= 2



        clock.tick(60)
        print(rectXpos)`enter code here`

那我在做什么错?我试图做一个if语句来停止球并反转它,但它使球保持在窗口的边缘

参考方案

这是完整的代码,我分开了x和y跳动,因此可以使用其中任何一个,也可以更新代码一点,以及一些额外的格式。

# Imports
import pygame

# Vars
Red = 255, 0, 0
Black= 0,0,0
rectXpos = 2
rectYpos = 2
rect_width = 50
rect_height = 50
screen_width = 500
screen_height = 500
block_x_direction = 1
block_y_direction = 1

# Setup Code
pygame.init()
window = pygame.display.set_mode(size=(screen_width, screen_height))
clock = pygame.time.Clock()
running = True

# Game Loop
########################################################
while running:
    # Event Loop
    ########################################################
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False


    # Game Code - Update
    ########################################################
    # Game Code - Update - Rect X Bounce
    if rectXpos + (rect_width)>= screen_width:
        block_x_direction = block_x_direction * -1
    rectXpos += 2 * block_x_direction
    # Game Code - Update - Rect Y Bounce
    if rectYpos + (rect_height)>= screen_height:
        block_y_direction = block_y_direction * -1
    rectYpos += 2 * block_y_direction

    # - Tick Game    
    clock.tick(60)

    # Game Code - Render
    ########################################################
    window.fill(Black)
    square = pygame.draw.rect(window, Red, [rectXpos, rectYpos, rect_width, rect_height],2)
    pygame.display.update()

    # Game Code - Debug Code
    ########################################################
    print(clock.tick)

无法听到我正在尝试使用pygame播放的声音 - python

我听不到我尝试与pygame一起播放的声音。这是我的代码。import pygame pygame.init() pygame.mixer.music.load(r"C:\Users\Isaiah\Desktop\easy_going.mp3") pygame.mixer.music.play() 任何帮助将是巨大的!谢谢! 参考方案 P…

当我运行Python程序时,pygame窗口打开片刻,然后退出 - python

我是一个刚开始尝试通过在线课程使用python和pygame制作游戏的程序员。但是,当我运行以下代码时,pygame窗口将打开一秒钟,然后关闭。import pygame pygame.init() screen = pygame.display.set_mode((900,700)) finished = False while finished == F…

非面向Ubuntu的pygame平台无法在Ubuntu以外的任何其他设备上正确加载级别 - python

我一直在基于this的pygame平台游戏。我是在Ubuntu机器上编写的,它似乎无法在其他操作系统上运行。生成代码是这样的:levelFile = tkFileDialog.askopenfile(mode='r', defaultextension='.lvl', filetypes=[('Level F…

如何将Moviepy调整为全屏大小? - python

我正在使用pygame制作游戏,我想为其添加剪切场景。 pygame电影模块无法正常工作,因此我不得不求助于使用moviepy。从我所看到的内容来看,Moviepy的记录不充分,因此我很难弄清楚。我使用此代码块使它可以工作,但是现在我需要全屏显示(所需的窗口屏幕为640x400)。那我该怎么做呢?先感谢您。from moviepy.editor import…

如何在不休眠整个程序的情况下以一种功能休眠 - python

因此,我尝试制作一个游戏,在这个游戏中,我调用了一个我想慢慢执行的函数,但是当我使用“ time.sleep(x)”时,它将暂停文件中的所有内容,而不仅仅是暂停功能。我正在尝试为2D游戏添加跳跃功能,因此,如果有更好的方法可以实现,那么我将不胜感激任何建议,但这只是我的第一个想法。for n in range(15): Dino.rect.bottom -=…