马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我刚刚用pygame做了个超简单超简单的打砖块游戏(一共才40多行),可是这里面的球与砖块的碰撞检测我还是不是太清楚。目前暂时用了X,Y分别进行匹配的方法。可是有时候侦测的有点慢,显现出我的球是有白色背景的(无奈),甚至少时候会穿过球,减一分...求大神帮助。代码如下(test1是砖块,test2是球,自己找素材):"""用pygame开发一款打砖块的游戏"""
# 初始化
import pygame, sys, random, pygame.freetype
# 开始运行
if __name__ == "__main__":
pygame.init()
screen = pygame.display.set_mode((600, 400))
test1 = pygame.image.load("test1.png")
test2 = pygame.image.load("test2.png")
t1_location = (190, 280)
t2_location = (240, 25)
speed = speed = random.randint(0, 3) * 2 + -3
clock = pygame.time.Clock()
file = pygame.freetype.Font("C://windows//Fonts//msyh.ttc", 36)
score = 0
note = file.render_to(screen, (260, 30), "Your score is:" + str(score), fgcolor=pygame.Color("black"), size=36)
while True:
t1_location = (pygame.mouse.get_pos()[0], t1_location[1])
if not t2_location[0] < 0 and not t2_location[0] > 580:
t2_location = (t2_location[0]+speed, t2_location[1]+1)
else:
speed = -speed
t2_location = (t2_location[0]+speed, t2_location[1]+1)
if t2_location[1] >= 260:
if t2_location[1] >= 390:
t2_location = (t1_location[0], 25)
speed = random.randint(0, 3) * 2 + -3
score -= 1
elif t1_location[0] < t2_location[0]+30 and t1_location[0] > t2_location[0]-30:
score += 1
t2_location = (t1_location[0], 25)
speed = random.randint(0, 3) * 2 + -3
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
screen.fill(pygame.Color("white"))
screen.blit(test1, t1_location)
screen.blit(test2, t2_location)
note = file.render_to(screen, (200, 30), "Your score is:" + str(score), fgcolor=pygame.Color("black"), size=36)
pygame.display.update()
clock.tick(160)
|