python还原游戏之植物大战僵尸,来看看这是不是你的童年~

导语:

哈喽,哈喽~植物大战僵尸的人气可谓是经久不衰,晃着脑袋生产阳光的向日葵,突突突⚾⚾⚾吐着子弹的豌豆射手!​行动迟缓种类丰富的僵尸……印象最深的是“僵尸吃掉了你的脑子!”还有疯狂的戴夫,无一不唤醒着我们的童年记忆​。下面用python还原你的记忆中的童年!

功能实现如下:

  • 支持的植物类型:太阳花,豌豆射手,坚果。

  • 支持的僵尸类型:普通僵尸,棋子僵尸,路障僵尸,铁桶僵尸。

  • 使用json文件保存关卡信息,设置僵尸出现的时间和位置。

  • 增加每关开始时选择上场植物。

植物大战僵尸

对源代码,python感兴趣的小伙伴能点击这行字体哦!

一、配置图片地址

import pygame
from pygame.locals import *
import sys
import os
# 初始化
pygame.init()

# 背景大小设置
bg_size = (1200, 600)

# 设置屏幕背景大小
screen = pygame.display.set_mode(bg_size)

#设置屏幕标题
pygame.display.set_caption("植物大战僵尸")

# 设置图片路径
# rootpath = os.getcwd()
# imgpath = os.path.join(rootpath,background_path)
background_path = "material/images/background1.jpg"
sun_path = "material/images/SunBack.png"

# 加载背景图片
backgrounImg = pygame.image.load(background_path).convert()
sunImg = pygame.image.load(sun_path).convert()

# 设置文本
myfont = pygame.font.SysFont("arial",20)
txtImg = myfont.render("50",True,(255,255,0))

while True:
         # 启动消息队列,获取消息并处理
    for event in pygame.event.get():
        if event.type == QUIT:
            sys.exit()

            # 绘制背景
        screen.blit(backgrounImg, (0, 0))
        # 绘制顶部太阳数量栏
        screen.blit(sunImg, (250, 0))
        screen.blit(txtImg,(320,6))
    pygame.display.update()

二、向日葵类

class Sunflower(Plant):
    def __init__(self,x,y):
        super(Sunflower, self).__init__()
        self.image = pygame.image.load('imgs/sunflower.png')
        self.rect = self.image.get_rect()
        self.rect.x = x
        self.rect.y = y
        self.price = 50
        self.hp = 100
        # 时间计数器
        self.time_count = 0

    # 新增功能:生成阳光
    def produce_money(self):
        self.time_count += 1
        if self.time_count == 25:
            MainGame.money += 5
            self.time_count = 0
    # 向日葵加入到窗口中
    def display_sunflower(self):
        MainGame.window.blit(self.image,self.rect)

三、豌豆射手类

# 豌豆射手类
class PeaShooter(Plant):
    def __init__(self,x,y):
        super(PeaShooter, self).__init__()
        # self.image 为一个 surface
        self.image = pygame.image.load('imgs/peashooter.png')
        self.rect = self.image.get_rect()
        self.rect.x = x
        self.rect.y = y
        self.price = 50
        self.hp = 200
        # 发射计数器
        self.shot_count = 0

    # 增加射击方法
    def shot(self):
        # 记录是否应该射击
        should_fire = False
        for zombie in MainGame.zombie_list:
            if zombie.rect.y == self.rect.y and zombie.rect.x < 800 and zombie.rect.x > self.rect.x:
                should_fire = True
        # 如果活着
        if self.live and should_fire:
            self.shot_count += 1
            # 计数器到25发射一次
            if self.shot_count == 25:
                # 基于当前豌豆射手的位置,创建子弹
                peabullet &
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
抱歉,由于时间和篇幅限制,我无法在此为您提供完整的植物大战僵尸游戏Python代码。不过,我可以为您提供一些指导和建议,帮助您开始自己的植物大战僵尸游戏编写之旅。 首先,您需要选择一个图形界面库来创建游戏界面。Pygame是一个很流行的选择,它提供了许多游戏开发所需的功能,例如绘制图形、处理用户输入等等。 接下来,您需要设计游戏场景和角色。植物大战僵尸游戏有两个主要的角色:植物和僵尸。您需要为每个角色创建一个类,包括其属性(例如生命值、攻击力等)和行为(例如攻击、移动等)。您也需要为游戏场景创建一个类,包括其大小、背景图像等。 然后,您需要编写游戏逻辑和交互。例如,当用户点击一个植物并将其拖放到游戏场景中时,游戏应该创建一个新的植物对象,并将其放置在指定位置。当用户点击“开始战斗”按钮时,游戏应该开始运行,僵尸应该开始向植物移动并攻击它们。您还需要处理用户输入(例如点击、拖放等)以及游戏中各种事件的发生(例如植物死亡、游戏结束等)。 最后,您需要添加音效和动画,使游戏更加生动。您可以使用Pygame的内置音效和动画功能,或者使用第三方库来实现更高级的效果。 总之,编写一个完整的植物大战僵尸游戏需要一定的时间和精力。但是,通过掌握Python编程技巧和利用现有的工具和资源,您可以创建一个非常有趣和富有挑战性的游戏。祝您好运!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值