移动.png离开屏幕

时间:2014-02-13 19:24:58

标签: python pygame collision

我对pygame脚本世界相对较新,我在编写游戏时需要帮助:它将是一个迷宫,玩家从起点移动到到达点。

我决定从基础开始,创建一个窗口,当按下小键盘键时,字符(.png文件)会移动。

问题是,当我的.png到达屏幕时,它会移动。 如何防止它离开屏幕? (PS:如果可能的话,我想要一个我不需要使用课程的解决方案,我绝对讨厌那些而且我对它们一点也不舒服)

这是我到目前为止所写的代码:

输入图书馆/进口图书馆

import pygame
from pygame.locals import *


pygame.init()

pygame.time.Clock().tick(30)

F1=pygame.display.set_mode((640, 480), RESIZABLE) # création fenêtre / creating main window

bg=pygame.image.load("background.jpg").convert() # chargement et conversion de l'image / loading and converting picture
F1.blit(bg, (0,0)) #collage de l'image de fond / sticking background
pygame.display.flip() # raffraichissement écran / refreshing screen

perso=pygame.image.load("perso.png").convert_alpha()
F1.blit(perso, (0,0))
pygame.display.flip()

F1_rect=F1.get_rect()
position=perso.get_rect()
F1.blit(perso, position)

pygame.display.set_caption("Deadalus V 0.0.0.1")

continuer = 1 # création d'une boucle infinie / creating main loop

pygame.key.set_repeat(1,1)
while continuer:
        for event in pygame.event.get():
            if event.type == QUIT:
                continuer = 0
            if event.type == KEYDOWN:
                if event.key == K_KP2:
                    position = position.move(0,3)
                if event.key == K_KP5:
                    position = position.move(0,-3)
                if event.key == K_KP1:
                    position = position.move(-3,0)
                if event.key == K_KP3:
                    position = position.move(3,0)
        F1.blit(bg, (0,0))
        F1.blit(perso, position)

        pygame.display.flip()

1 个答案:

答案 0 :(得分:0)

只需使用clamp

即可
position.clamp_ip(F1_rect)

这样你的位置矩形将始终在F1_rect内。