神码ai伪原创文章生成器软件【php源码】

慈云数据 2024-03-13 技术支持 106 0

大家好,给大家分享一下python打地鼠游戏代码及图片教程,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!

火车头采集ai伪原创插件截图

如果你没有任何编程经验,而且想尝试一下学习编程开发,这个系列教程一定适合你,它将带你学习最基本的Python语法,并让你掌握小游戏的开发技巧。你所需要的,就是付出一些时间和耐心来尝试这些代码和操作 python编程滑稽笑脸。文中素材以及可执行代码可以加群:456926667,获取,这个是我创建的一个针对0基础的伙伴一个交流群,下个文章我会更新关于pycharm版本的打地鼠。

@[top]

一、准备工作

1 下载安装 python

2 下载安装VS code编辑器

安装时,要注意勾选 添加到path

e20d3cef85c5bc67827c2b17c3f3326f.png

3 安装pygame模块

  • 在VisualStudioCode的顶部菜单【Terminal-New Teminal】打开命令行终端,然后输入命令python -m pip install --upgrade pip,回车,等待完成。 00824907e387aa00846b723be8343756.png
    • 然后同样输入命令pip install pygame,等待完成安装,可能需要几分钟 5a7b50cdda154b7ffd5319ef14e2c57d.png

      二、创建项目

      1. 在桌面上创建一个文件夹mygame,然后在VSCode中使用菜单【File-Open Folder】,选择mygame文件夹,VSCode左侧将会出现EXPLORER导航栏。
      2. 在左侧导航栏中,【右键-New File】创建文件main.py。
      bd865f09ab2bc16d9ca1b4c9c2a5a0a5.png
      - 将下面的代码粘贴到右侧`main.py`文件中。
      import pygame
      import sys
      pygame.display.set_mode([600,400])
      while 1:
          for event in pygame.event.get():
              if event.type == pygame.QUIT:
                  sys.exit()
      1. 运行代码。
      *   仍然【Terminal-New terminal】终端中输入命令`python main.py`,这将运行我们上面的代码,看到弹出一个黑色窗口。
      cf35e81a4a162f90f4a1183f367a3853.png

      三、可选操作

      1. 执行上面的操作的时候,VSCode的右下角会经常弹出一些提示,如果有【Install】字样,可以放心的点击它进行安装更多内容。
      2. 也可以从左侧栏点击图标打开【EXTENSIONS】,然后搜索@id:ms-python.python,点击找到的结果,右侧再点击【Install】按钮进行安装。安装之后main.py文件的右上角就会出现三角形运行按钮,点击它同样可以运行代码,相当于终端中输入python main.py。
      9dba88693baf791cfef1a3040b77e3a2.png

      image

      ae76d8cddeddd561ff819ef9ef43c3c7.png

      image

      1. pip install ...安装命令太慢。Windows用户,可以从上面的网盘中下载pip.ini文件,然后在【C盘-用户-用户名】文件夹下面创建pip文件夹,再把下载的pip.ini文件拷贝进去,此后再运行pip install ...安装速度就会快很多。
      2. 对于苹果用户就麻烦很多。先在终端执行cd ~切换到用户文件夹,然后执行mkdir .pip创建.pip文件夹,它是隐身的,我们打开访达,从菜单执行【前往-前往文件夹...】,前往~/.test目录,把下载的pip.conf文件粘贴进去,搞定。
      pip.ini或者 pip.conf文件是把原来 pip默认从国外下载安装改成了从国内下载,所以速度会变快很多。
      • 其中import是导入我们要使用的外部代码模块,pygame当然是必须的,sys是system系统的简写,因为我们的游戏要运行在系统(windows或者苹果macOS)上面,所以我们会用到系统的一些命令,比如下面的sys.exit()这个命令。
      • pyagme.display.set_mode([600,400]),这里的[600,400]是一对数字组合在一起的,叫二元数组,这里它表示宽600,高400的一个矩形。整句话就是设置要弹出的窗口的大小,display显示,set设置,mode模式。
      • while 1:...当是1的时候,就...,1在代码里面表示正确的、真的、存在的,相反,0表示错误、假的、不存在的。while 1:do something那么something就会做,如果while 0: do something那么就不会做了。
      • for ... sys.exit()这一段暂时可以不深究,只是固定格式。只要知道它表示游戏程序运行结束的时候系统把窗口也关掉,清理好计算机不要留痕迹,exit退出。

        游戏开发的思路

        游戏开发都有固定的套路,无论是打地鼠、愤怒的小鸟,还是西瓜忍者,甚至是王者荣耀这样的大型游戏,他们大致都遵循下面几个思路:

        1. 创建一个地图场景,上面可能有些道具。

          比如几个地鼠洞,一些可以放小猪的木盒子,甚至非常复杂的山谷地形,上面还有很多野怪。

          这些地图上的元素一般都是被动的,就是你不去靠近或招惹野怪的话,它们不会互相打起来自相残杀,同样,小鸟还没发射的时候,木盒子也不会自己倒塌。

        2. 创建至少一个玩家可以控制的元素,它可以和地图场景发生交互。

          这个可以被控制的元素我们称为玩家角色。在打地鼠游戏中这个角色就是一个锤子,愤怒的小鸟中这个角色其实是弹弓,弹出的小鸟其实是个道具,在王者荣耀游戏中玩家的角色就是自己的英雄。

        3. 必须要有评判标准,用来衡量输赢胜败。

          玩家控制的角色和地图场景进行交互,发生反应,对应的也必须要有一个评判标准,比如计算3分钟内击中地鼠的次数,或者计算砸死的绿猪的数量,或者是打野怪获得的经验,这些规则一定要清晰而且不能互相矛盾。

          大多数游戏都有输赢胜败,而胜败往往本质上只是谁的积分首先达到某个临界点。可以是某个关键道具的变化,比如对战游戏中塔被摧毁,也可以是玩家角色的属性变化,比如格斗游戏中被击杀;也可以只是纯粹的某项积分评比,用排行榜代替输赢。

        游戏开发的技术点

        1. 要能够在窗口内绘制图形。

          可以是直接用代码绘制几何图形,也可以是载入图片显示内容。

        2. 要能用代码控制每个元素(道具和角色)的动画。

          动画就是一组图片不停地轮番变化。要能用代码控制播放和停止每个元素的动画,还能在不同动画之间快速切换。

        3. 能够接收用户的控制,并借此影响游戏中的元素。

          知道用户什么时候按了键盘,什么时候点了鼠标,按了哪个按键,鼠标左键还是右键?我们经常把这些操作称之为交互事件。

        4. 能够对游戏中各种元素产生的有效数据进行计算和管理。

          玩家角色一刀砍下去,怪物的血量减少了100点,这个就是数据,而且是很有用的数据,没有这个数据的话怪物可能永远砍不死了。

          有时候这些数据要保存好,让用户下一次打开游戏的时候仍然看到自己的等级和装备都还存在。有些时候这些数据要及时清理,比如新的一局又开始了,地图上的道具和角色都要恢复原样。

        打地鼠游戏

        我们可以把经典的打地鼠游戏简化概括为:

        • 地图和道具:随机位置出现地鼠图形
        • 交互角色:控制锤子图形,点击地鼠图形使其消失
        • 积分输赢:限定时间内击中地鼠图形的次数

          核心玩法简化成一句话就是:点击随机出现图形。

          绘制地鼠

          我们用一个蓝色的圆形代表地鼠。那怎么在窗口中绘制一个圆形呢?

          可以百度【pygame 画圆圈】类似的关键字,可以查到要使用pygame.draw.circle语句,它的具体语法可以从官方说明文档中找到,英文版详细说明点这里。

          我们查到它的语法是:

          pygame.draw.circle()
          circle(surface, color, center, radius) -> Rect

          这表示draw.circle()需要四个参数,分别是surface表面,color颜色,center中心点,radius半径。

          我们继续看surface参数的说明:

          surface (Surface) -- surface to draw on

          听上去像是画布,——先要有个画布才能在上面画圆。

          点击Surface链接,找到更进一步说明:

          Surface((width, height), flags=0, depth=0, masks=None) -> Surface

          结尾的->Surface表示Surface((width....)这句话可以生成一个Surface表面,我们可以用下面的语句捕捉到这个生成的表面:

          sur=pygame.Surface((600, 400)

          这样,sur就是我们生成的表面了。

          颜色和位置

          再返回来看color参数:

          color (Color or int or tuple(int, int, int, [int])) 
          -- color to draw with, 
          the alpha value is optional if using a tuple (RGB[A])
          

          很明显它是表示画什么颜色的圆。tuple(int, int, int, [int])表示这里需要三个整数int一起表示颜色,RGB是指red红,green绿,blue蓝,alpha透明度:

          clr=(0,0,255) #蓝色

          对于center中心位置我们也可以用同样的方法得到,这里的Vector2表示二元向量,及横向x和竖向y的位置:

          pos=pygame.vector2(300,200) #窗口中央

          绘制圆形

          参数都具备了,那么就可以开始画圆了。运行下面的代码:

          import pygame
          import sys
          pygame.init()  # 初始化
          window = pygame.display.set_mode([600, 400])  # 设定窗口
          sur = pygame.Surface([600, 400])  # 绘制背景容器
          clr = (0, 0, 255)
          pos = (300,200)
          rad = 100
          while 1:
              for event in pygame.event.get():
                  if event.type == pygame.QUIT:
                      sys.exit()
              # 每帧循环执行的代码
              pygame.draw.circle(sur, clr, pos, 100# 绘制圆
              # 刷新画面
              window.blit(sur, (0, 0))
              pygame.display.flip()

          注意这里最底部刷新画面的两行,其中window.blit(sur, (0, 0))表示把我们绘制好的表面sur刷新到window窗口中;pygame.display.flip()表示进行窗口刷新。

          随机出现

          随机出现就是随机位置,我们必须确保每一次花圆的pos位置都不同,而且应该是固定的几个地鼠洞位置。——别忘了我们要做打地鼠游戏。

          假设有6个地鼠位置pos分别是[200,200],[300,200],[400,200],[200,300],[300,300],[400,300],那么如何随机取到6个中一个呢?也就是如何随机取到1~6其中的一个数字即可。

          我们可以百度【python 随机数】查到需要使用random模块,这是python自带的模块,不需要再重新pip install。

          如果搜索【python random document】可以查找到官方的语法说明,如下:

          random.randint(a, b)
          Return a random integer N such that a 
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon