gamemaker吧 关注:13,611贴子:94,823
  • 9回复贴,共1

(新人游戏)特种训练营

只看楼主收藏回复



IP属地:内蒙古来自Android客户端1楼2019-07-08 18:57回复

    封面如图所示


    IP属地:内蒙古2楼2019-07-08 18:59
    回复
      名称:特种训练营
      版本:1.0
      特种训练营是网游奥比岛里的一个小游戏,这可以算是它的一个同人。
      1、玩法:
      发射子弹,消灭房间里的所有敌人会进入下一关卡。玩家共有六条命,所以最多能被击中五次,在第六次被击中时game over。
      2、操作按键:
      A:向左移动
      D:向右移动
      鼠标左键 或 space:攻击(可一直按着按键连续发射)
      游戏封面和退出游戏的操作均使用鼠标左键
      3、关卡和评分系统:
      原本一共要设计7关,但我还没想好怎么设计6关和7关两场压轴戏。目前,只需通过前5关即可看到通关的评分画面。
      评分标准:通关游戏所用时间,死亡次数,和小小的运气。(ps:理论上的最高分为24000左右,也就是零死亡+1秒通关,而最低分无下限。)
      4、下期预告
      第六关和第七关会异常艰难,但玩家可能会解锁蓄力弹和闪现(有使用次数限制)。
      同时,第五关结束前可能会询问“你是否愿意以2000分数为代价,换一条命?”,当然,最大生命依旧不能超过六。
      敬请期待 特种训练营1.1


      IP属地:内蒙古3楼2019-07-08 18:59
      回复
        没看到链接,目前状态是“开局一张图,剩下……”,所以暂时不给加精


        IP属地:北京5楼2019-07-09 10:28
        收起回复
          六楼又没了?
          https://盘.百度.com/s/18WRnuLhSh2D1_fujL-BP0A
          提取码6tqm


          IP属地:内蒙古7楼2019-07-09 10:54
          回复
            穹妹头像好评。


            IP属地:广东9楼2019-07-09 11:46
            收起回复
              呃…游戏打通了没有


              IP属地:内蒙古来自Android客户端10楼2019-07-09 12:07
              回复
                手残玩不过去,于是解析了一下。……发现好几个“似乎想实现A效果但怎么都做不出所以只好做成B的样子”的痕迹。因为能指导一些地方,所以大概不会怪我吧。问题基本定位在敌人受到攻击的相关设计里:
                敌人现在是在step时间里判断是否与玩家子弹发生碰撞(place_meeting),并执行了受伤动作(小兵直接销毁、BOSS会进入受击状态并扣除HP,并且都写着奇怪的with(other)),之后用with结构摧毁了所有的玩家子弹。
                首先表明两个事实:
                1、place_meeting只能判断“是否碰撞”,无法知道“和谁碰撞”。如果想获取碰撞目标的话要使用coll开头的那些碰撞函数。
                2、other关键字只能在碰撞事件里表示碰撞目标,或者在with结构里表示“引用自己的那个目标”。直接在step事件里用(即使是在if place_meeting后边的花括号范围里)是完全没效果的。
                所以,我认为游戏做成了全屏子弹数量限制(而不是现在更常见的发射间隔限制),并不完全为了风格复古,可能为了避免发生“两发子弹,有1发命中了敌人以后另1发也消失”的BUG。也就是说之后也没法做多人游戏、武器升级以后可以连续发射多发子弹/同时发射多发子弹这些东西。不过看那些代码怎么都像是“并不是想做成这样”。于是,方案有2个。
                方案一:改用碰撞事件来处理。
                在小怪/BOSS身上增加“与玩家子弹碰撞”这个事件,里边当然就不用再用place_meeting或者coll啥的来判断了,毕竟有碰撞发生才能触发。这时候就可以使用other来操作“打中自己的那一发子弹”,比如with(other){instance_destroy();}只会销毁和自己碰撞的那颗子弹,不会影响其他的。
                方案二:改用coll函数。
                用coll....函数来获取“与自身碰撞子弹的id”,建议用临时变量(比如mubiao_zidan)先存好。最后销毁子弹的时候也不要with(玩家子弹),而要with(mubiao_zidan)。


                IP属地:北京本楼含有高级字体11楼2019-07-11 11:52
                回复