首页 > 其他分享 >pycharm小游戏飞机射击

pycharm小游戏飞机射击

时间:2024-10-30 22:44:42浏览次数:7  
标签:enemy bullet list plane 小游戏 射击 pycharm rect pygame

导入pygame模块

下载成功

 

 图片略显粗糙

 

 

python
 复制
import pygame
import random

# 初始化 pygame
pygame.init()

# 屏幕大小
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

# 颜色
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
GREEN = (0, 255, 0)
RED = (255, 0, 0)

# 飞机速度
PLANE_SPEED = 5

# 子弹速度
BULLET_SPEED = 10

# 敌机速度
ENEMY_SPEED = 3

# 初始化屏幕
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("飞机射击游戏")

# 游戏时钟
clock = pygame.time.Clock()

# 加载飞机图片
plane_image = pygame.image.load("plane.png")
plane_rect = plane_image.get_rect()
plane_rect.x = (SCREEN_WIDTH - plane_rect.width) / 2
plane_rect.y = SCREEN_HEIGHT - plane_rect.height

# 加载子弹图片
bullet_image = pygame.image.load("bullet.png")
bullet_list = []

# 敌机列表
enemy_list = []

# 得分
score = 0

# 游戏结束标志
game_over = False

# 生成敌机函数
def generate_enemy():
    enemy_image = pygame.image.load("enemy.png")
    enemy_rect = enemy_image.get_rect()
    enemy_rect.x = random.randint(0, SCREEN_WIDTH - enemy_rect.width)
    enemy_rect.y = -enemy_rect.height
    enemy_list.append([enemy_image, enemy_rect])

# 游戏主循环
while not game_over:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            game_over = True

    keys_pressed = pygame.key.get_pressed()
    if keys_pressed[pygame.K_LEFT] and plane_rect.x > 0:
        plane_rect.x -= PLANE_SPEED
    if keys_pressed[pygame.K_RIGHT] and plane_rect.x < SCREEN_WIDTH - plane_rect.width:
        plane_rect.x += PLANE_SPEED
    if keys_pressed[pygame.K_SPACE]:
        bullet_rect = bullet_image.get_rect()
        bullet_rect.x = plane_rect.x + plane_rect.width / 2 - bullet_rect.width / 2
        bullet_rect.y = plane_rect.y
        bullet_list.append([bullet_image, bullet_rect])

    # 移动子弹
    for bullet in bullet_list:
        bullet[1].y -= BULLET_SPEED
        if bullet[1].y < 0:
            bullet_list.remove(bullet)

    # 移动敌机
    for enemy in enemy_list:
        enemy[1].y += ENEMY_SPEED
        if enemy[1].y > SCREEN_HEIGHT:
            enemy_list.remove(enemy)

        # 检测子弹与敌机的碰撞
        for bullet in bullet_list:
            if enemy[1].colliderect(bullet[1]):
                enemy_list.remove(enemy)
                bullet_list.remove(bullet)
                score += 10

        # 检测敌机与飞机的碰撞
        if plane_rect.colliderect(enemy[1]):
            game_over = True

    # 生成敌机
    if random.randint(0, 100) < 5:
        generate_enemy()

    # 绘制背景
    screen.fill(BLACK)

    # 绘制飞机
    screen.blit(plane_image, plane_rect)

    # 绘制子弹
    for bullet in bullet_list:
        screen.blit(bullet[0], bullet[1])

    # 绘制敌机
    for enemy in enemy_list:
        screen.blit(enemy[0], enemy[1])

    # 显示得分
    font = pygame.font.SysFont(None, 36)
    text = font.render("Score: " + str(score), 1, WHITE)
    screen.blit(text, (10, 10))

    # 刷新屏幕
    pygame.display.flip()

    # 控制游戏帧率
    clock.tick(60)

# 退出游戏
pygame.quit()

请注意,上述代码中需要您准备飞机、子弹和敌机的图片,并将文件名修改为代码中的相应名称。这个游戏实现了飞机的控制、子弹的发射、敌机的生成和碰撞检测等功能。

标签:enemy,bullet,list,plane,小游戏,射击,pycharm,rect,pygame
From: https://blog.csdn.net/2301_76617986/article/details/143377141

相关文章

  • 2024最新PyCharm安装教程(超详细)
    一、Pycharm下载安装在安装pycharm之前,确保你的电脑配置好了pythonpycharm windows版本下载地址:点击这里注意:由于下载速度较慢,我贴心的将下载好的安装包安排好了,可以直接进行安装获取方法:点击这里​​下载完安装包后,打开安装包​​点击下一步​​在电脑磁盘里提前......
  • Pycharm如何拉取gitlab代码及提交代码
    一、区分gitlab和github1.首先要区分gitlab和github是不一样的,不共用一个账号二、拉取gitlab代码1.Git克隆gitlab上的代码到Pycharm2.注意:此时拉取的代码是master上面的代码,即拉取远程master的代码到本地master分支3.在本地master分支更新下,拉取最新的代码4.打开自己的......
  • 微信小游戏一键跳广G工具
    天再给各位铁子分享一个小游戏跳GG的工具咱今天分享的这款跳GG的小工具使用非常非常简单,几十秒的GG瞬间就木有了,总之就是一个字----爽~!首先打开这个小工具,小工具就十几个M。点击启动就行,剩下你就不需要管了:然后进入微信小程序找你要玩的小游戏,玩的过程中不管你是要增加复......
  • 零基础学C 之 用C做扫雷小游戏
    这两天学习了如何用C语言做扫雷小游戏,具体过程及实现思路请看下方代码。(已完成递归排查雷功能,但标记雷和取消标记雷、标记后显示雷的个数这两个功能还没做,到时候做完再进行更新。)递归思路:首先将单个坐标的周围地雷的地雷信息传给一个3*3的数组,我们先称其为方阵,方阵中......
  • Pycharm专业版远程连接服务器训练模型以及注意事项
    本文主要讲解租用AutoDL远程服务器、Pycharm远程连接服务器、上传代码、模型训练以及注意事项。第一次租用后,会发现这个过程很简单,希望帮到你!多余的话没有,跟着步骤来就可以啦!(*^▽^*)导航    1.租用服务器    2.Pycharm远程连接    3.上传代码  ......
  • ubuntu环境安装街机风格的太空飞船游戏(2D飞机射击游戏)游戏——Chromium_B.S.U.
    相关:https://en.wikipedia.org/wiki/Chromium_B.S.U.https://manpages.ubuntu.com/manpages/focal/en/man6/chromium-bsu.6.htmlhttps://launchpad.net/ubuntu/+source/chromium-bsu今天突然发现原来在ubuntu系统下面可以快速简单的安装《雷电》(街机风格的太空飞船游戏)游......
  • Python小游戏13——植物大战僵尸
    代码 importrandomimporttime #植物类classPlant:  def__init__(self,name,health):    self.name=name    self.health=health   defis_alive(self):    returnself.health>0 #僵尸类classZombie: ......
  • Python小游戏14——雷霆战机
     首先,你需要确保安装了Pygame库。如果你还没有安装,可以使用pip来安装: bashpipinstallpygame代码如下:pythonimportpygameimportsysimportrandom #初始化Pygamepygame.init() #设置屏幕大小screen_width=800screen_height=600screen=pygam......
  • 【2024版】PyCharm专业版下载+安装+汉化教程,Pycharm环境配置和使用指南,零基础小白Pyth
    前言PyCharm是一款由JetBrains公司推出的PythonIDE。它提供了一个简单易用的图形用户界面,并且具有很多有用的功能,如代码补全和自动代码检查,帮助开发人员更加高效地编写Python代码。此外,PyCharm还提供了调试器和版本控制系统集成,使得开发人员能够更加轻松地管理和维护他们的......
  • <地牢逃逸>小游戏隐私协议
    <地牢逃逸>小游戏隐私协议欢迎您使用<臣妾要告发熹贵妃工作室>开发的<地牢逃逸>小游戏!在使用本游戏之前,请您仔细阅读以下隐私协议。个人信息的收集与使用1为了提供更好的游戏体验和服务,我们可能会收集一些您的个人信息,例如您的设备标识符、操作系统版本、游戏进度等。2我们承......