请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 3787|回复: 2

【Pygame 第5课】 游戏中的运动 中的问题

[复制链接]

10

主题

0

好友

88

积分

注册会员

Rank: 2

发表于 2018-10-15 14:11:45 |显示全部楼层
老师你好啊

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

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()
##            设定“向下键”为退出按钮



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

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

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2018-10-15 22:21:32 |显示全部楼层
            if b_y>0:
                b_y-=5

这个被你写在鼠标事件里了吧
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

10

主题

0

好友

88

积分

注册会员

Rank: 2

发表于 2018-10-16 13:58:25 |显示全部楼层
crossin先生 发表于 2018-10-15 22:21
if b_y>0:
                b_y-=5

明白了 thanks!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-3-29 23:30 , Processed in 0.026422 second(s), 30 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部