评论

一个精巧的2D游戏场景构建与演示效果

游戏场景构建案例

这是一个演示用的小东西,呈现的效果为:在一个较大的地图场景上控制一支代表军队的骑兵自由移动,其移动方式为双击空白地形后出现一个移动点标志,然后骑兵移动至改位置,在骑兵未接受指令时可按住空白处拖动查看全景地形。

另外骑兵在移动过程中是不受变更指令、同时画面也暂时不可拖动,直到骑兵停止时方才可以;而骑兵也随移动方向变更成合适的动态造型;骑兵移动时有马蹄声效果、根据移动距离的远近概率出现马儿嘶鸣的情况。

该Demo场景元素其实很简洁,代码容量才占52K左右

下面对其中元素分别介绍,首先看下【容器-大地图】(该容器包含场景内所有精灵),它的事件代码主要是接收通知【限位】,容器与其中的地形图尺寸等同,拖动时可以将地图场景边缘限制在终端屏幕尺寸内。

玩家操作主要作用在【地形图】上,手指按住时 容器变为可拖动状态并受边缘限制,双击时变更军队的自身状态为1(表示移动中)、同时确定移动点位及移动距离、并向军队发出移动通知(此时地图不可拖动并且在移动完成前不接受新的移动命令)。

接下来看看部队的造型布局,这里用了16种造型分别代表8个方向的静态与动态效果

其代码如下,启动时设置自身状态为0(部队当前停止),通知事件【移动】的具体解释为:

  1. 将【目标点】元素移到相对的移动点位上,通过【军队】与【目标点】得出移动方向值,通知目标点显示。
  2. 按移动方向值改变【军队】的动态造型,并动画移动至目标点位,移动时间由移动距离来决定。
  3. 当移动到目标点位后,【军队】变为该方向上的静态效果(站立),自身状态为0、且地图变为可拖动。

目标点的移动通知事件如下,在军队停止时隐藏。

关于军队造型随方向变更的逻辑,这里采用的是遍历预设表格模式,比起完全用“如果...否则...”嵌套的方式,这样做可以大幅减少积木块的数量,是笔者用来精简代码量的不二“法宝”!想想看,把九个“如果”嵌套起来会占多大的篇幅......

在这个搭建起来的基础上,加上各种城池、部队等事件元素与逻辑,应该可以干出些不一样的东西,但是看看微信广告助手上的消息...那点惨淡的流量收益通知,简直可以制服一切“不安分”的想法、和不切实际的“野心”。

作为个人来讲,玩玩算啦!认真你就输了......


最后一次编辑于  2023-11-11  
点赞 2
收藏
评论

4 个评论

  • Sing
    Sing
    2023-11-12

    小游戏小游戏,讲究一个"小",要是做那种很大很重的游戏,容易得不偿失,我主张做小的轻的游戏。

    2023-11-12
    赞同 1
    回复
  • ICE
    ICE
    07-03

    玩这个的得有30+了啊

    07-03
    赞同
    回复
  • 星河
    星河
    2023-11-14

    你好,我想问问,这个软件开发的小游戏,不是用代码写的,怎么申请软著作权呢?


    2023-11-14
    赞同
    回复
  • 小圣贤庄主
    小圣贤庄主
    2023-11-12

    就这个Demo而言,即使算上素材大小也不过300K之内,后续如果做成解谜、寻宝、探险等内容,也就2~3M上下,“很大很重”如果是指在容量上——您是过于抬举了^_^ 如果是指内容玩法上,我不清楚界定的条件......

    其实有可能仅仅视觉效果貌似宏大而已,如果背景是白板、军队是个简单的球体,那这东西毫无可取之处,但即使保持现在的形态,其逻辑复杂程度也连A*寻路都比不上。

    2023-11-12
    赞同
    回复
登录 后发表内容