【发布时间】:2014-04-13 23:25:31
【问题描述】:
所以我一直在为一个项目开发 Python 游戏。我现在遇到的问题是,如果我在游戏中设置障碍物,我无法让它响应我的图片,就像我的图片与它发生碰撞一样,游戏结束。我已经有一段时间了,但我无法弄清楚代码。任何帮助将不胜感激。我真的需要帮助。请不要说我是初学者,我刚开始学习 python a一个月前。所以请试着理解。我附上了下面的代码。
import pygame, random, sys
from pygame.locals import *
BACKGROUNDCOLOR = (181, 230, 29)
FPS = 30
pixels = 5
pygame.init()
mainClock = pygame.time.Clock()
windowSurface = pygame.display.set_mode((990, 557))
pygame.display.set_caption('Clumsy Claire :D')
background = pygame.image.load('grass.jpg')
backgroundRect = background.get_rect()
size = (990, 557)
background.get_size()
image = pygame.image.load('snail 2.png')
imageRect = image.get_rect()
stone1 = pygame.image.load('rock.PNG')
stone1Rect = stone1.get_rect()
stone2 = pygame.image.load('rock.PNG')
stone2Rect = stone2.get_rect()
BROWN = (128,64,0)
pygame.draw.line(background, BROWN, (98, 555), (98,69), 12)
pygame.draw.line(background, BROWN, (98, 16), (98,1), 12)
pygame.draw.line(background, BROWN, (94, 3), (283, 3),12)
pygame.draw.line(background, BROWN, (278, 457), (278, 3),12)
pygame.draw.line(background, BROWN, (278, 554), (278, 512),12)
pygame.draw.line(background, BROWN, (274, 554), (470, 554),12)
pygame.draw.line(background, BROWN, (465, 554), (465, 90),12)
pygame.draw.line(background, BROWN, (465, 35), (465, 0),12)
pygame.draw.line(background, BROWN, (465, 3), (657, 3),12)
pygame.draw.line(background, BROWN, (652,555 ), (652, 502),12)
pygame.draw.line(background, BROWN, (652, 449), (652, 0),12)
pygame.draw.line(background, BROWN, (648, 553), (844, 553),12)
pygame.draw.line(background, BROWN, (838, 553 ), (838, 138),12)
pygame.draw.line(background, BROWN, (838, 84 ), (838, 0),12)
while True:
imageRect.topleft = (10,488)
moveLeft = False
moveRight = False
moveUp = False
moveDown = False
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN:
if event.key == K_LEFT:
moveLeft = True
if event.key == K_RIGHT:
moveRight = True
if event.key == K_UP:
moveUp = True
if event.key == K_DOWN:
moveDown = True
if event.type == KEYUP:
if event.key == K_LEFT:
moveLeft = False
if event.key == K_RIGHT:
moveRight = False
if event.key == K_UP:
moveUp = False
if event.key == K_DOWN:
moveDown = False
if moveLeft and imageRect.left > 0:
imageRect.move_ip(-1 * pixels, 0)
if moveRight and imageRect.right < 990:
imageRect.move_ip(pixels, 0)
if moveUp and imageRect.top > 0:
imageRect.move_ip(0, -1 * pixels)
if moveDown and imageRect.bottom < 557:
imageRect.move_ip(0, pixels)
windowSurface.blit(background, backgroundRect)
windowSurface.blit(image, imageRect)
rock1 = background.blit(stone1,(658,337))
rock2 = background.blit(stone2,(225,150))
pygame.display.update()
mainClock.tick(FPS)
【问题讨论】:
-
目前没有尝试让任何东西发生碰撞。你有没有看过例如
colliderect呢?
标签: python python-2.7 pygame