Python外星人入侵代码小测试

这篇博客介绍了在学习Python过程中对外星人入侵游戏进行的改进,包括添加飞船的前进和后退功能,外星人随机生成并自动在屏幕底部刷新的逻辑,以及调整外星人到达屏幕底部后的处理方式,使得游戏更具挑战性和趣味性。
摘要由CSDN通过智能技术生成

Python 外星人入侵代码小测试

最近学习Python期间闲来无事,在Python外星人入侵的代码上尝试一点小测试,增加了飞船前进后退以及外星人随机产生并且在到达底部后刷新的代码,仅供个人娱乐,以下是个人写的一段小程序。

修改部分子函数

game_functions.py

修改飞船前后移动键位

def check_keydown_events(event,asettings,screen,ship,bullets):

    if event.key == pygame.K_RIGHT:
        ship.moving_right = True
    elif event.key == pygame.K_LEFT:
        ship.moving_left = True
    elif event.key == pygame.K_UP:
        ship.moving_up = True
    elif event.key == pygame.K_DOWN:
        ship.moving_down = True
    elif event.key == pygame.K_SPACE:
        fire(asettings, screen, ship, bullets)

增加前进、后退的键位识别。

修改外星人生成位置

def create_alien(asettings,screen,aliens,alien_number,row_number):
    alien.x = alien_width + 2 * alien_width * alien_number
    	替换为
    alien.x = random.randint(0,asettings.screen_width-alien.rect.width)
def create_fleet(asettings,screen,ship,aliens):
    number_aliens_x = 5
    number_rows = 1

外星人位置替换为随机生成的x轴新位置而非原始的固定位置。生成1行5个随机位置的外星人,替换掉原先固定位置的外星人群。

修改外星人越过屏幕底部

def check_aliens_bottom(asettings,stats,screen,ship,aliens,bullets,sb):
    shiphit(asettings,ship,aliens,stats,screen,bullets, sb)
    	替换为
    aliens.empty()

当外星人到达屏幕底部时,不认为发生碰撞而设置编组aliens为空,重新生成新的外星人群。

alien.py

修改外星人y轴位置

def __init__(self,asettings,screen):
    self.y = float(self.rect.y)
def update(self):
    self.x += self.asettings.alienspeedfactor * self.asettings.fleetdirection
    self.rect.x = self.x
    self.y += 0.2* self.asettings.alienspeed
    self.rect.y = self.y

增加外星人初始化y的位置以及y轴方向的位置刷新。

ship.py

修改飞船前后移动位置刷新

def update(self):
    if self.moving_right and self.rect.right < self.screen_rect.right:
        self.center+= self.asettings.shipspeed
    if self.moving_left and self.rect.left >0:
        self.center-= self.asettings.shipspeed
    if self.moving_up and self.center2>self.rect.height/2:
        self.center2-= self.asettings.shipspeed
    if self.moving_down and self.center2<self.asettings.screen_height-self.rect.height/2:
        self.center2+= self.asettings.shipspeed
    self.rect.centerx = self.center
    self.rect.centery = self.center2

增加飞船前进、后退的位置刷新以及y轴不超出屏幕范围的判定条件。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jacker_Adam

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值