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