Python 使用'时,如何在屏幕上的图像之间保持特定的距离;对于循环';在游戏中

Python 使用'时,如何在屏幕上的图像之间保持特定的距离;对于循环';在游戏中,python,pygame,Python,Pygame,这里是我的代码的简化版本,我试图使用for循环来绘制这些图像。但当这些图像出现在屏幕上时,它们有时会重叠或相互接触。那么我能做些什么来阻止它呢 import pygame import random win_size = (600, 400) win = pygame.display.set_mode(win_size, 0, 32) jumperImg = [] jumperx = [] jumpery = [] for i in range(5): jumperImg.appe

这里是我的代码的简化版本,我试图使用for循环来绘制这些图像。但当这些图像出现在屏幕上时,它们有时会重叠或相互接触。那么我能做些什么来阻止它呢

import pygame
import random

win_size = (600, 400)
win = pygame.display.set_mode(win_size, 0, 32)

jumperImg = []
jumperx = []
jumpery = []

for i in range(5):
    jumperImg.append(pygame.image.load("anyimg.png"))
    jumperx.append(random.randint(0,600))
    jumpery.append(50)



def jumper(x, y, i):
    win.blit(jumperImg[i], (x, y))


running = True
while running:
    for event in pygame.event.get():  # event loop
        if event.type == pygame.QUIT:
            running = False

    for i in range(5):
        jumper(jumperx[i], jumpery[i], i)


    pygame.display.update()

您必须将图像覆盖的矩形区域存储到列表中。用于表示矩形。为新图像创建一个随机位置,并用于评估新图像是否与任何其他图像碰撞。如果图像发生碰撞,则跳过该位置并创建一个新的随机位置。只要图像发生碰撞,使用循环重复此过程:

img=pygame.image.load(“anyimg.png”)
rect_list=[]
对于范围(5)中的i:
碰撞=0
当碰撞>=0时:
x、 y=random.randint(0600),50
img_rect=img.get_rect(左上=(x,y))
collide=img_rect.collide列表(rect_列表)
rect_list.append(img_rect)
jumperImg.append(img)
jumperx.append(x)
jumpery.append(y)

您必须将图像覆盖的矩形区域存储到列表中。用于表示矩形。为新图像创建一个随机位置,并用于评估新图像是否与任何其他图像碰撞。如果图像发生碰撞,则跳过该位置并创建一个新的随机位置。只要图像发生碰撞,使用循环重复此过程:

img=pygame.image.load(“anyimg.png”)
rect_list=[]
对于范围(5)中的i:
碰撞=0
当碰撞>=0时:
x、 y=random.randint(0600),50
img_rect=img.get_rect(左上=(x,y))
collide=img_rect.collide列表(rect_列表)
rect_list.append(img_rect)
jumperImg.append(img)
jumperx.append(x)
jumpery.append(y)