Pygame图像冲突?

2024-09-29 01:36:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我想让当我的形象(猫)过广场的背景会改变,但它没有做任何事,请有人帮助。我有一个范围半径,但这似乎不工作。猫是英雄。你知道吗

矩形有什么问题吗?我应该把它变成一个定义而不是一个变量吗?你知道吗

救命啊!你知道吗

import pygame, sys
from pygame.locals import *

pygame.init()

DISPLAYSURF = pygame.display.set_mode((500,500))
pygame.display.set_caption("A Heros Journy")

GREEN = (0, 255, 0)
RED   = (255, 0, 0)
BLUE = (0, 0, 255)
NAVYBLUE = (0, 0, 128)

hero = pygame.image.load("cat.png")
herox = 10
heroy = 10

DISPLAYSURF.fill(GREEN)
def main():
    global herox, hero, heroy
    mouseClicked = False

    boxx = 225
    boxy = 225
    DISPLAYSURF.fill(GREEN)
    DISPLAYSURF.blit(hero, (herox, heroy))
    while True:
        box = pygame.draw.rect(DISPLAYSURF, BLUE, (boxx, boxy, 50, 50))
        for event in pygame.event.get():

             if event.type == MOUSEMOTION:
                 herox, heroy = event.pos
                 DISPLAYSURF.fill(GREEN)
                 DISPLAYSURF.blit(hero, (herox, heroy))

             elif event.type == MOUSEBUTTONUP:
                 herox, heroy = event.pos
                 mouseClicked = True

             if hero in range(boxx, boxy):
                 DISPLAYSURF.fill(NAVYBLUE)

             if event.type == QUIT:
                 pygame.quit()
                 sys.exit()
        pygame.display.update()


main()

Tags: importeventiftypedisplaysysgreenfill
1条回答
网友
1楼 · 发布于 2024-09-29 01:36:59

注意这不是一个很好的解决方案,但它是有效的,我确信有一种方法可以使它变小。你知道吗

替换

if hero in range(boxx, boxy):
             DISPLAYSURF.fill(NAVYBLUE)

if herox > boxx + 50:
    DISPLAYSURF.fill(NAVYBLUE)
elif herox < boxx:
    DISPLAYSURF.fill(NAVYBLUE)
if heroy > boxy + 50:
    DISPLAYSURF.fill(NAVYBLUE)
elif heroy < boxy:
    DISPLAYSURF.fill(NAVYBLUE)

这个解决方案应该有效,但它绝对不是最好的方法。你知道吗

相关问题 更多 >