使用PowerApps制作一个简单小游戏——贪吃蛇

前言

        公司一直在大力推进员工学习微软PowerPlatform平台的计划,作为小白的我看了这个视频之后,突然想着做一个小游戏,至于为什么是贪吃蛇呢,因为简单。下面我跟大家分享下我的开发经历。

地图的实现

        众所周知,贪吃蛇的地图一般是一个矩形的网格,而在这个网格中一共就两个东西:蛇和食物,蛇通过不断吃食物来不断变长。因此如何存储这个网格尤为重要。

方案一

        我一开始的想法是使用自定义组件,组件定义4个属性:X值,Y值,是否蛇,是否食物。在屏幕中生成100个自定义组件,使它们呈10*10的布局排列。在每个单元格中,根据X值、Y值同变量蛇和食物的X值、Y值作比较来赋值属性是否为蛇、是否食物,并通过这两个属性值决定单元格的颜色,以此展示蛇和食物在网格中的位置。但是实际操作下来发现这个方案不好,原因如下:

  1. 工作量太大,需要手动添加100个自定义控件,并手动设置自定义属性值X、Y来满足布局
  2. 对单元格判断是否为蛇、是否为食物的难度较大
  3. 组件太多,影响性能

方案二

        之前为了多用点PowerApps上提供的功能,老想着用自定义组件,后来发现问题复杂化了,其实只要使用一个自动换行的库控件和一维数组就能完美解决问题。

  1. 定义一个变量Matrix存储一个1~·100的有
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Excel下实现贪吃蛇小游戏 上次我们在Excel下实现了一个华容道式的小游戏使用了Excel中的小部分属性和功能,不到100行语句就完成了。这次我们要把贪吃蛇搬到Excel中,就不那么容易了。 首先要解决游戏显示的问题。对我们来说,小游戏最好的平台是Excel的工作区,由于大小可调、颜色可填的单元格操作方便,我们完全可以把它们当像素来使用。于是我们的贪吃蛇游戏就有了以单元格为基础的像素形式的显示方式了。 其次是游戏的控制方法。在这里我摸索了好久,其中走了弯路不说,我最后的结论是在Excel中要实现按键事件的方法是引入窗体,然后在窗体中响应Keydown与Keypress事件。这样的话,既可以快速响应还可以根据情况修改对应按键。 最后是游戏的定时问题。所有的游戏事实上都是在一个时间大循环里面定时接收输入信息更新状态的程序,我们的小游戏都不例外。老实说,我写这个游戏大部分的思考时间就浪费在如何实现游戏定时这里。Excel的VBA中与定时有关的只有onTime函数,没有其他相关函数提供了,onTime函数可以实现某一事件在指定时间发生,但只能以秒为最小单位,对我们要在一秒内更新数十次信息的小游戏不适合,我们只能另找方法。用过VB的人都知道VB控件中有个定时控件,用它来实现游戏定时是最好的,但在Excel中却没有,难道我要把VB中的定时控件移植到VBA中?这也是个很值得研究的课题,但是我想到了另外的方法。VB的程序员都知道要想VB程序发挥大作用一定离不开调用系统的API,于是我查看了系统相关API的帮助,发现系统API中实现相应功能的有settimer与killtimer函数,具体定义和用法大家可以参考相关帮助,但从字面大家都已经可以知道它们就是我们要找的东西了。那么现在的问题就是如何在vba环境下调用系统API。心想微软称vba就是office中的vb,那么在vba中调用系统API应该也与在VB中的一样。一试,呵呵,果然非虚,这微软真不是盖的(后在msdn中发现ms office vba从2000版本开始支持调用系统API,大家可以拓展office应用了)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值