『用Python做植物大战僵尸』第1期【有鱼币】
本帖最后由 元豪 于 2023-1-25 14:58 编辑【前言】
Hello,大家好!我是你们的元豪{:10_256:}
现在是『用Python做植物大战僵尸』的第1期!{:10_298:}
素材在这里 ->
(收点鱼币~{:10_279:} )
接下来,我们来说说这次的目标{:10_305:}
本页已结束,请切换下一页^-^
【目标】
本次目标:
1. 写出所有的方法的模版
2. 初始化
3. 创建窗口并放上背景图
本页已结束,请切换下一页^-^
【实现】
先导入需要的模块
import pygame
import sys
实现第1个目标:写出所有的方法的模版
这个应该很容易实现{:10_242:}
你想想,植物大战僵尸有什么?
有植物,对不对~
所以我们写一个植物的基类
class zhiwu:
'''植物基类'''
def __init__(self):
pass
那植物有什么方法?
对嘛~植物都需要种植对吧~
class zhiwu:
'''植物基类'''
def __init__(self):
pass
# 种植的方法
def zhongzhi(self):
pass
暂时写到这里,其他的以后完善{:10_248:}
然后呢?
植物大战僵尸还有什么?
僵尸~对~
我们再写一个僵尸的基类
class jiangshi:
'''僵尸基类'''
def __init__(self):
pass
僵尸有什么方法?移动
添加移动方法
class jiangshi:
'''僵尸基类'''
def __init__(self):
pass
# 移动方法
def move(self):
pass
就是这么简单~{:10_323:}
那运行函数的主类呢?
加上~
class Main:
'''主类'''
def __init__(self):
pass
# 开始
def start(self):
pass
# 结束
def end(self):
pass
至此,第1个目标完成了{:10_298:}
实现第2个目标:初始化并创建窗口
初始化就更简单了
设置长宽
WIDTH, HEIGHT = 1000, 600
pygame初始化
class Main:
'''主类'''
def __init__(self):
# 初始化
pygame.init()
# 设置长宽
self.window = pygame.display.set_mode((WIDTH, HEIGHT))
# 设置标题
pygame.display.set_caption('植物大战僵尸Python版 - 元豪')
# 开始
def start(self):
pass
# 结束
def end(self):
pass
至此,第2个目标完成了{:10_298:}
实现第3个目标:放上背景图
这个目标,我们定义一个方法,就叫 “showStsrt” {:10_327:}
1. 加载图片
2. 放置图片
# 展示开始界面
def showStart(self):
self.img = pygame.image.load('imgs/startBg.jpg')
self.window.blit(self.img, (0, 0))
问:那我们什么时候调用?
答:游戏主循环
如果大家运行之前的代码,就会发现——游戏窗口只是闪了一下就消失了,所以,我们需要一个循环
在循环中展示开始界面
class Main:
'''主类'''
def __init__(self):
# 初始化
pygame.init()
# 设置长宽
self.window = pygame.display.set_mode((WIDTH, HEIGHT))
# 设置标题
pygame.display.set_caption('植物大战僵尸Python版 - 元豪')
# 开始
def start(self):
# 展示开始界面
self.showStart()
# 游戏主循环
while True:
# 设置循环次数
pygame.time.Clock().tick(60)
# 获取事件
for event in pygame.event.get():
# 退出
if event.type == pygame.QUIT:
self.end()
# 获取键盘按下事件
if event.type == pygame.KEYDOWN:
# 按下Esc键
if event.key == pygame.K_ESCAPE:
self.end()
# 刷新界面
pygame.display.update()
# 展示开始界面
def showStart(self):
self.img = pygame.image.load('imgs/startBg.jpg')
self.window.blit(self.img, (0, 0))
# 结束
def end(self):
print('游戏结束')
pygame.quit()
sys.exit()
其他代码我就不细说了{:10_264:}
最后,运行
if __name__ == '__main__':
Main().start()
至此,我们今天的所有目标全部完成~{:10_298:}
代码 + 素材 ->
如果有兴趣,记得评分 + 订阅哦~
订阅传送门 -> 『用Python做植物大战僵尸』
https://xxx.ilovefishc.com/forum/202301/21/133129oaow9wvuss2oht9p.gif
@Twilight6 @不二如是 @Mike_python小 @zhangjinxuan @python爱好者.
更新了~~ @小伤口 @sfqxx @高山 更新了更新了!!{:10_298:} 背景图,来看看{:10_256:} 元豪 发表于 2023-1-22 19:48
@小伤口 @sfqxx @高山
来嘞 支持!! 支持!! 谢谢楼主分享 {:10_275:} {:10_275:} 支持 支持 厉害厉害呀 {:10_257:} 6666666666666 我去 nb啊 来吧 本帖最后由 元豪 于 2023-5-9 20:11 编辑
支持
页:
[1]
2