- 注册时间
- 2014-11-3
- 最后登录
- 2025-4-30
管理员
  
- 积分
- 1110
|
发表于 2020-8-7 23:23:48
|
显示全部楼层
一、大概看了下,基本上要写好看,都是需要至少有那么几年程序开发经验的人才能写的东西,如果想要自己写建议先学一下TJS语言,当然更建议直接找人来写。
二、请尽量按照一个问题一个帖的方式来提问,方便搜索。
三、提问时请说明“对引擎/TJS的使用已经了解到了什么程度,构思了什么样的制作方法,具体到了哪一步卡住了不会做/写了什么出错了”,而不是“XX系统如何实现”。
因为看起来不知道具体哪步不会,而且看起来特别简单的步骤和特别复杂的步骤都混在一起,只能简单地描述一下思路:
1、新增按钮:
(1)对话中随时可以查看,不进行跳转的情况(如逆转平时剧情中的道具/人物资料)。
使用sysbutton,参考修改macro_ui.ks的系统按钮宏。使用kag.callExtraConductor('文件名.ks', '*标签名')进入界面,界面退出时使用返回。
具体追加界面可以参考道具系统范例。
(2)要求还能进行剧情跳转的情况,
使用普通的button或地图系统(如逆转进入调查场景或者质询场景的情况)。界面退出时必须跳转到原来的标签或其他标签。
如果是XXX则XXX,如果是YYY则YYY,简单的条件分歧,看完教程就明白了。
所有非自定义层的“滑动”,均为action指令。
KR的滚轮事件非常不好用,要使用需要在MainWindow里面加hook。
简单的说就是每加一个滚轮操作都得在:function onMouseWheel(shift, delta, x, y)这个里面加一些处理。
然后用很多变量去控制当前处在哪个界面。
如果仅仅使用滚动条操作会少很多这样的麻烦。
怎么批量描绘变化的数据同样参考道具系统范例。
2、使用地图系统。需要点击的地方都做成按钮就可以了。目前kr有一个缺陷是如果按下键盘上的方向键,会自动选中按钮,可能会导致减少搜查乐趣,
因此如果特别想要让玩家不知道点哪里的效果,可以不用按钮而改用Layer的onMouseDown,然后根据收到的鼠标位置判断跳转去什么剧情(会很蛋疼)。
又:游戏内置两种对话框dia和scr,需要别样式对话框,根据情况打开macro_dia.ks按照这两个的格式自行修改参数增加新的宏指令即可。
3、和“滑动”一样,“推入”只是一个移动特效,把按钮定义到正确的层上,然后使用action指令移动层即可。
4、简单说就是有个layer用来接收鼠标按下onMouseDown和抬起onMouseUp以及移动onMouseMove,
这些是kr内建layer已经实现的功能,但如果想要做得精细比如不让拖出范围,放手会弹回去什么的,
一般来说需要写一个单独的类,继承自Layer这个引擎自带的基类。
比如NVLMaker的界面编辑器就用了大量类似的层来做拖拽,文件名叫class_uilayer,如果找不到更好的范例也可以直接下载源代码查看……
写完class以后创建一个对象,把这个“能被拖拽的层”指定一个parent层,它就会被加到画面上了。
5、感觉上类似,需要两个class,接收鼠标信号的layer(原件的parent)和原件layer,使用4类似的layer接收鼠标移动信号,根据信号设置元件的X,
这个元件收到改变X,会根据它当前的X自动调整到预先设定的Y坐标。如果没有则再把位置设为原来记录的坐标。 |
|