我清楚尝试在python中清除表面,然后它仍然绘制按钮?

时间:2011-12-24 23:35:17

标签: python pygame clear collision

我清楚尝试用白色填充屏幕然后导入图像,但是当我使用display.flip()按钮仍然存在但它仍然检测到碰撞?我该如何解决这个问题?

def stagesel():
screen.fill(WHITE)
StageselPic = image.load("Locationmenu.png") # done once
screen.blit(StageselPic, Rect(0,0,800,600))
display.flip()

def getmouse():
    mx, my = mouse.get_pos()
    mb = mouse.get_pressed()[0]
    return (mx, my, mb)

def Menu():
    global GREEN
    global WHITE
    if mx >= rectx and mx <= rectx + rectw and my >= recty and my <= recty + recth:
        x = GREEN
        menutext(x)
    elif mx >= instx and mx <= instx + instw and my >= insty and my <= insty + insth:
        y = GREEN
        menuhelp(y)
    else:
        x = WHITE
        y = WHITE
        menutext(x)
        menuhelp(y)
    if mx >= rectx and mx <= rectx + rectw and my >= recty and my <= recty + recth and mb == True:
    stagesel()
running = True


while running:
    for evnt in event.get():
        if evnt.type == QUIT:
            running = False

mx,my,mb = getmouse()
Menu()
TITLE()

quit()

1 个答案:

答案 0 :(得分:1)

您的来源不完整且虚假。这样你就不能期待任何帮助。你似乎缺乏对pygame表面力学的理解,但是你表达你的误会的方式是不可能的。

我最好的猜测是,您无法将屏幕表面复制到显示屏表面。关于碰撞检测的部分比我高,因为你甚至没有为你的碰撞检测提供最基本的提示。 (希望您的鼠标坐标检查不符合碰撞检测的要求。)

请将您的来源剥离到相关部分,并提供其中问题的指示。