DrDuck0117 3 maanden geleden
bovenliggende
commit
2dd7276ece

+ 2 - 1
ddmyx.yyp

@@ -45,7 +45,8 @@
   "name":"ddmyx",
   "resources":[
     {"id":{"name":"fTest","path":"fonts/fTest/fTest.yy",},},
-    {"id":{"name":"必读(更新日志)","path":"notes/必读(更新日志)/必读(更新日志).yy",},},
+    {"id":{"name":"更新日志DrDuck","path":"notes/更新日志DrDuck/更新日志DrDuck.yy",},},
+    {"id":{"name":"更新日志tianhaobu","path":"notes/更新日志tianhaobu/更新日志tianhaobu.yy",},},
     {"id":{"name":"oBlockClimbable","path":"objects/oBlockClimbable/oBlockClimbable.yy",},},
     {"id":{"name":"oBlockSlippery","path":"objects/oBlockSlippery/oBlockSlippery.yy",},},
     {"id":{"name":"oCamera","path":"objects/oCamera/oCamera.yy",},},

+ 16 - 48
notes/必读(更新日志)/必读(更新日志).txt → notes/更新日志DrDuck/更新日志DrDuck.txt

@@ -65,58 +65,12 @@ gml内部会计算image_index += sprite_fps / game_fps * image_speed等等公式
 8. 下劈落地需要回到state_free并销毁碰撞箱(还没写)见2/15
 
 9. oEnemyHitbox的重心在center/middle, 导致玩家可能被向着错误方向击退
-(试试站在oEnemyDummy正前方一点的位置攻击,不要闪躲)(还没写)
+(试试站在oEnemyDummy正前方一点的位置攻击,不要闪躲)(还没写)见2/21
 
 10. 计划明天弄一下跨房间?见2/15
 
 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
 
 1. 优化check_hazard逻辑,功能实现没问题但不够优雅
@@ -203,4 +157,18 @@ global.player是游戏内玩家inst_id
 2025/2/19 DrDuck
 
 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和蓝槽上限,需要收尸才能捡回来(正在写)

+ 2 - 2
notes/必读(更新日志)/必读(更新日志).yy → notes/更新日志DrDuck/更新日志DrDuck.yy

@@ -1,7 +1,7 @@
 {
   "$GMNotes":"v1",
-  "%Name":"必读(更新日志)",
-  "name":"必读(更新日志)",
+  "%Name":"更新日志DrDuck",
+  "name":"更新日志DrDuck",
   "parent":{
     "name":"ddmyx",
     "path":"ddmyx.yyp",

+ 44 - 0
notes/更新日志tianhaobu/更新日志tianhaobu.txt

@@ -0,0 +1,44 @@
+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)了

+ 11 - 0
notes/更新日志tianhaobu/更新日志tianhaobu.yy

@@ -0,0 +1,11 @@
+{
+  "$GMNotes":"v1",
+  "%Name":"更新日志tianhaobu",
+  "name":"更新日志tianhaobu",
+  "parent":{
+    "name":"ddmyx",
+    "path":"ddmyx.yyp",
+  },
+  "resourceType":"GMNotes",
+  "resourceVersion":"2.0",
+}