新人提问集中帖[2025]
gamemaker吧
全部回复
仅看楼主
吧务
level 13
q糖豆p 楼主
提问须知:
---基础---
0:确认你的问题在置顶帖、贴吧第一页、本集中帖的最后一页都无法找到答案;
1:确认你的问题不在引擎自带的新人教程范围;
2:请勿使用含贬义的词汇来形容你的问题,除非你确实想说“无法回答这个问题的都(贬义词)”;
3:通常来说,你的问题要包含这4个部分,即“你想做什么”(目的)、“你做了什么”(过程/已有内容或方式选择,注意这部分将决定问题的解决方向,什么都不说的话意味着完全答非所问的可能)、“现在的效果”(运行结果)、“决定性的差异”(要改进/改变的地方),除非你有充足的理由省略其中一项或多项;
4:如果附带代码截图,请把object名、事件名、代码行号一起截上,并保证截图里的“空白”尽可能少;
5:提问请注明当前使用的软件版本,如果是参照旧版(2.2或更早)教程,请查看建立script时自带注释的提示阅读文档,并按新的function结构(或者说把旧版教程的script格式转化为新版function格式)进行书写;
6:目前这个时间点,free档的可以导出大多数平台,如果不商用的话足够使用,没有找破解的必要,如果商用的话你会在乎软件本体的费用嘛?
---进阶---
7:不要拿别人的代码出来提问;//即A不可以问B“C写的这个是什么意思,怎么改”
8:请充分理解,绝大多数问题的解决方案都不唯一,不同人回答的可能是不同路线,且可能在方向上正好相反(如两件事冲突选择放弃/弱化哪一个)。一题多问会大幅度增加这种情况的发生概率;
9:请尽量避免提问类似“有没有人知道……”之类的问题,除非你想要的确实是“有”或“没有”这样的结果(做游戏/程序,严谨是必要的);
10:请尽量使用正式一些(括号齐全,按程序逻辑设置缩进)的代码格式,也许格式改好以后自己就能找到错误在哪;
11:加一个变量能解决的问题都不是问题,加两个变量/一个数据结构能解决的问题也都不是问题;
12:能自己做个demo测试一次就知道答案的问题都不是问题,无论怎样都设计不出demo来做出区分的选择对你来说选哪个都一样,不必纠结。
---传承---
13:如果问题的复杂度较高,且有计划逐步攻克问题并记录完整解决方案的话,建议单独开帖,本吧精华帖类别“经典问答”正是为此准备;
14:问题完美解决以后,希望能留下解决问题的记录(用了什么方法,或参照哪个回答的方案),这里有不少“哟,我这坏了不能用”这样不明所以的提问又在几天之后追加个“哟,现在能用了,此帖终结”这种不明所以的解决方法,对后续搜到帖子的读者没有任何帮助;
2024年12月24日 05点12分 1
level 9
暖楼~~
哇塞,都开始2025帖了吗,不知不觉待了十年多了[滑稽]
2024年12月24日 06点12分 2
level 9
虽然转unity了,但还是挺怀念当年研究GM8的时光[你懂的]
不过时代变了,现在可以问chatGPT[吐舌]
2024年12月24日 07点12分 3
level 7
时间过得真快啊
2024年12月24日 08点12分 4
level 5
[真棒][真棒]
2024年12月25日 00点12分 5
level 1
你好 我想导出一个案例文件,但是今天发现无论是点击运行 还是导出 引擎右上角一直在(构建中···· )一个小时还没好。请问我该怎么办?
2024年12月25日 02点12分 6
如果编译时长到了平时的2倍,基本就可以认定为卡住了。问题原因多种多样,咱遇到的基本都是runtime问题(文件缺失或是版本没和ide匹配),其中igor.dll每次都被迈克菲关起来,是重灾区。顺便如果问题在这边解决,记得把单开的帖清掉。
2024年12月26日 00点12分
level 10
版本为gms2。
请教一下,对于创建存在共同代码的实例时(比如弹幕射击里不同符卡的子弹),想到以下两个方案。
1.不同obj对应一个parent/script。但之前用gm8时因为这样弄项目内obj多了些在载入保存时用时稍长。
2.一个obj,使用生成时赋予一个变量(比如mode)之后用if编写各自代码,没有实际使用过,但感觉会较为麻烦。
所以请问1.这两种方法较突出的优点缺点2.是否存在其他方法
谢谢
2025年01月02日 12点01分 7
吧务
level 13
q糖豆p 楼主
关于@岸畔蒯草 在7楼的提问,回答字数超过楼中楼限制了所以单回一下:
Q1.这两种方法较突出的优点缺点
A1.多object,使用parent、script方案,优势是结构容易想,制作方便;同object进行差异化处理,优势是结构更紧凑,适应以后上限更高;
Q2.是否存在其他方法
A2.还有一个方案是单instance,就是用单实例的多次draw动作来在视觉上营造出“有很多个”的效果,但并不太适用于制造弹幕,毕竟这样做意味着碰撞也要重新自己判定;
以咱的最后一次制作经验来说,弹幕符卡通常由两大块构成。一块是“发射器”,采用多object结构;另一块是单发的弹,只是几个有代表的object。
发射机没什么可说的,基本就是“在什么时间、从哪里、向什么方向、发射什么类型的弹、附加什么参数”,有些要一组发射多发,有些要连续发射多组。它们在BOSS的时间循环里被多次“放置”出来,发射完成后自行销毁。
单发弹比较值得说一说。其实大部分单一的弹都可以抽象成一个object,它们中途不变向,不旋转。所以可以由发射器指定好位置速度和朝向之后自行移动直到飞出屏幕。初始条件里如果增加加速度(重力+重力朝向)、sprite、image参数的话就能丰富不少。那些中途变色、停下后重新移动、抛物线以外的其他曲线轨迹之类的才需要再做其他单弹object。
想到啥说啥,有些时候,所有单弹都是匀速直线运动时也能营造出曲线的感觉。
2025年01月03日 05点01分 8
好的,非常感谢!
2025年01月03日 11点01分
level 2
大哥们好,我是完全小白,但是会钻研,想自主开发一款自走棋,该款软件请问合适吗?合适的话可以帮忙提供下载地址吗?我下载了一个也打不开,卡在了启动页
2025年01月03日 07点01分 9
要说GM和其他工具的区别…和unity、UE比起来,这是个2D引擎,在3D方面很软肋(非要用也不是不能用);和RPGmaker比起来,没有集成好的框架(很多需要自己搭建)当然有就意味着自由度更大;和C比起来,好歹是个游戏引擎,一些2D常见功能(图像调用、碰撞判定)等还是已经内置了的。
2025年01月03日 08点01分
@q糖豆p 吧主大哥辛苦解释下[玫瑰]
2025年01月03日 08点01分
@红唇Liquor 没听说过自走棋有什么和gamemaker八字不合的地方。另外这个工具在steam就可以下,第一次打开(以及以后更新之后)需要一段时间安装runtime。登录可能也要占点时间但不会太久。
2025年01月03日 08点01分
@q糖豆p 感谢吧主的回复,首先很抱歉由于我是小白 一些问题比较低级还多多包涵,我想简单了解下,您提出了多款软件的对比,哪款更适合小白自主研发“自走棋”这个框架呢。 然后再回复您一点 我GM不太确定是否卡在安装runtime了,但是我只要切换到任务管理器 软件就是无响应状态 软件我是某宝购买
2025年01月03日 09点01分
level 10
版本为gms2。情况为无法输入中文、无法绘制中文。
在代码中无法通过输入法输入中文(表现为开启输入法在中文输入状态下输入时,无法弹出输入法窗口,仅出现在使用gms2时,其他软件输入法正常)
通过复制粘贴可输入中文,gms2中显示正常。但通过draw_text绘制时无法正常绘制(已设置font中文字体)
2025年01月19日 11点01分 11
绘制问题找到了。在Gamemaker的字形中需要手动加入中文字形,这样才能加入纹理页(自定义属性面板中)目前发现可以手动加,也可以选择txt与代码中的字形加入。(还要重新生成字体纹理)
2025年01月19日 13点01分
另一个问题也解决了...貌似这边的搜狗输入法只是显示不出来框,实际上正常运行,按空格和数字还能正常(?)打汉字。不知道其他输入法有无类似情况。
2025年01月19日 13点01分
level 13
请教个问题,最近用gms2时碰到个bgm的问题,就是bgm我设置的是循环播放,我打游戏时发现偶尔bgm中途突然消失没音了,并且没有换房间啥的。这种情况是偶然发生的很难复现,请给个思路呗,哪里可能会出问题而导致这种情况?目前个人怀疑是不是和音频格式有关还是和内存缓存有关?还是其他原因?
2025年02月03日 13点02分 12
再提供一下线索,音乐选的是压缩流式,导出后是ogg格式
2025年02月03日 14点02分
@q糖豆p 实在找不到思路了,糖大能不能给个路子啥的[乖]
2025年02月04日 05点02分
@Venus🔥 咱声音部分用的少,先怀疑是意外触发了stop all之类的代码,还有音量设置为了0这两种情况。
2025年02月05日 03点02分
@q糖豆p 试了一下,目前怀疑是同时播放音频太多会把一些音频给停住,好像和电脑配置有关。
2025年02月06日 00点02分
level 2
【如果这里不能问汉化相关问题的话请提醒我,我会删除!提前抱歉】
目的:汉化一款使用gamemaster制作的游戏
我做了什么:①使用undertalemodtool打开了游戏的data.win
②发现游戏的文件内没有任何.ttf文件,使用gamemaster引擎制作了由一款中文字体生成的png和csv(range中添加了所有常用汉字)并且成功导入undertalemodtool,将类似 draw_set_font(原字体名) 的代码改成指向中文字体。
目前的效果:成功修改了strings栏中的项目,目前游戏的主菜单可以被汉化
遇到的问题:游戏内的文本由外部资源加载(指向游戏原文件中resources文件夹中的text.txt),我将此txt文件中的英文翻译成中文并使用与原来相同的编码(UTF-8 with/without BOM都尝试过)保存后,在游戏中无法正确显示(中文部分显示空白)。请问该如何解决?
2025年02月08日 02点02分 13
汉化本身可以讨论,不公考讨论的是打开data.win那一块的事。按正常输出中文要注意的内容来说,加载中文字体、字体要包含文字范围、draw text里是中文内容这3部分似乎层主都做到了。现在唯一有点疑问的就是这3块使用的编码格式、简体繁体是否一致。跨工具制作时有时需要额外考虑这个问题。
2025年02月08日 05点02分
@q糖豆p 感谢解答!尝试用很多种编码方式保存文件,都无法识别中文(text里的英文依然可以被识别且可以更改),我完全不懂编程,是不是没有办法继续了?
2025年02月08日 08点02分
@观月绪音🍒 到这程度还说完全不懂编程实在太自谦了。咱接触的一直都是“从制作到生成”这样的路线,汉化这种“生成后再继续制作”里面会遇到啥就完全没经验了,只能提供一些基于前者的建议。一个字体可以使用英文部分而无法使用中文部分的话,是字体载入时的range没有设置正确。
2025年02月10日 02点02分
GMS2使用字体有两种,一种是在制作阶段就放进来的,界面上就有range设置的部分。第二种是使用font_add进行后续载入的,在函数里要填写range。游戏里没有找到字体文件的话可能是原游戏统一使用第一种方式,猜测可能需要在数据包FONT段里添加相关range的信息才能正常使用。
2025年02月10日 02点02分
level 6
你好吧主,我想制作一款类似街机 坏兄弟VS龙行忍者的动作游戏,可能会有很多问题想请教你。首先我想问问如果处理角色站立行走在地面时,设一个碰撞事件,碰撞时角色Y为地面Y(一条一像素横线)-1从长远来看,这个事件应该放在角色身上还是放在地面物体身上好。
2025年03月05日 12点03分 14
一般来说,是让实例数量更少的对象来进行此类判断,而一般这类游戏的地面是拼接的,数量都会大于角色数量。另一方面是,一般是由将要移动的一方来主动移动(而不是被地面顶上去),从这个方面来说也是让角色来执行更方便。只要这两个前提不变就可以这样做,如果冲突了再根据实际情况来进行取舍。
2025年03月06日 00点03分
@q糖豆p 好的谢谢。我这个游戏计划不会做什么复杂地形,基本就是同一个高度的横向到底。但是某些地方分上下两平台,上边是半透明那种平台。
2025年03月06日 06点03分
@q糖豆p 但是我想到一个问题,如果是角色执行碰撞事件那么在多个竖直墙采用同一父系统的情况下,不会出现瞬移到错误位置的情况吗?
2025年03月07日 11点03分
@魔導紳士 使用代码检测碰撞时会返回id值,这是场景中实例唯一身份证,直接用这个id去找那个墙就好
2025年03月07日 16点03分
level 6
以前我做敌方BOSS时,都会把他们的技能做成一个物体,用这个物体来操作他们的动画及攻击物体,效果还不错。请问我在做角色时是否也应该这样做,甚至小到一个轻拳一个跳跃都这样做?
2025年03月18日 10点03分 15
在咱目前认知里,“用object制作角色各类动作”这种做法是“可以”而不是“应该”。如今游戏主流做法是使用一组变量来记录角色状态,并根据当前状态+遇到的情况来处理后续状态,又名“状态机”。当然了,状态机之后用额外的object来辅助进行动画/判定也没什么问题。
2025年03月19日 01点03分
@q糖豆p 那请问这个“状态机”是否放主角身上比较好。我以前做的魂斗罗的做法是,移动跳跃的放在角色身上,轻重攻击也放在角色身上。因为这次是动作游戏,怕翻车所以想把轻重分出去。
2025年03月19日 15点03分
@魔導紳士 状态机只能放到主角身上吧,状态机是整个动作系统的核心,要根据当前动作、当前运动、所处地形、当前操作、当前遇到的东西来进行处理,计算出是否要进行动作变化、运动变化。只要角色不是固定演出就几乎必然遇到原本计划的独立事件同时遇到的情况(比如攻击/受伤和落地)。
2025年03月20日 01点03分
@q糖豆p 是的,我以前也是这样做的,所以确认一下。
2025年03月20日 01点03分
level 6
请问哪个按钮或者语句是用来判断是否正在和某个物体碰撞?
2025年03月21日 17点03分 16
1 2 3 4 5 6 尾页