Crossin的编程教室

标题: 【Pygame 第5课】 游戏中的运动 中的问题 [打印本页]

作者: szwfn    时间: 2018-10-15 14:11
标题: 【Pygame 第5课】 游戏中的运动 中的问题
老师你好啊

我练习时候想要通过“按下鼠标”来触发子弹射出,代码如下:

import pygame
from pygame import *
import sys
from sys import *



pygame.init()
screen=pygame.display.set_mode((1024,1000),0,32)
pygame.display.set_caption('OK, All set!')

pic1=image.load('wheat.jpg')
pic2=image.load('plane.jpg').convert_alpha()
pic3=image.load('bullet.png')
b_x=0
b_y=-50 #因为子弹比较大,藏远一点,以使其看不见
x=0
y=0


while 1:
    for event in pygame.event.get():
        screen.blit(pic1,(0,0))
##        显示背景
        x,y=pygame.mouse.get_pos()
##        获取鼠标的位置

        a_x=x-pic2.get_width()/2
        a_y=y-pic2.get_height()/2
##        调整显示飞机的位置

        if event.type==pygame.MOUSEBUTTONDOWN:
            b_x=x-pic3.get_width()/2
            b_y=y-pic3.get_height()/2
            if b_y>0:
                b_y-=5
##          按下鼠标触发:子弹从飞机中间向上射出

        screen.blit(pic3,(b_x,b_y))
##        显示子弹

        screen.blit(pic2,(a_x,a_y))
        pygame.display.update()
##        显示飞机

        if event.type==pygame.KEYDOWN:
            pygame.quit()
            exit()
##            设定“向下键”为退出按钮



遇到的问题是,每次按下鼠标,子弹停留在飞机的位置不动

请教下老师,是哪里有错误造成这种结果,谢谢!

作者: crossin先生    时间: 2018-10-15 22:21
            if b_y>0:
                b_y-=5

这个被你写在鼠标事件里了吧
作者: szwfn    时间: 2018-10-16 13:58
crossin先生 发表于 2018-10-15 22:21
if b_y>0:
                b_y-=5

明白了 thanks!




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5