栀鸢花 发表于 2021-3-23 11:39:24

pygame 植物大战僵尸

求助,我想知道如何实现游戏里铲除植物的铲子,网上搜到的看不到编程铲子的。

小伤口 发表于 2021-3-23 13:41:11

栀鸢花 发表于 2021-3-23 14:07:05

小伤口 发表于 2021-3-23 13:41


这个图片如何运用到游戏里?大佬请多指教一点

小伤口 发表于 2021-3-23 14:11:06

栀鸢花 发表于 2021-3-23 14:07
这个图片如何运用到游戏里?大佬请多指教一点

你想让他怎样运行到游戏里呢
让他随着鼠标移动吗?{:10_254:}

栀鸢花 发表于 2021-3-23 14:23:57

小伤口 发表于 2021-3-23 14:11
你想让他怎样运行到游戏里呢
让他随着鼠标移动吗?

对,随鼠标移动并且可以铲除植物,需要这两个功能,该怎么做呢?

小伤口 发表于 2021-3-23 14:30:33

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

我可以给你写一下如何随着鼠标移动{:10_327:}
但铲除植物只能靠你自己毕竟我手里就只有一个铲子{:10_243:}
铲除植物的话大概思路就是绑定鼠标事件(并且前提是鼠标拿着铲子)例如用户点击右键实现铲除
程序就不画那个植物就行,如果想给用户一个提示是否铲除的话,也可以简单的用tkinter写个弹窗
我马上上课了{:10_266:}
关于如何移动铲子的代码
我可能得晚上发给你

栀鸢花 发表于 2021-3-23 14:41:58

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

好的好的,谢谢{:10_298:}

小伤口 发表于 2021-3-23 20:34:24

本帖最后由 小伤口 于 2021-3-24 10:14 编辑

栀鸢花 发表于 2021-3-23 14:41
好的好的,谢谢

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():
      # 获取鼠标坐标
      
      pos = pygame.mouse.get_pos()
      #检测用户是否鼠标位于铲子中心50*50的区域
      if chan_zi_rect.center-50 < pos < chan_zi_rect.center+50 and \
                   chan_zi_rect.center-50 < pos < chan_zi_rect.center+50 and\
                   0<pos<500 and 0<pos<600:#防止图像完全离开界面:
            #设置图像中心等于鼠标坐标
            chan_zi_rect.center=pos
    #让最近绘制屏幕可见
    pygame.display.flip()


代码里有详细注释
你想测试代码的话
找到你的铲子图片,鼠标右键点击复制
粘贴到第九行的load()里面覆盖原来的图片地址
如果有帮助的话请设置最佳吧
有什么不懂得欢迎继续提问

栀鸢花 发表于 2021-3-24 12:04:17

小伤口 发表于 2021-3-23 20:34
代码里有详细注释
你想测试代码的话
找到你的铲子图片,鼠标右键点击复制


感谢,对初步接触pygame的我帮助很大

小伤口 发表于 2021-3-24 12:12:10

栀鸢花 发表于 2021-3-24 12:04
感谢,对初步接触pygame的我帮助很大

共同学习{:10_254:}
页: [1]
查看完整版本: pygame 植物大战僵尸