Python 使用'时,如何在屏幕上的图像之间保持特定的距离;对于循环';在游戏中
这里是我的代码的简化版本,我试图使用for循环来绘制这些图像。但当这些图像出现在屏幕上时,它们有时会重叠或相互接触。那么我能做些什么来阻止它呢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
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)