制作一款DIY的‘植物大战僵尸’游戏引起了很多人的兴趣。在这里,我将分享一个使用Python语言在PyCharm环境中开发的初始状态版本。这个版本主要应用了pygame库来完成,是一个充满创意和趣味的魔改版本。
文章目录
前言
近期,《植物大战僵尸杂交版》的热度确实高涨,这主要得益于其独特的创意、对经典游戏的致敬与创新,以及玩家社区的积极反馈与传播。《植物大战僵尸杂交版》由B站UP主“潜艇伟伟迷”开发制作,游戏中引入了杂交植物的概念,如豌豆向日葵、火焰花女王等,这些杂交植物结合了多种植物的特性,拥有独特的攻击方式和能力,极大地丰富了游戏的策略性和可玩性。除了杂交植物外,游戏中还加入了多种新奇的僵尸类型,如武装舞王僵尸、冰车巨人等,以及全新的地图设计,为玩家带来更加刺激和挑战性的游戏体验。游戏不仅保留了原版的经典模式,还增加了抽奖盒子无尽模式等Roguelike玩法,以及多种有趣的小游戏和挑战模式,让玩家在重复游玩中也能保持新鲜感。
制作一款DIY的‘植物大战僵尸’游戏引起了很多人的兴趣。在这里,我将分享一个使用Python语言在PyCharm环境中开发的初始状态版本。这个版本主要应用了pygame库来完成,是一个充满创意和趣味的魔改版本。
在这篇博文我将源代码以及运行程序压缩包: 运行程序
(解压后可直接运行)一并分享出来,并给出源码链接: 源码供免费下载。
里面的所有角色图片来自网络资源都来自于网络资源,由本人一张一张裁剪制作而成,制作不易,希望喜欢并使用的小伙伴可以为我点一个star。
提示:以下是本篇文章正文内容,下面案例可供参考
一、开发环境准备
实现上述描述的DIY“植物大战僵尸”游戏,你需要准备以下代码环境:
1.Python语言:
确保你的计算机上安装了Python。可以从Python的官方网站下载并安装最新版本的Python。
2.PyCharm IDE:
PyCharm是一个流行的Python集成开发环境(IDE),它提供了代码编辑、调试、测试等功能。你可以从JetBrains的官方网站下载并安装PyCharm。
3.pygame库:
pygame是一个用于创建游戏的Python库,它提供了图形、声音、事件处理等游戏开发所需的功能。你可以使用pip命令来安装pygame库:pip install pygame。
二、代码
1.main方法
代码如下:
# -*- codeing = utf-8 -*-
# @Time : 2023/1/14 15:59
# @Author : 小马
# @File: plant_vs_zoomie_game_normal_main.py
# @Software : PyCharm
import time
import pygame
import random
import os
from Adc import Adc
from shooter import shoot
from Ap import Ap
from tank import tank
from Sun import Sun
from Zombie import Zombie
from badmanmini import badmanmini
from Bullet import Bullet
from bulletshooter import bulletshooter
from enemy import enemy
from Carman import Carman
from Boss import Boss
from pythonExtend import pythonExtend
pygame.init()
#1680*720
backgd_size=(1200,600)
screen=pygame.display.set_mode(backgd_size)
pygame.display.set_caption('保卫花花之家')
bg_image_path= 'material/bg1.1.png'
bg_img_obj=pygame.image.load(bg_image_path).convert_alpha()
# sunbank_image_path= 'material/counter2.jpeg'
# sunbank_img_obj=pygame.image.load(sunbank_image_path).convert_alpha()
sunbankImg=pygame.image.load('material/cardbank.png').convert_alpha()
deleteImg=pygame.image.load('material/delete1.png').convert_alpha()
delete=pygame.image.load('material/delete.png').convert_alpha()
cardadc=pygame.image.load('material/cardadc.png').convert_alpha()
cardap=pygame.image.load('material/cardap.png').convert_alpha()
cardtank=pygame.image.load('material/cardtank.png').convert_alpha()
cardshooter=pygame.image.load('material/cardshooter.png').convert_alpha()
apImg=pygame.image.load('material/character3.1.PNG').convert_alpha()
tankImg=pygame.image.load('material/character4.1.PNG').convert_alpha()
adcImg=pygame.image.load('material/character1.1.1.PNG').convert_alpha()
shooterImg=pygame.image.load('material/character2.1.PNG').convert_alpha()
text='900'
sun_font=pygame.font.SysFont('arial',25)
sun_num_surface=sun_font.render(text,True,(0,0,0))
# adc=Adc()
# ap=Ap()
# tank=tank()
#shoot=shoot()
# zombie=Zombie()
# badman=badmanmini()
# enemy=enemy()
spriteGroup=pygame.sprite.Group()
#spriteGroup.add(adc)
# spriteGroup.add(ap)
# spriteGroup.add(tank)
#spriteGroup.add(shoot)
# spriteGroup.add(zombie)
# spriteGroup.add(badman)
# spriteGroup.add(enemy)
sunList=pygame.sprite.Group()
bulletList=pygame.sprite.Group()
enemyList=pygame.sprite.Group()
clock=pygame.time.Clock()
GEN_SUN_EVENT=pygame.USEREVENT+1
pygame.time.set_timer(GEN_SUN_EVENT,1000)
GEN_BULLET_EVENT=pygame.USEREVENT+2
pygame.time.set_timer(GEN_BULLET_EVENT,3000)
GEN_ENERMY_EVENT=pygame.USEREVENT+3
pygame.time.set_timer(GEN_ENERMY_EVENT,9000)
choose=0 #点中太阳花为1 点中坚果为2 点中射手为3 点中ADC为4
def init():
pygame.mixer.init()
s='material/sound'
bgm=pygame.mixer.Sound(os.path.join(s,'bgm1.mp3'))
start=pygame.mixer.Sound(os.path.join(s,'start1.mp3'))
start2=pygame.mixer.Sound(os.path.join(s,'start2.mp3'))
bossbgm=pygame.mixer.Sound(os.path.join(s,'boss.mp3'))
tank1=pygame.mixer.Sound(os.path.join