武汉老站长

 找回密码
 立即注册
点击联系客服
客服QQ: 客服微信:
查看: 400|回复: 50

外星人入侵项目 按住空白即可完全自动发射

[复制链接]

1

主题

1

帖子

-7

积分

限制会员

积分
-7
发表于 2021-10-1 07:28:51 | 显示全部楼层 |阅读模式
外星人入侵项目实现按住空格全自动发射子弹

前言

完全自动实现其实很简单。只要加个计时器就行了。

两个语句都使用。

pygame.time.set_timer

还有

key  _ press=pygame  . key  . get  _ pressed()

if  key  _ press[pygame  . k  _ space]3360

提示:以下是本文正文内容。可以参考以下案例

一、

pygame.time.set_timer

此句用于定时——多少毫秒之后响应一次循环

1.先设置一个常量 FIRE_EVENT  = pygame.USEREVENT

Import  pygame

Class  Settings:

保存游戏《外星人入侵》中设置的所有类“”

#设置发射常数

FIRE_EVENT=pygame。USEREVENT

在这里,这个常数可以放在settings.py中,也可以放在主程序中。为了主节目的简洁易读性。

2.在主程序加入这个定时器

From  settings  import  Settings

Class  AlienInvasion:

\“\”管理游戏资源和行为的类\“\”

Def  __init__(self)
ation">:
        """初始化游戏并创建游戏资源"""
        pygame.init()
        self.settings = Settings()  
        pygame.time.set_timer(Settings.FIRE_EVENT, 250)

我这里设置了250 表示每250毫秒执行一次

二、
key_press = pygame.key.get_pressed()
if key_press[pygame.K_SPACE]:
此语句用于检测按键是否被按下并执行命令

1.先遍历按键事件并写入此代码
def _check_events(self):
        # 监视键盘和鼠标事件。
        for event in pygame.event.get():
            key_press = pygame.key.get_pressed()
            if key_press[pygame.K_SPACE]:

[color=]这种方法不同于event.type == pygame.KEYDOWN要执行循环命令需要加True,Flase开关,它可以持续响应按键被按下的情况

2.设置条件并创建子弹
    def _check_events(self):
        # 监视键盘和鼠标事件。
        for event in pygame.event.get():
            key_press = pygame.key.get_pressed()
            if key_press[pygame.K_SPACE]:
                """创建一颗子弹,并将其加入编组bullets中"""
                if len(self.bullets)  self.settings.bullets_allowed and event.type == Settings.FIRE_EVENT:
                    new_bullet = Bullet(self)  # 引用Bullet类创建子弹赋值给new_bullet
                    self.bullets.add(new_bullet)  # 在sprite中添加子弹

self.settings.bullets_allowed这里我设置的是10 不然根本没有“哒哒哒”的感觉,当然也可以不要这个条件,重要的是event.type == Settings.FIRE_EVENT这个条件,当延迟250毫秒时在运行发射子弹的代码

总结
最后我们来看一下效果

ok,大功告成!感谢您的聆阅,希望对您有所帮助!
回复

使用道具 举报

0

主题

670

帖子

-515

积分

限制会员

积分
-515
发表于 2021-10-1 07:28:51 | 显示全部楼层
不错
回复

使用道具 举报

0

主题

698

帖子

-624

积分

限制会员

积分
-624
发表于 2021-10-1 07:58:11 | 显示全部楼层
支持一下
回复

使用道具 举报

0

主题

665

帖子

-547

积分

限制会员

积分
-547
发表于 2021-10-1 08:23:30 | 显示全部楼层
我是个凑数的。。。
回复

使用道具 举报

0

主题

707

帖子

-566

积分

限制会员

积分
-566
发表于 2021-10-1 08:44:51 | 显示全部楼层
前排支持下
回复

使用道具 举报

0

主题

705

帖子

-598

积分

限制会员

积分
-598
发表于 2021-10-1 09:07:49 | 显示全部楼层
过来看看的
回复

使用道具 举报

0

主题

710

帖子

-594

积分

限制会员

积分
-594
发表于 2021-10-1 10:08:03 | 显示全部楼层
谢谢楼主,共同发展
回复

使用道具 举报

0

主题

674

帖子

-588

积分

限制会员

积分
-588
发表于 2021-10-1 10:36:08 | 显示全部楼层
小手一抖,积分到手!
回复

使用道具 举报

0

主题

680

帖子

-531

积分

限制会员

积分
-531
发表于 2021-10-1 11:08:34 | 显示全部楼层
支持一下
回复

使用道具 举报

0

主题

642

帖子

-547

积分

限制会员

积分
-547
发表于 2021-10-1 11:28:41 | 显示全部楼层
真是 收益 匪浅
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|无图版|手机版|小黑屋|武汉@IT精英团

GMT+8, 2022-6-26 06:27 , Processed in 0.094982 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表