python游戏练习侧面射击没有出现飞船和子弹

在学习《python编程:从入门到实践》时,作者遇到侧面射击游戏的问题。游戏中飞船能上下左右移动,子弹用PNG图片表示。尽管设置了屏幕背景颜色,但飞船和子弹仍无法显示。作者已检查代码,但未能找出问题所在,寻求帮助。
摘要由CSDN通过智能技术生成

最近在看《python编程:从入门到实践》这本书学习python。在项目外星人入侵的射击练习——侧面射击这里遇到了问题。
侧面射击 :编写一个游戏,将一艘飞船放在屏幕左边,并允许玩家上下移动飞船。在玩家按空格键时,让飞船发射一颗在屏幕中向右穿行的子弹,并在子弹离开 屏幕而消失后将其删除。
我在编写代码时想要试一试其他效果,所以设定飞船为可以上下左右移动,子弹是一个png格式的图片而非python内生成的矩形。

我把飞船图片替换为图一,命名为eye 后面的飞船概念命名都为eye

我把子弹图片设置为图二,命名为fire,后面的子弹概念命名都为fire

我把飞船图片替换为这个,命名为eye 后面的飞船概念命名都为eye
我将子弹图片设置为这个,命名为fire,后面子弹的概念命名都为fire
设置模块
settings.py#储存相关设置的模块 class Settings: def __init__(self): #设置屏幕参数 self.screen_width = 1400 self.screen_height = 750 self.bg_color = (200,200,200) #设置眼的参数 self.eye_speed_factor = 1.5 #设置关于火的参数 self.fire_speed_factor = 2.5 #此游戏不限制子弹数量

eye.py

#创建一个关于眼的模块
import pygame
class Eye:
    def __init__(self,settings,screen):
        #初始化眼
        self.setting = settings
        self.screen = screen
        #返回飞船贴图路径
        self.image = pygame.image.load("image/eye.png")
        #矩形化屏幕和眼贴图
        self.screen_rect = self.screen.get_rect()
        self.rect = self.image.get_rect()
        #以屏幕为参照设置眼的初始位置(屏幕右边界中央)
        self.rect.right = self.screen_rect.right
        self.rect.centery = self.screen_rect.centery
        #用属性x和y来储存浮点化后的坐标
        self.x = float(self.rect.right)
        self.y = float(self.rect.centery)
        #设置眼上下左右移动的标志
        self.moving_right = False
        self.moving_left = False
        self.moving_down = False
        self.moving_up = False
    #创建一个函数用于传输图像
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值