当前位置: 首页 > news >正文

使用pygame做游戏(2):2048游戏的进一步改造,以失败告终

前言

        受《Python树莓派编程从零开始》里的示例启发,我决定将上篇的2048游戏进行“面向对象化”改造。

        这次除了要建立一些对象,还要能有移动效果,并能显示中文。

        另外我还发现一个bug:方块放满了不代表输了,还要检查能不能合并,不能合并才输。

改造过程

        显示中文比较简单,只要实例化font对象时传入字体文件的路径参数,就是游戏运行后要等会才出现窗口,应该是载入中文字体费了时间。        

        对象化时我建立三个类:

  • 板(board),是游戏的基础类, 是单例模式;
  • 槽(groove),是板上的空位,固定不动,有自己坐标。比如4*4尺寸是16个槽;
  • 方块(tile),放在槽上,可以移动,合并;

        一开始还能按部就班。从建立启动界面、绘制板、槽到放置方块都可以做到和以前一样。但等要移动方块时我发现力不从心了,不但越搞越复杂还达不到想要的效果。经过权衡,我决定放弃。

复盘

        这次改造过程让我知道自己水平有多菜,仅看了个入门示例是远远不够的。要深入,除了看技术文档,还要看高手的代码。鉴于开发游戏不是我的发展方向,对于pygame模块只能浅尝辄止。
        以后在gui方向我会在guizero和PySimpleGui中选一个,可以用来作单片机的上位机软件。

参考文章

使用pygame做游戏(1):初接触以及改进2048游戏代码-CSDN博客

PyGame 文字显示问题及解决方法_pygame无法显示中文-CSDN博客

http://www.lryc.cn/news/505573.html

相关文章:

  • 【CSS in Depth 2 精译_078】12.6 调整字间距,提升可读性 + 12.7 本章小结
  • 泷羽sec学习打卡-brupsuite7搭建IP炮台
  • 使用Svelte构建轻量级应用详解
  • Qt设置部件的阴影效果
  • Python 助力 DBA:高效批量管理数据库服务器的多线程解决方案-多库查询汇总工具实现
  • vue响应式数据-修改对象的属性值,视图不更新
  • 【OpenCV计算机视觉】图像处理——平滑
  • C#编程报错- “ComboBox”是“...ComboBox”和“...ComboBox”之间的不明确的引用
  • JAVA:访问者模式(Visitor Pattern)的技术指南
  • YashanDB共享集群产品能力观测:细节足见功底
  • 【Linux】—简单实现一个shell(myshell)
  • @FeignClient用于Nacos微服务间的接口调用
  • 认识javascript中的模块化
  • 容器设计模式:Sidecar
  • ensp 静态路由配置
  • MATLAB图卷积神经网络GCN处理分子数据集节点分类研究
  • Android-Glide详解
  • 2.Nuxt学习 组件使用和路由跳转相关
  • 代码开发相关操作
  • 动态导出word文件支持转pdf
  • 登陆harbor发现证书是错误的, 那么如何更新harbor的证书呢
  • 【Leetcode Top 100】199. 二叉树的右视图
  • React自学:如何使用localStorage,以及如何实现删除笔记操作
  • go语言使用websocket发送一条消息A,持续接收返回的消息
  • 如何对小型固定翼无人机进行最优的路径跟随控制?
  • C++常见面试题-初级2
  • Spring Security 6 系列之二 - 基于数据库的用户认证和认证原理
  • mfc140.dll是什么东西?mfc140.dll缺失的几种具体解决方法
  • 【STM32 Modbus编程】-作为主设备写入多个线圈和寄存器
  • Windows安全中心(病毒和威胁防护)的注册