import sys
import pygame
from bullet import Bullet
from time import sleep
from alien import Alien
def check_keydown_events(event,ai_settings,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_SPACE:
fire_bullet(ai_settings,screen,ship,bullets)
#添加一个结束游戏的快捷键
elif event.key == pygame.K_q:
sys.exit()
def check_keyup_events(event,ship):
"""响应松开"""
if event.key == pygame.K_RIGHT:
ship.moving_right = False
elif event.key == pygame.K_LEFT:
ship.moving_left = False
def check_events(ai_settings,screen,ship,bullets):
"""响应按键和鼠标事件"""
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
check_keydown_events(event,ai_settings,screen,ship,bullets)
elif event.type == pygame.KEYUP:
check_keyup_events(event,ship)
def update_screen(ai_setting,screen,ship,aliens,bullets):
"""更新屏幕上的图像,并切换到新屏幕"""
#每次循环时都重新绘制
screen.fill(ai_setting.bg_color)
#在飞船和外星人后面重绘所有子弹
for bullet in bullets.sprites():
bullet.draw_bullet()
ship.blitme()
aliens.draw(screen)
#让最新绘制的屏幕可见
pygame.display.flip()
def update_bullets(bullets):
"""更新子弹的位置,并删除已消失的子弹"""
#更新子弹的位置
bullets.update()
#删除已消失的子弹
for bullet in bullets.copy() :
if bullet.rect.bottom <=0:
bullets.remove(bullet)
def fire_bullet(ai_settings,screen,ship,bullets):
"""如果还没有达到限制,就发射一颗子弹"""
##创建一颗子弹,并将其加入到标注bullets中
if len(bullets) < ai_settings.bullets_allowed:
new_bullet = Bullet(ai_settings,screen,ship)
bullets.add(new_bullet)
def create_fleet(ai_settings,screen,aliens):
"""创建外星人群"""
#创建一个外星人,并计算一行可容纳多少个外星人
#外星人间距外星人宽度
alien = Alien(ai_settings,screen)
alien_width = alien.rect.width
available_space_x = ai_settings.screen_width - 2*alien_width
number_aliens_x = int(available_space_x / (2*alien_width))
#创建第一行外星人
for alien_number in range(number_aliens_x):
#创建一个外星人并将其加入前行
alien = Alien(ai_settings,screen)
alien.x = alien_width + 2 * alien_width *alien_number
alien.rect.x = alien.x
aliens.add(alien)
没有合适的资源?快使用搜索试试~ 我知道了~
pytho自带飞机大战python_pygame.zip
共20个文件
pyc:8个
py:8个
bmp:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 18 浏览量
2024-05-12
19:29:34
上传
评论
收藏 33KB ZIP 举报
温馨提示
五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes
资源推荐
资源详情
资源评论
收起资源包目录
pytho自带飞机大战python_pygame.zip (20个子文件)
manualType.properties 10B
python_pygame-master
__init__.py 0B
bullet.py 1KB
ship.py 1KB
alien_invasion.py 939B
alien.py 839B
enemy.py 591B
images
enemy.bmp 5KB
ship.bmp 15KB
settings.py 530B
__pycache__
bullet.cpython-37.pyc 1KB
diren.cpython-37.pyc 804B
a.cpython-37.pyc 127B
settings.cpython-37.pyc 765B
ship.cpython-37.pyc 1KB
game_functions.cpython-37.pyc 2KB
enemy.cpython-37.pyc 804B
alien.cpython-37.pyc 1024B
game_functions.py 3KB
item.pdf 6B
共 20 条
- 1
资源评论
枫蜜柚子茶
- 粉丝: 6696
- 资源: 4871
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功