gamemaker吧 关注:13,649贴子:95,215

回复:新人提问集中帖[2023]

只看楼主收藏回复

糖豆姐好,想请问一下几个小问题
第一个是gm里面有没有可以计算一定范围内具体实例的方法呢,使用instance_number只可以检测到全局的,有没有方法可以实现检测“碰撞范围内某特定实例的个数”呢
第二个问题是我想要找到所有有共同父对象的战斗角色中血量百分比最低的人,并对他进行操作,这个时候想使用教程中的这个找力量最大的例子:
maxid =-1;
maxpower =0;
for (i=0; i < instance _ count ; i +=1)

iii = instance _ id [ i ];
if ( instance _ exists ( iii ))
if ( iii . object _ index = unit )
{ if ( iii . power > maxpower )
{ maxid = iii ; maxpower = iii . power }

}但这里不了解的是,例子中搜索的是全体对象,但不知道该怎么对我想要的特定父对象进行检索,操作完了之后只获得maxpower,但又不知道怎么去找到这个“力量最大的人”并对他操作。。


IP属地:吉林来自Android客户端19楼2023-02-22 21:50
回复
    @Acilen- 在19楼的提问
    首先:通常我的说法里,object是对象,instance是实例。
    第一个:
    如果版本是GMS2,那么碰撞范围检测函数(如collision_rectangle)都会有一个对应的“获得所有实例”的版本(collision_rectangle_list)。否则请使用with结构。
    第二个:
    请使用with结构。
    with结构:
    0、with结构内的代码不由本实例执行,而是由with到的实例执行;
    1、with结构内,with到的实例是self,原实例是other;
    2、parent关系除了事件-动作关系继承外,还会继承碰撞检测和with是否引用(如果没有改的话);
    那么假设要在obj_A执行代码检测所有obj_B及对应子对象实例,同样使用maxid和maxpower来记录数据,且和示例代码一样只取正值,写法是这样:
    maxid=-1;
    maxpower=0;
    with(obj_B){
      if(power>other.maxpower){
        other.maxpower=power;
        other.maxid=id;
      }
    }
    注意with到的多个实例的执行顺序一定程度上说是不可控的,当有两个或更多目标的power相等且都是最大时可能返回预期外的结果。另外可以和例子一样使用object_index,作用是排除obj_B仅检测子对象。


    IP属地:北京20楼2023-02-23 01:49
    收起回复
      吧主大人,突然想问问,有没有安卓手机版呢?方便在手机上用。


      IP属地:广东来自Android客户端21楼2023-02-23 20:19
      收起回复
        吧主好,我想做一个对话切换结束时关闭,并且能按下按键显示全部文本的对话,现在可以分别进行对话结束时关闭和按下按键显示全部文本,但是没有办法做出显示玩全部文本后对话结束关闭或切换的效果,望解答




        IP属地:福建来自Android客户端22楼2023-03-09 00:18
        回复
          @阿啦心好累 在22层提问的解答:(严格来说,这层仅做出了陈述,并没有进行提问,但还是先当个问题回答一下吧)
          首先,如果有代码截图,请注明事件。以下回答均按图1是初始化部分,图2与图3分别实现了“按键结束对话”和“按键结束打字机效果显示全部文本”两个功能,现在是想整合到一起。
          当前截图的缩进和括号……比较难看,用表格整理了一下逻辑(if为true时执行左边,else放右边)

          其中,待改部分为图2的16-18行、图3的16行。既然这里是想放入两个不同的功能(且只执行一个),那么非常关键的一件事,就是用程序写出“应该在什么时候执行‘显示全部’,什么时候执行‘结束对话’”(分支讨论)。不要想当然认为“这还用说吗,当然是……”我也认为当然是“如果打字机还没结束就是全部显示,如果结束了就是结束对话”。但这件事必须要用代码告诉电脑才行。
          如果题主这些代码都是自己写的,有这些提示应该足够了;如果是照搬的,请参照下面这段:
          if(textposition < string_length(text[textpage])){
          <图3的16行>
          }else{
          <图2的16-18行>
          }
          更新后的逻辑如下

          也许这就是题主的设计逻辑,但这其实是和多数游戏的文本显示逻辑不同的。实际一个3页的对话,第一页尚未完全显示的时候按下按键,会直接翻到第二页,玩家想要看到全部文本只能选择等待。毕竟按照逻辑,只要显示的不是最后一页就要执行翻页,只有最后一页才可能用到“全部显示”的那行代码。
          修正到常规游戏逻辑的话,应该换成这样

          最后再提醒一下,if的圆括号,常规语句行尾的分号,不同深度的缩进,这些习惯建议从一开始就培养(而不是等后期纠正)。

          至于你的游戏里对话过程中玩家和nearbyobj会不会移动,这个判定会不会失效,这里就先不展开了。


          IP属地:北京23楼2023-03-10 14:28
          收起回复
            求助,GMS2更新后编译功能变得奇怪起来了……
            在测试模式下可以测试但不能导出文件(图一图二)
            然后把模式切换为GX.Games,点测试就会弹出一个网页(图四),导出的话就会弹出一个窗口(图三)。
            点击图三登录到Opera并进行登录后就会出现图五的情况,然后进度条就卡在那里了……
            请问这种情况下到底要怎样才能导出可执行文件啊?

            图一

            图二

            图三

            图四

            图五


            IP属地:四川27楼2023-04-01 12:31
            收起回复
              提个小问题,gms2的帮助文档怎么改成英语原文?机翻看不太明白。


              IP属地:四川来自Android客户端29楼2023-04-03 16:46
              收起回复
                跟教程走到移动实例,发现有尾迹。
                最开始我只写了x+=5,精灵除了平移还会留下很多残影。
                然后我换成了官方手册的代码,自己随便动了一下,还是会留下残影。
                请问这个残影是咋来的,为什么教程里没出现但我这里会出现。
                然后最重要的是怎么去掉。
                精灵就是一帧的白框,代码和结果也都在图里了。


                IP属地:重庆31楼2023-04-08 21:11
                收起回复
                  想问问gamemaker8.0背景图以【瓦片】铺房间时,如何将视野外的那些瓦块暂时停止渲染(提升流畅性)呢?


                  IP属地:广东来自Android客户端33楼2023-04-09 09:52
                  收起回复
                    还有这个资源吗?吧里失效了,想下载


                    IP属地:广东来自Android客户端34楼2023-04-14 07:19
                    收起回复
                      有人可以幫我看gmaemaker 8.1 的 bug , 遊戲中敵人 不斷拳腳同時出 , 我弄到定時出拳腳. 可以私信我拿遊戲文檔.


                      IP属地:中国香港来自Android客户端35楼2023-04-15 00:15
                      回复
                        糖豆姐好,正在做背包系统,已经实现背包上方UI左右切换和显示对应物品,但是切换背包物体的时候还是UI还是会切换,想问一下该如何实现左右切换物品的时候背包UI不会切换





                        IP属地:福建来自Android客户端37楼2023-04-28 15:46
                        收起回复
                          你好,我们有三人的新手制作团队,想做音游,我们应该购买什么方案,或者用免费版?需要什么教程吗?


                          IP属地:浙江来自iPhone客户端38楼2023-04-28 19:20
                          收起回复
                            求助,我想做一个简单的联机,一个项目运行obj_server另一个运行obj_client。完全按的教程做的,连127.0.0.1连不上,用端口映射之后,尝试连映射的地址也连不上,映射软件提示无法连接到本地服务,ip都检查过了没错,有哪里出错了呢?代码如图,可以的话麻烦看下谢谢!


                            IP属地:上海39楼2023-05-10 20:32
                            收起回复
                              您好想问问如果要导出能在mac上运行的游戏的话要用mac的电脑导出吗并且这个导出跟Windows的方式一样吗


                              IP属地:山东来自Android客户端40楼2023-05-17 13:13
                              收起回复