DDNet手机版教程
这里是手机版 DDNet教程。在你正式决定开始之前,我们想要告诉你的是:当前手机版有许多漏洞,因为它已经很久没有更新过了。一个更新版本的DDNet移动端正在被制作。
为了读懂这个教程,你需要有基础的绑定知识,并且明白你自己需要什么功能。如果你在手机版方面需要相关帮助,你可以去找ForgottenCat,他在wiki,Bilibili,Discord都有账号。目前很多人包括管理员都不是很清楚手机版相关问题,不要过多的去打扰他们。
这个教程用了个人的设置当做例子,因此可能不会符合你自己的需求。
下载
最新版本移动端DDNet的版本号为9.3.1,并且只支持安卓系统。点击此处去下载。一些设备无法正常安装此安装包,因为这个安装包过于老旧,你可以通过Android Debug Bridge安装它们。
开始教程
当你第一次打开应用时,你可以看到"Tap left joystick to jump"。重新打开游戏,之后你可以在屏幕上方看到一个写着"CHANGE DEVICE CONFIGURATION"的长条。按下他就可以进入设置页面。
![](/images/thumb/d/db/MBmainpagenew.jpeg/300px-MBmainpagenew.jpeg)
在这个界面里,所有设置都会被自动保存
按钮和映射
映射是一个不同于电脑版DDNet的特殊操作。对于普通的键盘,每个按键都有属于它们自己的名字,比如ctrl,alt。在开始绑定之前,我们需要给这些按键一个名字,这也是映射存在的意义。
“On-screen keyboard”,“Remap physical keys”,“Two-finger screen gestures”,这三个是映射有关的选项。
屏幕按键
- 这个选项可以改变关于屏幕上按键的相关设置。
![](/images/thumb/8/8e/MBonscreen.jpeg/300px-MBonscreen.jpeg)
- On-screen keyboard theme
- 改变屏幕上按键的材质。Sun是默认材质,也是唯一一个会在虚拟摇杆上显示触摸位置的材质。
- On-screen keyboard size
- 改变屏幕上按键的可触碰范围,不推荐在此修改。
- Size of button images
- 改变屏幕上按键的图片大小,但是不改变可触碰范围。
- On-screen keyboard transparency
- 改变屏幕上按键图片的透明度。由"Invisible"(完全透明)到"Non-transparent"(完全不透明)透明度逐渐递减。
- Customize on-screen keyboard layout
- 建议在此修改屏幕上按键位置。你可以直接拖拽按键,也可以选择一个按键后,在空白位置处滑动,以此改变按键的形状。上方会有文字显示你正选中的按键名称。
- 如果你的材质不是Sun,那么在修改界面的材质会固定为Simple Theme。
- Remap on-screen controls
- 一共有7个按键和2个摇杆。你无法映射Text input button,即文本输入按钮,也无法映射摇杆。推荐将Joystick1关闭,用它控制移动会让你无法在行走过程中跳跃,或者在不跳的情况下开始行走。如果需要关掉它,请根据图片显示操作。
![](/images/thumb/3/32/MBexample1.jpeg/300px-MBexample1.jpeg)
- Joystick 2是你唯一可以用来出钩的工具,不要将其关闭。点击ok即可保存设置然后进入映射界面,之后你可以看到如下画面。
![](/images/thumb/f/fe/MBexample2.jpeg/300px-MBexample2.jpeg)
- 将一个按键映射为一个按键名实际上可以让这个按键做这个按键名对应的事。举个例子,如果你将button 1映射为A,那么button 1就会变得和电脑键盘上面的A一模一样。
- 最上方有正在映射的按键名。你只需要知道这是button几,不需要关心他后面接的用途。同时,按钮通常有个默认映射。推荐将按键绑定为A,D,SPACE,X,PAGEDOWN。这是因为这些按键名默认有自己的绑定,如果你将按键映射为它们你就不需要重新绑定。
- 同时,你必须替换开火键,默认为mouse1,对应鼠标左键。在手机版按下mouse1的方法是点击屏幕空白位置。但是,你按下屏幕上按键时无法触发mouse1,因此如果你不修改的话操作难度会大幅度提升。我们建议映射一个屏幕上按键为开火键。例如将button 6映射为WORLD_55,之后 bind world_55 "+fire"即可。
- 默认bind:A=向左移动,D=向右移动,SPACE=跳跃,X=切换分身,PAGEDOWN=切换至下一个武器,Mouse1=开火。
- 如果你在映射完所有按键之前退出映射,已经被映射的按键会保留设置,其余的则不变。映射完成后,你可以根据自己的需要改变按键的位置,然后对于屏幕上按键的设置就结束了。
映射物理按键
- 通常设备有音量键和返回键。这些按键在跑图过程中不那么容易按到,因此不要给他们一个需要时刻使用的功能。首先,在图中所示的界面按下任意一个按钮。
![](/images/thumb/b/b4/MBexample3.jpeg/300px-MBexample3.jpeg)
- 然后按下 Show all keycodes,其他功能根本不管用。之后你就可以映射了,一次只能映射一个物理按键。
- 你可以将物理按键映射为鼠标左键,但是这完全是没必要的操作。如果你需要这么做,在主界面选择Mouse emulation(鼠标模拟),然后选择Left mouse click(鼠标左键点击),最后选择Physical key,然后按下任一物理按键即可。在此之后你仍可以通过触摸屏幕来移动光标。
- 另一个物理按键的优势在于,他们可以被轻松地绑定。你可以在DDNet中找到一个名叫控制的界面(一个电脑版DDNet也有的界面)。屏幕上的按钮和屏幕手势均无法触发,你只能在此修改物理按键和mouse1的绑定。
映射二指屏幕手势
- 一共4个手势,Zoom in即放大手势,Zoom out即缩小手势,Rotate left即逆时针手势,Rotate right即顺时针手势。他们与物理按键一样无法被轻易触发,因此给予它们一个不那么常用的功能。
- 我们一般选择Medium作为sensitivity,即灵敏度。你可以自己看哪个选项最适合自己。
- 所有手势默认映射为UNKNOWN。这不是个合法的按键,它们也无法在DDNet中被绑定。你需要将手势映射为一个除此之外的合法按键。
- 做手势的方法:将恰好两根手指放置于屏幕空白处。对于Zoom in/out,使手指分别远离/靠近中心点(类似于放大和缩小图片时做的手势)。对于Rotate left/right,使其中一根手指不动,另一个绕其转圈即可。
- 另一个问题在于,触发顺时针手势时,有时候缩小手势会被一起触发。类似的案例很少发生,你可以自己尝试一下。
映射注意事项
- 请记下每个按键对应的映射,之后绑定会省去不必要的麻烦。
- 为避免你给予的映射恰好有你不知道的绑定,你可以将按键映射为World_X,这类名称前带有world的按键没有默认绑定。
- 映射结束后,你可以重新进入映射界面以查看映射是否存在问题。上一次映射保存的按键会显示在最上方。
- 如果你要像图片那样放置按钮
![](/images/thumb/5/5e/MBlayout.jpeg/300px-MBlayout.jpeg)
,你最好将跳跃键放高一些。否则可能在你做踢人动作时出现bug。(按下任意移动键,之后钩子摇杆,最后跳跃键,并且速度比较快时,所有按键可能突然失效,并且无法触发直到你松开所有手指。可以通过将跳跃键放高一些或者只需要抬高一些你按跳跃键的手指)
- 在Mouse emulation选项中,你可以设置Calibrate touchscreen,即"安全区"。触摸屏幕上的4个角落即可。
- 所有映射会在你离开整个界面并进入DDNet后才会生效。这也意味着手势按键无法触发,物理按键暂时未被映射。
映射举例
- Button 1: A
- Button 2: SPACE
- Button 3: D
- Button 4: X
- Button 5: PAGEDOWN
- Button 6: WORLD_55
- 音量+: RCTRL
- 音量-: LALT
- 返回键: RETURN
- Zoom in: WORLD_5
- Zoom out: ESCAPE
- Rotate left: K
- Rotate right: F1
- 解释:你的映射中必须包括RETURN,这个无法改变。这是来源于ForgottenCat的设置。
- Ctrl和Alt不存在。取而代之的是RCTRL和LCTRL,以及RALT和LALT。绑定输入按键名时我们也不能用ctrl和alt。
游戏内设置和绑定
基础设置
![](/images/thumb/8/82/MBlobby.jpeg/300px-MBlobby.jpeg)
首次进入游戏时,你可以设置自己的昵称,之后你便能看到主页。搜索框位于Host Address上方,清除里面的内容后你便能看到服务器。DDNet和LAN选项内不会自动刷新服务器。如果你想加入一个本地服务器,在Host Address下方输入地址即可。
如果你刷新太快,搜索引擎会停止工作,手机版ddnet刷新比较慢。如果你看到右下角显示x of 1000+ servers,说明刷新很成功,之后慢慢等待即可。
记住,所有在进入DDNet后做出的设置不会自动保存,你需要通过右上方 X 来退出游戏,才可以保存。
![](/images/thumb/e/e9/MBbindinterface.jpeg/300px-MBbindinterface.jpeg)
点击右上角齿轮可以进入设置界面。在Language选项更改语言后你可以看到控制选项。你可以便捷地在此绑定mouse1和物理按键。
在详细内有个特殊的选项:显示聊天。如果你关掉它,文本输入按钮会表现的十分奇怪。正常情况下点击这个按钮,系统会自动打开对话框,因此我们输入消息时文本输入按钮会帮我们把消息发送到聊天中。但是关闭显示聊天后文本输入按钮无法正常打开对话框,但是它仍会摘抄我们输入的内容。举个例子,你输入"/lock",你就会自杀,因为/lock的最后一个字母为K,并且k的绑定为kill。类似的,你输入"yyyyyyk"也会导致自杀。
现在,随便进入一个DDNet服务器,然后开始绑定。
基础绑定
按下被映射为F1的按钮,之后你可以用文本输入按钮来输入指令。
如果你打算用一个屏幕上按钮来开火,我们推荐你将mouse1绑定为旁观,即"+spectate"。因为旁观时,你需要按住屏幕以选择旁观对象。如果你将另一个按钮绑定为旁观,你需要在选择时同时按住那个按钮和屏幕。
以上的设置结束后,你的ddnet可以正常游玩了!这些设置足以应对大部分简单的地图,但是如果你想挑战更高难度的地图,这套设置仍然存在严重问题。你可以跳过下方的模式切换键部分教程,但是我们推荐你在熟悉ddnet后,或是下定决心成为大佬再阅读。
模式切换键
手机版面临的一个主要问题在于按键过少。同时,系统也不支持类似于"bind ctrl+a"的绑定。因此,模式切换键为最佳选择。
首先,你需要知道Config Files,即配置文件。配置文件必须放置于"/storage/emulated/0/Android/data/tw.ddnet/files/data/"内才可生效。注意这个路径里面还有个叫"data"的文件夹,里面的内容和当前文件夹内容大致相似。将任何文件放在里面都不会生效。
模式切换键用于重新绑定很多按钮。举个例子,创建一个名为"on.cfg"的配置文件,以下为其中包含的指令。
- bind a "zoom+"
- bind d "zoom-"
- bind rctrl "exec off.cfg"
然后,创建另一个名为"off.cfg"的配置文件,以下为其中包含的指令。
- bind a "+left"
- bind d "+right"
- bind rctrl "exec on.cfg"
然后,进入游戏,按下f1,输入"exec off.cfg",模式切换键就可以正常使用了。接下来分析一下这个按键能做什么。
首先,按下模式切换键,按键a和d的功能变为缩放视野,而模式切换键的功能则变为执行"off.cfg"。当你调整完视野后,再次按下模式切换键,按键a和d的功能则变为移动,而模式切换键的功能则变为执行"on.cfg"。由此可见,其中rctrl被设置为模式切换键,他可以暂时对其他按键的功能做出改变,并且也能将其改回来。这个过程类似于"bind ctrl+a",只是手机版ddnet不支持这种绑定语法,因此我们必须做出此改动。
看起来很简单?但是创建你自己的模式切换键时,你需要注意以下几点。首先,需要被改动的按键不应该被模式切换键改动。比如,df绑定需要改变开火键的绑定。改变开火键绑定后,你肯定需要按下模式切换键来重置按钮绑定。但是如果模式切换键此时会重置开火键绑定,那df绑定就消失了。
另一个问题是,你不能让模式切换键有被误触的可能。误触模式切换键的后果一般而言非常严重,它可能导致你无法移动,如果模式切换键会对移动键绑定做出改变。物理按键比如音量键是个当做模式切换键的不错选择,他们很难被误触。
为了知道你正处于什么模式,你可以使用表情来辅助。进入设置模式时,发送一个afk表情,回归跑图模式时则发送一个开心表情。这样可以避免你误解正处于何种模式。
你不应该把屏幕手势作为屏幕切换键所需要改变绑定的按键。它们无法在你放开所有按键时被触发,这就意味着你必须放开钩子一段时间。并且它们也很容易被误触。
两个模式切换键能应对几乎所有按键,两个音量键即可。模式切换键太多会让你的绑定错综复杂,你自己都记不清楚。
漏洞和解决方法
- 屏幕上按键自己松开了或者无法松开
- 你的钩子经常自己松开,特别是在hf点,无限钩,和分身拖动点。尽量避免尝试一些需要你长时间按住钩子不松手,并且松手就会死的点。如果不可避免,松开所有按钮后重新出钩,然后再按其他的按钮。移动时尽量不松开用于按移动键的手指。这些操作可以最大程度避免钩子自己断掉。
- 在一些Hookthrough或者Rehook点,你可能发现尽管你已经松手,但是钩子仍然不会松开。唯一的解决方法是,迅速再次点击钩子摇杆,尽管这种方法操作起来很难成功。一个名为Polarity的地图就因为这个bug而导致手机玩家十分难以通关。
- 另一个常见问题是,你无法松开屏幕上按钮,这经常发生于你按住钩子摇杆不松手时。解决方法是,按跳跃键前先按下移动键。若是在按下钩子摇杆时,以一个很快的速度先按下跳跃键再按下移动键100%会触发此bug。
- 当然,有时候屏幕上按钮会自己松开。这很可能是因为你松开了钩子摇杆。很多拉人点需要你勾住分身,然后后退再向前冲以此获得一个更大的速度,从而穿过一些冻结区域,这也意味着你很可能需要提前松开钩子。解决方法是,松开钩子时迅速再点击一下钩子摇杆,你按住的按钮则会恢复。
- 全白实体层
- 你如果将DDNet切换至后台,或者任何类似的操作,当你回来时,你会发现你的实体层会变成一片白色或是一些你无法理解的材质。如果你重复这个过程很多次,所有材质都会崩塌。重进游戏即可解决此问题。
- /load的问题
- 有些时候在使用/load后,tee直接的碰撞会变得十分奇怪,看起来非常卡。解决方法是,不要在/load时处于solo模式。如果你无法做到这点,你可以在/load后触碰solo砖块,或是直接使用/timeout。
- 全角字符卡退问题
- 文本输入按钮通常在输入全角字符时发生崩溃,例如中文。这个bug可能只发生于特定系统上。但是,如果你可以在不按文本输入按钮的情况下进入输入界面,你输入全角字符则不会卡退。例如你可以在改名界面正常输入全角字符。但是在特殊情况下,随意进入一个服务器,不要连接分身,并在不使用文本输入按钮的情况下输入一些中文,那么你可能临时获得使用文本输入按钮正常输入全角字符且不卡退的能力。
- 正常情况下,我们可以通过创建一些配置文件来解决此问题。在文件里面放置像是"player_name"或是"say"的指令。然后你正常游玩时可以打开f1控制台,然后执行这些文件从而帮助你swap,改名,或是发消息。
材质
/storage/emulated/0/Android/data/tw.ddnet/files/data,在这个路径你可以找到所有正在使用的材质。用新图片直接替换原材质,不改变文件名即可启用新材质。实体层材质在editor文件夹,文件名为entities_clear.png。如果你想添加皮肤,将文件直接放置于skins文件夹。其中x_ninja.png是默认tee在水里面的皮肤。同理,替换它但是不改变它的文件名可以更改tee在水里面显示的皮肤。
设置样例
这是ForgottenCat目前的全局设置,希望对你有所帮助。
映射
![](/images/thumb/b/ba/MBbuttonlayout.jpeg/300px-MBbuttonlayout.jpeg)
- 音量+:RCTRL
- 音量-:LALT
- 返回键:RETURN
- Button 1:A
- Button 2:SPACE
- Button 3:D
- Button 4:X
- Button 5:PAGEDOWN
- Button 6:WORLD_55
- 放大手势:WORLD_5
- 缩小手势:ESCAPE
- 逆时针旋转手势:K
- 顺时针旋转手势:F1
绑定
ctrlon.cfg
emote 12
bind a "zoom+"
bind d "zoom-"
bind space "say /team 1;toggle cl_dummy 0 1;say /team 1"
bind pagedown "toggle cl_dummy_copy_moves 0 1"
bind x "exec deepfly.cfg"
bind rctrl "exec ctrloff.cfg"
bind world_5 "toggle cl_mouse_max_distance 400 2;toggle inp_mousesens 200 1"
bind return "say /spec"
ctrloff.cfg
emote 2
bind a "+left"
bind d "+right"
bind x "toggle cl_dummy 0 1"
bind pagedown "+nextweapon"
bind space "+jump"
bind rctrl "exec ctrlon.cfg"
bind lalt "exec alton.cfg"
bind return "toggle cl_overlay_entities 100 0"
deepfly.cfg
bind world_55 "+fire;+toggle cl_dummy_hammer 1 0"
bind x "exec deepflyoff.cfg"
emote 1
deepflyoff.cfg
bind world_55 "+fire"
bind x "exec deepfly.cfg"
emote 12
alton.cfg
emote 12
bind d "player_name DDNET;dummy_name DDRACE"
bind x "toggle cl_dummy_resetonswitch 0 1"
bind space "say /dnd;toggle cl_dummy 0 1;say /dnd"
bind lalt "exec ctrloff.cfg"
bind rctrl "+showhookcoll"
bind return "Help yourself this is empty"
bind a "exec fastron.cfg"
bind pagedown "Help yourself this is empty"
fastron.cfg
exec ctrloff.cfg
emote 5
bind return "say /r"
结语
这就是本教程的全部内容了,感谢你的阅读!在手机或是平板上游玩DDNet甚是方便,也能给我们一个全新的体验。但是,我们不希望你仅仅因为你想展示你自己从而使用移动端。当然,手机版十分难以操作,难以设置,但是这不是向他人寻求过分帮助的理由。手机版玩家并不是残疾tee,只要你足够努力,疯狂图照样打。祝你好运,游玩愉快!