鱼C论坛

 找回密码
 立即注册
查看: 1886|回复: 9

[已解决]pygame 植物大战僵尸

[复制链接]
发表于 2021-3-23 11:39:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求助,我想知道如何实现游戏里铲除植物的铲子,网上搜到的看不到编程铲子的。
最佳答案
2021-3-23 20:34:24
本帖最后由 小伤口 于 2021-3-24 10:14 编辑


import sys   #玩家退出游戏时使用sys模块
import pygame   #包含开发游戏所需的功能
"""初始化游戏,并创建一个屏幕对象"""
pygame.init()  #初始化背景设置
bg_size=(500,600)
screen = pygame.display.set_mode((500,600))  #创建一个名为screen的窗口
pygame.display.set_caption("我一个滑铲")  #设置当前窗口标题

chan_zi= pygame.image.load('C:/Users/ASUS/Desktop/《植物大战僵尸》背景图-铲子(Shovel)_爱给网_aigei_com.png').convert_alpha()
chan_zi_rect=chan_zi.get_rect()
bg_color = (230,230,230)   #设置背景颜色

#开始游戏的主循环
while True:

    for event in pygame.event.get():   #监听用户事件
        if event.type == pygame.QUIT:   # 判断用户是否点击了关闭按钮
            sys.exit()     #用户退出
    screen.fill(bg_color)  #每次循环都重绘屏幕
    screen.blit(chan_zi,chan_zi_rect)
    # 检测用户的鼠标操作
    # 如果用户按下鼠标左键
    if pygame.mouse.get_pressed()[0]:
        # 获取鼠标坐标
        
        pos = pygame.mouse.get_pos()
        #检测用户是否鼠标位于铲子中心50*50的区域
        if chan_zi_rect.center[0]-50 < pos[0] < chan_zi_rect.center[0]+50 and \
                   chan_zi_rect.center[1]-50 < pos[1] < chan_zi_rect.center[1]+50 and\
                   0<pos[0]<500 and 0<pos[1]<600:#防止图像完全离开界面:
            #设置图像中心等于鼠标坐标
            chan_zi_rect.center=pos
    #让最近绘制屏幕可见
    pygame.display.flip()  
代码里有详细注释
你想测试代码的话
找到你的铲子图片,鼠标右键点击复制
粘贴到第九行的load()里面覆盖原来的图片地址
如果有帮助的话请设置最佳吧
有什么不懂得欢迎继续提问
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-23 13:41:11 | 显示全部楼层
《植物大战僵尸》背景图-铲子(Shovel)_爱给网_aigei_com.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-23 14:07:05 | 显示全部楼层

这个图片如何运用到游戏里?大佬请多指教一点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-23 14:11:06 | 显示全部楼层
栀鸢花 发表于 2021-3-23 14:07
这个图片如何运用到游戏里?大佬请多指教一点

你想让他怎样运行到游戏里呢
让他随着鼠标移动吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-23 14:23:57 | 显示全部楼层
小伤口 发表于 2021-3-23 14:11
你想让他怎样运行到游戏里呢
让他随着鼠标移动吗?

对,随鼠标移动并且可以铲除植物,需要这两个功能,该怎么做呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-23 14:30:33 | 显示全部楼层
栀鸢花 发表于 2021-3-23 14:23
对,随鼠标移动并且可以铲除植物,需要这两个功能,该怎么做呢?

我可以给你写一下如何随着鼠标移动
但铲除植物只能靠你自己毕竟我手里就只有一个铲子
铲除植物的话大概思路就是绑定鼠标事件(并且前提是鼠标拿着铲子)例如用户点击右键实现铲除
程序就不画那个植物就行,如果想给用户一个提示是否铲除的话,也可以简单的用tkinter写个弹窗
我马上上课了
关于如何移动铲子的代码
我可能得晚上发给你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-3-23 14:41:58 | 显示全部楼层
小伤口 发表于 2021-3-23 14:30
我可以给你写一下如何随着鼠标移动
但铲除植物只能靠你自己毕竟我手里就只有一个铲子{:10_243 ...

好的好的,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-23 20:34:24 | 显示全部楼层    本楼为最佳答案   
本帖最后由 小伤口 于 2021-3-24 10:14 编辑


import sys   #玩家退出游戏时使用sys模块
import pygame   #包含开发游戏所需的功能
"""初始化游戏,并创建一个屏幕对象"""
pygame.init()  #初始化背景设置
bg_size=(500,600)
screen = pygame.display.set_mode((500,600))  #创建一个名为screen的窗口
pygame.display.set_caption("我一个滑铲")  #设置当前窗口标题

chan_zi= pygame.image.load('C:/Users/ASUS/Desktop/《植物大战僵尸》背景图-铲子(Shovel)_爱给网_aigei_com.png').convert_alpha()
chan_zi_rect=chan_zi.get_rect()
bg_color = (230,230,230)   #设置背景颜色

#开始游戏的主循环
while True:

    for event in pygame.event.get():   #监听用户事件
        if event.type == pygame.QUIT:   # 判断用户是否点击了关闭按钮
            sys.exit()     #用户退出
    screen.fill(bg_color)  #每次循环都重绘屏幕
    screen.blit(chan_zi,chan_zi_rect)
    # 检测用户的鼠标操作
    # 如果用户按下鼠标左键
    if pygame.mouse.get_pressed()[0]:
        # 获取鼠标坐标
        
        pos = pygame.mouse.get_pos()
        #检测用户是否鼠标位于铲子中心50*50的区域
        if chan_zi_rect.center[0]-50 < pos[0] < chan_zi_rect.center[0]+50 and \
                   chan_zi_rect.center[1]-50 < pos[1] < chan_zi_rect.center[1]+50 and\
                   0<pos[0]<500 and 0<pos[1]<600:#防止图像完全离开界面:
            #设置图像中心等于鼠标坐标
            chan_zi_rect.center=pos
    #让最近绘制屏幕可见
    pygame.display.flip()  
代码里有详细注释
你想测试代码的话
找到你的铲子图片,鼠标右键点击复制
粘贴到第九行的load()里面覆盖原来的图片地址
如果有帮助的话请设置最佳吧
有什么不懂得欢迎继续提问
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-3-24 12:04:17 | 显示全部楼层
小伤口 发表于 2021-3-23 20:34
代码里有详细注释
你想测试代码的话
找到你的铲子图片,鼠标右键点击复制

感谢,对初步接触pygame的我帮助很大
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-24 12:12:10 From FishC Mobile | 显示全部楼层
栀鸢花 发表于 2021-3-24 12:04
感谢,对初步接触pygame的我帮助很大

共同学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 06:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表