|
@@ -65,58 +65,12 @@ gml内部会计算image_index += sprite_fps / game_fps * image_speed等等公式
|
|
|
8. 下劈落地需要回到state_free并销毁碰撞箱(还没写)见2/15
|
|
8. 下劈落地需要回到state_free并销毁碰撞箱(还没写)见2/15
|
|
|
|
|
|
|
|
9. oEnemyHitbox的重心在center/middle, 导致玩家可能被向着错误方向击退
|
|
9. oEnemyHitbox的重心在center/middle, 导致玩家可能被向着错误方向击退
|
|
|
-(试试站在oEnemyDummy正前方一点的位置攻击,不要闪躲)(还没写)
|
|
|
|
|
|
|
+(试试站在oEnemyDummy正前方一点的位置攻击,不要闪躲)(还没写)见2/21
|
|
|
|
|
|
|
|
10. 计划明天弄一下跨房间?见2/15
|
|
10. 计划明天弄一下跨房间?见2/15
|
|
|
|
|
|
|
|
11. 有个写了一半的oEnemyFlying, 先不要动
|
|
11. 有个写了一半的oEnemyFlying, 先不要动
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-2026/2/14 tianhaobu
|
|
|
|
|
-//注册与注销建议使用更加现代化的autoreg_handle和autodel_handle,详见2/18
|
|
|
|
|
-
|
|
|
|
|
-1. 引入了新的输入方法,相关函数在interaction.gml里,大致逻辑是这样的:
|
|
|
|
|
-在监听任何按键前,需要先注册一个句柄(handle)
|
|
|
|
|
-{句柄函数名} = new input_handle("{句柄注册名}",{优先级})
|
|
|
|
|
-句柄外部名称是调用该句柄的名称,句柄内部名称建议与外部名称保持一致.
|
|
|
|
|
-优先级描述了该句柄的优先使用程度,通常来说,''高优先级句柄独占所有的输入''(例外是 debug 句柄).
|
|
|
|
|
-意味着若存在优先级10的句柄foo与优先级为1的句柄bar,基于bar的任何按键监听都是无效的,句柄foo独占整个输入.
|
|
|
|
|
-
|
|
|
|
|
-监听按键时,需要使用如下格式
|
|
|
|
|
-{句柄函数名}.kc({按键}) | {句柄函数名}.kcr({按键}) | {句柄函数名}.kcp({按键})
|
|
|
|
|
-假设为存在foo = foo_A.kc("A"); bar_A = bar.kc("A"); foo_B = bar.kc("B"); bar_B = bar.kc("B")
|
|
|
|
|
-如果只有按键A被按下: 则foo_A = true; foo_B = false; bar_A = false; bar_B = false
|
|
|
|
|
-如果按键A、B被按下: 则foo_A = true; foo_B = true; bar_A = false; bar_B = false
|
|
|
|
|
-
|
|
|
|
|
-此外,现对优先级进行简单的设定: 游戏内部的输入(上下左右跳etc): 1;debug: -1
|
|
|
|
|
-其中,debug不参与优先级竞争,即debug句柄无论何时都被激活,同时不影响当前最高级句柄,因此任何时候都有两个激活的句柄.
|
|
|
|
|
-
|
|
|
|
|
-为了防止潜在的bug,该系统存在一个消费系统,任何一个按键被按下都会使这个按键被"消费",即该按键会被视作没被按下.
|
|
|
|
|
-
|
|
|
|
|
-一些简单的约定:
|
|
|
|
|
-1) 不要让debug句柄和其他句柄同时监听一个按键.
|
|
|
|
|
-2) 所有输入都尽量放在oInput里.
|
|
|
|
|
-3) _handle_init()放在begin_step里.
|
|
|
|
|
-
|
|
|
|
|
-语言能力极差... 看不懂的可以参考oInput
|
|
|
|
|
-
|
|
|
|
|
-2026/2/18 tianhaobu
|
|
|
|
|
-TL;DR: 给大忙人的handleinput30秒速通
|
|
|
|
|
-必修:
|
|
|
|
|
-autoreg_handle("A","B",C)
|
|
|
|
|
-注册handle用,"A"表示这个handle函数的名字;"B"表示这个handle的注册名(小名),通常"A"="B";C表示优先级
|
|
|
|
|
-
|
|
|
|
|
-autodel_handle("A")
|
|
|
|
|
-注销handle用,"A"表示这个handle函数的名字
|
|
|
|
|
-
|
|
|
|
|
-选择性必修:
|
|
|
|
|
-input_handle_find("A")
|
|
|
|
|
-根据注册名返回函数名,"A"表示注册名
|
|
|
|
|
-通常搭配autodel_handle()使用
|
|
|
|
|
-
|
|
|
|
|
-2026/2/19 tianhaobu
|
|
|
|
|
-没错还是我,修复了handle input,现在直接使用_xxx = ingame.kc("X")即可,无需if(xxx != undefined)了
|
|
|
|
|
-
|
|
|
|
|
2026/2/15 Dr.Duck
|
|
2026/2/15 Dr.Duck
|
|
|
|
|
|
|
|
1. 优化check_hazard逻辑,功能实现没问题但不够优雅
|
|
1. 优化check_hazard逻辑,功能实现没问题但不够优雅
|
|
@@ -203,4 +157,18 @@ global.player是游戏内玩家inst_id
|
|
|
2025/2/19 DrDuck
|
|
2025/2/19 DrDuck
|
|
|
|
|
|
|
|
1. 昨天日志没写完……
|
|
1. 昨天日志没写完……
|
|
|
-补充:加入了screen_shake(_mag)函数控制摄像机震动
|
|
|
|
|
|
|
+补充:加入了screen_shake(_mag)函数控制摄像机震动
|
|
|
|
|
+
|
|
|
|
|
+2. 新增state_death与state_focus使玩家可以正确地回血、回蓝、死亡
|
|
|
|
|
+
|
|
|
|
|
+2025/2/21 DrDuck
|
|
|
|
|
+
|
|
|
|
|
+1. 由于铸币操作导致2/20版本掉进虚空,难以界定当前所在版本
|
|
|
|
|
+同时丢失部分2/19日志
|
|
|
|
|
+尝试按照记忆补救时间线中……
|
|
|
|
|
+
|
|
|
|
|
+2. 将更新日志分为两个独立部分,方便整理阅读
|
|
|
|
|
+
|
|
|
|
|
+3. 终于优化了敌人碰撞箱逻辑!(正在写)
|
|
|
|
|
+
|
|
|
|
|
+4. 玩家死掉会掉落一定Credit和蓝槽上限,需要收尸才能捡回来(正在写)
|