精华内容
下载资源
问答
  • 外星人入侵游戏-源码

    2021-02-18 10:14:51
    外星人入侵游戏
  • Python小游戏源码-外星人入侵游戏源码
  • 主要为大家详细介绍了Python外星人入侵游戏编程完整的实现思路,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • PYTHON游戏编程外星人入侵的完整实现思路,具体内容如下准备工作:下载python,比如Anaconda3(64 bit),导入pygame游戏包1.外星人设置,alien.py,代码:import pygamefrom pygame.sprite import Spriteclass ...

    PYTHON游戏编程外星人入侵的完整实现思路,具体内容如下

    准备工作:下载python,比如Anaconda3(64 bit),导入pygame游戏包

    201704181156515.png

    201704181156516.png

    201704181156517.png

    201704181156518.png

    201704181156529.png

    1.外星人设置,alien.py,代码:

    import pygame

    from pygame.sprite import Sprite

    class Alien(Sprite):

    """表示单个外星人的类"""

    def __init__(self,ai_settings,screen):

    """初始化外星人并设置其他位置"""

    super(Alien,self).__init__()

    self.screen = screen

    self.ai_settings = ai_settings

    #加载外星人图像,并设置其rect属性

    self.image = pygame.image.load('images/alien.bmp')

    self.rect = self.image.get_rect()

    #每个外星人最初都在屏幕左上角附近

    self.rect.x = self.rect.width

    self.rect.y = self.rect.height

    #存储外星人的准确位置

    self.x = float(self.rect.x)

    def blitme(self):

    """在指定位置绘制外星人"""

    self.screen.blit(self.image,self.rect)

    def check_edges(self):

    """如果外星人位于屏幕边缘,就返回True"""

    screen_rect = self.screen.get_rect()

    if self.rect.right >= screen_rect.right:

    return True

    elif self.rect.left <= 0:

    return True

    def update(self):

    """向右移动外星人"""

    self.x += (self.ai_settings.alien_speed_factor * self.ai_settings.fleet_direction)

    self.rect.x = self.x

    2.游戏主程序,alien_invasion.py,代码:

    import pygame

    from settings import Settings

    from game_stats import GameStats

    from button import Button

    from ship import Ship

    from pygame.sprite import Group

    import game_functions as gf

    from scoreboard import Scoreboard

    def run_game():

    pygame.init() # 初始化背景设置

    ai_settings = Settings() # 全局设置

    screen = pygame.display.set_mode( # 创建screen显示窗口

    (ai_settings.screen_width,ai_settings.screen_height)

    )

    pygame.display.set_caption('Alien Invasion') # 标题

    #新建Play按钮

    play_button = Button(ai_settings,screen,"Play")

    #创建一个用于存储游戏统计信息的实例,并创建记分牌

    stats = GameStats(ai_settings)

    sb = Scoreboard(ai_settings, screen, stats)

    # 创建飞船

    ship = Ship(ai_settings,screen)

    # 创建子弹编组

    bullets = Group()

    #创建一个外星人

    aliens = Group()

    #创建外星人群

    gf.create_fleet(ai_settings,screen,ship,aliens)

    # 开始游戏主循环

    while True:

    # 监视键盘和鼠标事件

    gf.check_events(ai_settings,screen,stats,sb,play_button,ship,aliens,bullets)

    if stats.game_active:

    # 移动飞船

    gf.update_ship(ship)

    # 更新子弹位置

    gf.update_bullets(ai_settings,screen,stats,sb,ship,aliens,bullets)

    #更新外星人

    gf.update_aliens(ai_settings,stats,screen,sb,ship,aliens,bullets)

    # 更新屏幕

    gf.update_screen(ai_settings,screen,stats,sb,ship,aliens,bullets,play_button)

    run_game()

    3.设置子弹,bullet.py,代码:

    import pygame

    from pygame.sprite import Sprite

    import time

    class Bullet(Sprite):

    '''飞船子弹进行管理'''

    def __init__(self,ai_settings,screen,ship):

    super(Bullet,self).__init__()

    self.screen = screen

    # 创建子弹矩形初始位置(0,0,3,15)分别对应lef,top,宽,高

    self.rect = pygame.Rect(0,0,

    ai_settings.bullet_width, ai_settings.bullet_height)

    self.rect.centerx = ship.rect.centerx # 设置中心点x轴坐标跟飞船一致

    self.rect.top = ship.rect.top # 设置y轴坐标顶部跟飞船一致

    # 设置成小数进行计算

    self.top = float(self.rect.top)

    self.color = ai_settings.bullet_color

    self.speed_factor = ai_settings.bullet_speed_factor

    def update(self):

    self.top -=self.speed_factor

    self.rect.top = self.top

    print(self.rect.top)

    def draw_bullet(self):

    pygame.draw.rect(self.screen,self.color,self.rect)

    4.设置Play按钮,button.py,代码:

    import pygame.font

    class Button():

    def __init__(self,ai_settings,screen,msg):

    """初始化按钮属性"""

    self.screen = screen

    self.screen_rect = screen.get_rect()

    #设置按钮的尺寸和其他属性

    self.width,self.height = 200,50

    self.button_color = (0,255,0)

    self.text_color = (255,255,255)

    self.font = pygame.font.SysFont(None,48)

    #创建按钮的rect对象,并使其居中

    self.rect = pygame.Rect(0,0,self.width,self.height)

    self.rect.center = self.screen_rect.center

    #按钮的标签只需创建一次

    self.prep_msg(msg)

    def prep_msg(self,msg):

    """将msg渲染为图像,并使其在按钮上居中"""

    self.msg_image = self.font.render(msg,True,self.text_color,self.button_color)

    self.msg_image_rect = self.msg_image.get_rect()

    self.msg_image_rect.center =self.rect.center

    def draw_button(self):

    #绘制一个用颜色填充的按钮,再绘制文本

    self.screen.fill(self.button_color,self.rect)

    self.screen.blit(self.msg_image,self.msg_image_rect)

    5.设置游戏功能,game_functions.py,代码:

    import sys

    import pygame

    from bullet import Bullet

    from alien import Alien

    from time import sleep

    def check_events(ai_settings,screen,stats,sb,play_button,ship,aliens,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)

    elif event.type == pygame.MOUSEBUTTONDOWN:

    mouse_x, mouse_y = pygame.mouse.get_pos()

    check_play_button(ai_settings,screen,stats,sb,play_button,ship,aliens,bullets,mouse_x, mouse_y)

    def check_play_button(ai_settings,screen,stats,sb,play_button,ship,aliens,bullets,mouse_x, mouse_y):

    """在玩家单击Play按钮时开始游戏"""

    button_clicked = play_button.rect.collidepoint(mouse_x,mouse_y)

    if button_clicked and not stats.game_active:

    #重置游戏设置

    ai_settings.initialize_dynamic_settings()

    #隐藏光标

    pygame.mouse.set_visible(False)

    #重置游戏统计信息

    stats.reset_stats()

    stats.game_active = True

    #重置计分牌图像

    sb.prep_score()

    sb.prep_high_score()

    sb.prep_level()

    sb.prep_ships()

    #清空外星人列表和子弹列表

    aliens.empty()

    bullets.empty()

    #创建一群新的外星人,并让飞船居中

    create_fleet(ai_settings,screen,ship,aliens)

    ship.center_ship()

    def update_screen(ai_settings,screen,stats,sb,ship,aliens,bullets,play_button):

    '''更新屏幕上的图片,并切换到新屏幕'''

    screen.fill(ai_settings.bg_color) # 设置背景颜色

    ship.blitme() # 绘制飞船

    aliens.draw(screen)

    # 循环子弹组里面的元素,进行绘制 为空时不执行

    for bullet in bullets.sprites():

    bullet.draw_bullet() # 绘制子弹

    #显示得分

    sb.show_score()

    #如果游戏处于非活跃状态,就显示Play按钮

    if not stats.game_active:

    play_button.draw_button()

    # 显示最新屏幕,擦拭旧屏幕

    pygame.display.flip()

    # print('1')

    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 update_bullets(ai_settings,screen,stats,sb,ship,aliens,bullets):

    '''更新子弹位置,删除子弹'''

    bullets.update() # 子弹组每个成员执行self.update()操作

    for bullet in bullets.sprites():

    if bullet.rect.bottom <= 0: # 子弹出界 删除

    bullets.remove(bullet)

    check_bullet_alien_collisions(ai_settings,screen,stats,sb,ship,aliens,bullets)

    def check_bullet_alien_collisions(ai_settings,screen,stats,sb,ship,aliens,bullets):

    """响应外星人和子弹的碰撞"""

    #删除发生碰撞的子弹和外星人

    collisions = pygame.sprite.groupcollide(bullets,aliens,True,True)

    if collisions:

    for aliens in collisions.values():

    stats.score += ai_settings.alien_points * len(aliens)

    sb.prep_score()

    check_high_score(stats,sb)

    if len(aliens)==0:

    #删除现有的子弹并新建一群外星人,加快游戏进度节奏

    bullets.empty()

    ai_settings.increase_speed()

    #提高等级

    stats.level += 1

    sb.prep_level()

    create_fleet(ai_settings,screen,ship,aliens)

    def update_ship(ship):

    ship.update()

    def fire_bullet(ai_settings,screen,ship,bullets):

    # 创建一个子弹对象 加入到子弹组

    if len(bullets) < ai_settings.bullets_allowed: # 子弹少于允许值时再生成

    new_bullet = Bullet(ai_settings, screen, ship)

    bullets.add(new_bullet)

    def get_number_aliens_x(ai_settings,alien_width):

    """计算每行可容纳多少个外星人"""

    available_space_x = ai_settings.screen_width - 2 * alien_width

    number_aliens_x = int(available_space_x / (2 * alien_width))

    return number_aliens_x

    def get_number_rows(ai_settings,ship_height,alien_height):

    """计算屏幕可容纳多少行外星人"""

    available_space_y = (ai_settings.screen_height - (3 * alien_height) - ship_height)

    number_rows = int(available_space_y / (2 * alien_height))

    return number_rows

    def create_aliens(ai_settings,screen,aliens,alien_number,row_number):

    """创建一个外星人并将其放在当期行"""

    alien = Alien(ai_settings,screen)

    alien_width = alien.rect.width

    alien.x = alien_width + 2 * alien_width * alien_number

    alien.rect.x = alien.x

    alien.rect.y = alien.rect.height + 2 * alien.rect.height * row_number

    aliens.add(alien)

    def create_fleet(ai_settings,screen,ship,aliens):

    """创建外星人群"""

    #创建一个外星人,并计算一行可以容纳多少个外星人

    #外星人间距为外星人宽度

    alien = Alien(ai_settings,screen)

    number_aliens_x = get_number_aliens_x(ai_settings,alien.rect.width)

    number_rows = get_number_rows(ai_settings,ship.rect.height,alien.rect.height)

    #创建第一行外星人

    for row_number in range(number_rows):

    for alien_number in range(number_aliens_x):

    #创建一个外星人并将其加入当前行

    create_aliens(ai_settings,screen,aliens,alien_number,row_number)

    def check_fleet_edges(ai_settings,aliens):

    """有外星人到达边缘时采取相应措施"""

    for alien in aliens.sprites():

    if alien.check_edges():

    change_fleet_direction(ai_settings,aliens)

    break

    def change_fleet_direction(ai_settings,aliens):

    """将整群外星人下移,并改变他们的运动方向"""

    for alien in aliens.sprites():

    alien.rect.y += ai_settings.fleet_drop_speed

    ai_settings.fleet_direction *= -1

    def ship_hit(ai_settings,stats,screen,sb,ship,aliens,bullets):

    """响应被外星人撞到的飞船"""

    if stats.ships_left > 0:

    #将ship_left减1

    stats.ships_left -= 1

    #更新记分牌

    sb.prep_ships()

    #清空外星人列表和子弹列表

    aliens.empty()

    bullets.empty()

    #创建一群新的外星人,并将飞船放到屏幕低端中央

    create_fleet(ai_settings,screen,ship,aliens)

    ship.center_ship()

    #暂停

    sleep(0.5)

    else:

    stats.game_active = False

    pygame.mouse.set_visible(True)

    def check_aliens_bottom(ai_settings,stats,screen,sb,ship,aliens,bullets):

    """检查是否有外星人到达屏幕低端"""

    screen_rect = screen.get_rect()

    for alien in aliens.sprites():

    if alien.rect.bottom >= screen_rect.bottom:

    #像飞船被撞到一样进行处理

    ship_hit(ai_settings,stats,screen,sb,ship,aliens,bullets)

    break

    def update_aliens(ai_settings,stats,screen,sb,ship,aliens,bullets):

    """更新外星人群中所有外星人的位置"""

    check_fleet_edges(ai_settings,aliens)

    aliens.update()

    #检测外星人和飞船之间的碰撞

    if pygame.sprite.spritecollideany(ship,aliens):

    ship_hit(ai_settings,stats,screen,sb,ship,aliens,bullets)

    #检查是否有外星人到达屏幕低端

    check_aliens_bottom(ai_settings,stats,screen,sb,ship,aliens,bullets)

    def check_high_score(stats,sb):

    """检查是否诞生了新的最高纪录"""

    if stats.score > stats.high_score:

    stats.high_score = stats.score

    sb.prep_high_score()

    6.游戏统计信息,game_stats.py,代码:

    class GameStats():

    """跟踪游戏的统计信息"""

    def __init__(self,ai_settings):

    """初始化统计信息"""

    self.ai_settings = ai_settings

    self.reset_stats()

    #游戏刚启动时处于非活动状态

    self.game_active = False

    #在任何情况下不应该重置最高分

    self.high_score = 0

    self.level = 1

    def reset_stats(self):

    """初始化在游戏运行期间可能变化的统计信息"""

    self.ships_left = self.ai_settings.ship_limit

    self.score = 0

    7.分数设置,scoreboard.py,代码:

    import pygame.font

    from pygame.sprite import Group

    from ship import Ship

    class Scoreboard():

    """显示得分信息的类"""

    def __init__(self, ai_settings, screen, stats):

    """初始化显示得分涉及的属性"""

    self.screen =screen

    self.screen_rect = screen.get_rect()

    self.ai_settings = ai_settings

    self.stats = stats

    #显示得分信息时使用的字体设置

    self.text_color = (30, 30, 30)

    self.font = pygame.font.SysFont(None, 48)

    #准备初始化得分图像和当前最高分数

    self.prep_score()

    self.prep_high_score()

    self.prep_level()

    self.prep_ships()

    def prep_score(self):

    """将得分转换为一幅渲染的图像"""

    rounded_score = int(round(self.stats.score, -1))

    score_str = "{:,}".format(rounded_score)

    self.score_image = self.font.render(score_str, True, self.text_color, self.ai_settings.bg_color)

    #将得分放在右上角

    self.score_rect = self.score_image.get_rect()

    self.score_rect.right = self.screen_rect.right - 20

    self.score_rect.top = 5

    def prep_high_score(self):

    """将最高得分转换为渲染图像"""

    high_score = int(round(self.stats.high_score, -1))

    high_score_str = "{:,}".format(high_score)

    self.high_score_image = self.font.render(high_score_str, True, self.text_color, self.ai_settings.bg_color)

    #将最高分放在屏幕最中央

    self.high_score_rect = self.high_score_image.get_rect()

    self.high_score_rect.centerx = self.screen_rect.centerx

    self.high_score_rect.top = 5

    def prep_level(self):

    """将等级转换为渲染图像"""

    self.level_image = self.font.render(str(self.stats.level), True, self.text_color, self.ai_settings.bg_color)

    #将得分放在右上角

    self.level_rect = self.score_image.get_rect()

    self.level_rect.right = self.screen_rect.right

    self.level_rect.top = self.score_rect.bottom

    def prep_ships(self):

    """显示还剩下多少艘飞船"""

    self.ships = Group()

    for ship_number in range(self.stats.ships_left):

    ship = Ship(self.ai_settings, self.screen)

    ship.rect.x = 10 + ship_number * ship.rect.width

    ship.rect.y = 10

    self.ships.add(ship)

    def show_score(self):

    """在屏幕上显示得分和等级"""

    self.screen.blit(self.score_image, self.score_rect)

    self.screen.blit(self.high_score_image, self.high_score_rect)

    self.screen.blit(self.level_image, self.level_rect)

    #绘制飞船

    self.ships.draw(self.screen)

    8.设置,settings.py,代码:

    class Settings():

    '''存储外星人入侵中所有的设置'''

    def __init__(self):

    '''初始化设置'''

    #屏幕设置

    self.screen_width = 1200

    self.screen_height = 600

    self.bg_color = (230,230,230) # 设置背景色 灰色

    #飞船设置

    self.ship_limit = 3

    self.ship_image_path = 'images/ship.bmp' # 飞船图片路径

    #子弹设置

    self.bullet_width = 3

    self.bullet_height = 15

    self.bullet_color = 60,60,60

    self.bullets_allowed = 3 # 允许屏幕中出现子弹的数量

    #外星人设置

    self.fleet_drop_speed = 10

    #以什么样的速度加快游戏节奏

    self.speedup_scale = 1.1

    #外星人点数提高速度

    self.score_scale = 1.5

    self.initialize_dynamic_settings()

    def initialize_dynamic_settings(self):

    """初始化随游戏进行而变化的设置"""

    self.ship_speed_factor = 1.5

    self.bullet_speed_factor = 3

    self.alien_speed_factor = 1

    #fleet_direction为1表示向右移,为-1表示向左移

    self.fleet_direction = 1

    #计分

    self.alien_points = 50

    def increase_speed(self):

    """提高速度设置,外星人点数"""

    self.ship_speed_factor *= self.speedup_scale

    self.bullet_speed_factor *= self.speedup_scale

    self.alien_speed_factor *= self.speedup_scale

    self.alien_points = int(self.alien_points * self.score_scale)

    print(self.alien_points)

    9.飞船设置,ship.py,代码:

    import pygame

    from pygame.sprite import Sprite

    class Ship(Sprite):

    '''飞船所有信息'''

    def __init__(self,ai_settings,screen):

    """初始化飞船,并设置其起始位置"""

    super(Ship,self).__init__()

    self.screen=screen

    self.ai_settings = ai_settings

    # 加载飞船图片、获取外接矩形

    self.image = pygame.image.load(self.ai_settings.ship_image_path) # 加载图片

    self.image = pygame.transform.smoothscale(self.image,(40,60))

    self.rect = self.image.get_rect() # 获取图片外接矩形

    self.screen_rect = screen.get_rect() #获取屏幕外接矩形

    # 将每搜新飞船放到并木底部中心

    self.rect.centerx = self.screen_rect.centerx

    self.rect.bottom = self.screen_rect.bottom

    # 设置成浮点类型

    self.center = float(self.rect.centerx) # self.rect.centerx设置不了浮点数 只能另设置一个变量进行运算

    # 移动标志

    self.moving_right = False

    self.moving_left = False

    def blitme(self):

    '''在指定位置绘制飞船'''

    self.screen.blit(self.image,self.rect)

    def update(self):

    # 向右移动飞船

    if self.moving_right and self.rect.right < self.screen_rect.right:

    self.center +=self.ai_settings.ship_speed_factor

    # 向左移动飞船

    if self.moving_left and self.rect.left > self.screen_rect.left:

    self.center -= self.ai_settings.ship_speed_factor

    self.rect.centerx = self.center

    def center_ship(self):

    """让飞船在屏幕上居中"""

    self.center = self.screen_rect.centerx

    效果展示:

    2017041811565210.png

    游戏资源:图片资源

    2017418120021325.jpg

    2017418120046186.jpg

    更多关于python游戏的精彩文章请点击查看以下专题:

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • 外星人入侵 这是Python Crash Course中的Python游戏项目。 关于该项目 建于 Python Python-PyGame 过程和我学到的东西 流程 我从Python Crash Course开始学习Python,这是一本很棒的书,其中包含许多教程和实践。 这...
  • 外星人入侵 这是外星人入侵游戏
  • Alien_invasion:外星人入侵游戏
  • Python外星人入侵游戏编程完整版--附源码
  • 我在学着编写《python编程基础从入门到实践》的“外星人入侵游戏”的时候,报错如下:Traceback (most recent call last):File "D:/aline_invasion/aline_invasion.py", line 48, in run_game()File "D:/aline_...

    da9c4bf7885d01d872303cf2c73f7516?w=600&

    我在学着编写《python编程基础从入门到实践》的“外星人入侵游戏”的时候,报错如下:

    Traceback (most recent call last):

    File "D:/aline_invasion/aline_invasion.py", line 48, in

    run_game()

    File "D:/aline_invasion/aline_invasion.py", line 44, in run_game

    gf.update_aliens(ai_settings,stats,ship,screen,aliens,bullets)

    File "D:\aline_invasion\game_functions.py", line 165, in update_aliens

    if pygame.sprite.spritecollideany(ship,aliens):

    File "D:\pythoncode\l_one\venv\lib\site-packages\pygame\sprite.py", line 1586, in spritecollideany

    spritecollide = sprite.rect.colliderect

    AttributeError: 'pygame.Surface' object has no attribute 'rect'

    不知有高手能否指教一下否?查不出原因。

    展开全文
  • Python外外星星人人入入侵侵游游戏戏编编程程完完整整版版 这篇文章主要为大家详细介绍了Python外星人入侵游戏编程完整的实现思路文中示例代码介绍的非常详细具 有一 的参考价值感兴趣的小伙伴们可以参考一下 PYTHON...
  • 原博文2019-02-26 21:28 −https://github.com/ehmatthes/pcc/tree/master/chapter_12/images ...0538相关推荐2019-09-28 21:13 −Python python是一种跨平台的计算机程序设计语言,是一种面向对象的动态类型语言。...

    原博文

    2019-02-26 21:28 −

    https://github.com/ehmatthes/pcc/tree/master/chapter_12/images ...

    comment.png

    0

    attention.png

    538

    相关推荐

    2019-09-28 21:13 −

    Python python是一种跨平台的计算机程序设计语言,是一种面向对象的动态类型语言。 最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。(以上摘自百度百科) Python是一种解释型脚本语言,可以应用于以下领域...

    comment.png

    0

    attention.png

    1959

    2019-12-24 19:55 −

    1 Web应用 https://www.cnblogs.com/yuanchenqi/articles/8869302.html2 http协议 https://www.cnblogs.com/yuanchenqi/articles/8875623...

    2019-12-04 22:39 −

    是不是看到题目Python就点进来了。

    其实,只是个蒟蒻......

    不知道学校发了什么疯,现在连普通的信息课都在讲Python,是怕我们消化不了c++吗?

    虽然心里很不甘心,但不得不承认,许多时候(实际上是大部分),Python都比c++更简单。

    原因:

    1.Python不用打头文件(咳咳,纯属个...

    comment.png

    0

    attention.png

    465

    2019-12-06 14:02 −

    学习提纲

    生成指定范围的数值列表,语法格式如下:

    生成一个包括10哥随机数的列表,要求数的范围在10-100之间,代码如下

    import random

    randomnumber = [random.randint(10,100) for i in range(...

    2019-12-18 15:00 −

    保留字:and,as,assert,break,class,continue,

    def,del,elif,else,except,finally,

    forfromFalse,global,if,import,

    in,is,lambda,nonlocal,not...

    comment.png

    0

    attention.png

    181

    2019-12-24 21:14 −

    python-requests

    python-requests

    作用:能够模拟浏览器向服务器发送请求的库

    requests库的主要方法

    方法描述

    requests.request()构造一个请求,支持以下各种方法requests.get()获取html的主要方法requests.head(...

    comment.png

    0

    attention.png

    524

    2019-12-11 17:16 −

    Redis

    redis是一个key-value存储系统。

    赋值:set name alex查看所有key:keys *查看key对应的value:get name只存活2秒钟:set name jack ex 2

    Python操作Redissudo pip install redis

    1、操作模式r...

    2019-11-27 16:55 −

    1.安装

    需要安装得模块名为pyyaml,直接pip install pyyaml

    导入,直接import yaml

    2.yaml文件的格式

    文件格式输出可以是列表,可以是字典,可以嵌套。层级关系用空格区分,切记,不支持tab缩进

    a)键值对形式

    user: admin

    pwd: 123

    ...

    2019-11-23 12:52 −

    # Python3随手记 - [Python3随手记](#python3%e9%9a%8f%e6%89%8b%e8%ae%b0) - [list方法](#list%e6%96%b9%e6%b3%95) - [os](#os) - [imageio](#imageio) - [Python I...

    展开全文
  • python外星人入侵游戏 在《外星人入侵》中,玩家控制出现在屏幕底部中心的一艘火箭飞船。 玩家可以使用箭头键左右移动飞船,并使用空格键射击子弹。 游戏开始时,一群外星人注满了天空,在屏幕上来回移动。 玩家...
  • 创建Pygame窗口以及相应输入:import sysimport pygamedef run_game():#初始化游戏并创建屏幕对象pygame.init() #检查pygame包是否完整screen=pygame.display.set_mode((1200,800))#创建显示窗口pygame.display.set_...

    创建Pygame窗口以及相应输入:

    import sys

    import pygame

    def run_game():

    #初始化游戏并创建屏幕对象

    pygame.init() #检查pygame包是否完整

    screen=pygame.display.set_mode((1200,800))#创建显示窗口

    pygame.display.set_caption("Alien Invasion")

    #开始游戏主循环

    while True:

    #监视鼠标键盘事件

    for event in pygame.event.get():

    if event.type==pygame.QUIT:

    sys.exit()

    #让最近绘制的屏幕可见

    pygame.display.flip()

    run_game()

    pygame.init()方法检查pygame包是否完整。

    pygame.disply.flip()方法让最近绘制的屏幕可见,每次移动游戏的元素时,display.flip()将不断更新屏幕,以显示元素的最新位置。

    设置背景颜色:

    import sys

    import pygame

    def run_game():

    #初始化游戏并创建屏幕对象

    pygame.init()

    screen=pygame.display.set_mode((1200,800))

    pygame.display.set_caption("Alien Invasion")

    #设置屏幕颜色

    bg_color=(230,230,230)

    #开始游戏主循环

    while True:

    #监视鼠标键盘事件

    for event in pygame.event.get():

    if event.type==pygame.QUIT:

    sys.exit()

    #每次循环时都重绘屏幕

    screen.fill(bg_color)

    #让最近绘制的屏幕可见

    pygame.display.flip()

    run_game()

    screen.fill()接受一个颜色参数,并用该颜色填充屏幕。

    创建设置类:

    将游戏中的设置存储在一个地方,让函数调用更加简单。

    Setting类:

    class Setting():

    def __init__(self):

    self.screen_width=1200

    self.screen_height=800

    self.bgcolor=(230,230,230)

    修改后的主程序:

    import sys

    import pygame

    #导入设置类

    from setting import Setting

    def run_game():

    #初始化游戏并创建屏幕对象

    pygame.init()

    ai_setting=Setting()

    screen=pygame.display.set_mode((ai_setting.screen_width,ai_setting.screen_height))

    pygame.display.set_caption("Alien Invasion")

    #开始游戏主循环

    while True:

    #监视鼠标键盘事件

    for event in pygame.event.get():

    if event.type==pygame.QUIT:

    sys.exit()

    #每次循环时都重绘屏幕

    screen.fill(ai_setting.bgcolor)

    #让最近绘制的屏幕可见

    pygame.display.flip()

    run_game()

    标签:游戏,python,screen,外星人,event,pygame,import,屏幕,display

    来源: https://blog.csdn.net/a635648771/article/details/93977402

    展开全文
  • PYTHON游戏编程外星人入侵的完整实现思路,具体内容如下准备工作:下载python,比如Anaconda3(64 bit),导入pygame游戏包1.外星人设置,alien.py,代码:import pygamefrom pygame.sprite import Spriteclass ...
  • 开学自学的python,通过敲代码练习的项目《外星人入侵》。游戏介绍:游戏在玩家每消灭一群向下移动的外星人后,都将玩家的等级提高一个等级;而等级越高,游戏的节奏越快,难度越大我使用的是python 3.7,在Windows...
  • python 外星人入侵游戏

    2020-07-14 09:51:12
    (1)python 外星人入侵游戏 学习总结 以及完整代码 https://blog.csdn.net/weixin_46467641/article/details/106007948 (2)error2-2 知识性错误:循环编写 (alien_invasion外星人群突然直线下降) ...
  • 《Python编程:从入门到实践》第二部分项目1:外星人入侵。小游戏开发自写。对游戏的开始程序进行了优化和重构。添加start_game函数,按P开始游戏,添加了计分板文字,调整外星人在屏幕中的位置。
  • 1 importsys23 importpygame4 from bullet importBullet5 from alien importAlien6 from time importsleep78 defcheck_events(ai_setting, screen, stats, sb, play_button, ship, aliens, bullets):9 """响应按键和...
  • Python外星人入侵游戏——添加飞船和外星人图片

    万次阅读 多人点赞 2018-07-26 15:11:22
    Python外星人入侵游戏是自己在《Python编程从入门到实践》在本书里学到的。本篇主要介绍该游戏中所需要的两个图片。分别为飞船和外星人图片。 1、首先去到 http://www.ituring.com.cn/book/1861 网站,就会看到有关...
  • 属性 说明 移动 ←→ 射击 空格(space) 生命 3 大致流程图 外星人入侵游戏.png 学习计划 每天学习一点不超过30分钟,今天先把环境配置好 安装Pygame 创建文件夹如alien_invasion,用pycharm打开文件夹 注意:...
  • Alien_invasion 基于Python速成课程的外星人入侵游戏
  • stats.score+= ai_settings.alien_points *len(aliens) sb.prep_score() check_high_score(stats,sb)if len(aliens)==0:#删除现有的子弹并新建一群外星人,加快游戏进度节奏 bullets.empty() ai_settings.increase_...
  • 【实例简介】【实例截图】【核心代码】#--coding:utf-8--import pygamefrom pygame.sprite import Spriteclass ...表示单个外星人的类"""def __init__(self,ai_setting,screen):"""...
  • 游戏实战:Python外星人入侵游戏编程完整版!!!源码免费领!.pdf
  • python外星人入侵游戏

    万次阅读 多人点赞 2018-06-25 15:10:50
    本文内容是使用pygame包来开发一款python2D游戏,类似于我们小时候玩的飞机大战,飞船发射子弹biubiubiu~~然后外星人就消灭了,并且每消灭一群外星人后,玩家都将提高一个等级,随着等级提高游戏节奏也会加快。...
  • Python外星人入侵游戏

    2020-05-15 14:54:32
    游戏外星人入侵》中,玩家控制着一艘最初出现在屏幕底部中央的飞船。玩家可以使用箭头键左右移动飞船,还可使用空格键进行射击。游戏开始时,一群外星人出现在天空中,他们在屏幕中向下移动。玩家的任务是射杀...
  • Python项目 外星人入侵游戏

    千次阅读 多人点赞 2020-07-16 12:28:43
    游戏外星人入侵》中,玩家控制着一艘最初出现在屏幕底部中央的飞船。玩家可以使用箭头键左右移动飞船,还可使用空格键进行射击。游戏开始时,一群外星人出现在天空中,他们在屏幕中向下移动。玩家的任务是射杀...
  • 接着上节的继续学习,在本章中,我们将结束游戏外星人入侵》的开发。我们将添加一个Play按钮,用于根据需要启动游戏以及在游戏结束后重启游戏。我们还将修改这个游戏,使其在玩家的等级提高时加快节奏,并实现一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,455
精华内容 982
关键字:

外星人入侵的游戏