骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 小黑盒加速器
查看: 929|回复: 2

[功能与代码] Prsnt中刷新图片的伎俩与注意事项

[复制链接]

41

主题

94

回帖

221

积分

见习骑士

Rank: 3

UID
3199602
第纳尔
1162
精华
0
互助
36
荣誉
0
贡献
1
魅力
227
注册时间
2020-9-4
鲜花(60) 鸡蛋(0)
发表于 2023-5-9 00:32:19 | 显示全部楼层 |阅读模式
本帖最后由 vegetto 于 2023-5-9 07:44 编辑

      接触过一点界面prsnt的制作者应该都切身体会过两个问题,第一是由container延伸出来的下拉滚动条无法记录位置,二是overlay中的文字部分虽然可以用overlay_set_text修改,但大量以图片为基础的overlay(比如mesh、立绘、item等)用常规手段刷新比较困难,诚然,在我个人实践研究和与前辈讨论下,考虑出直接重新start_presentation可以解决第二个问题的方法(只是水平有限不排除大家有更好的方法可以在下面提出)但下拉滚动条的位置也会刷新回最上端。如果制作的prsnt中有大量下拉滚动条,这个问题将严重影响游戏体验,因此,我们需要一个overlay_set_text那样的方式,像刷新文字一样及时刷新各种图片。在下面我先给出一种方法,再讲讲它的问题。
      首先在ti_on_presentation_load部分正常定义这个图片
  1.         (create_mesh_overlay_with_item_id, "$g_presentation_mesh_1", 0),
  2.         (position_set_x, pos1, XXX),
  3.         (position_set_y, pos1, XXX),
  4.         (overlay_set_position, "$g_presentation_mesh_1", pos1),
复制代码
(我这里是create_mesh_overlay_with_item_id,这个操作符我觉得其实应该是类似于用mesh生成overlay)记得返回值存进全局变量里,并记下这个全局变量的名字。
      然后在刷新部分,比如在ti_on_presentation_event_state_change里
  1.            (overlay_set_display, "$g_presentation_mesh_1", 0),
  2.            (create_mesh_overlay_with_item_id, "$g_presentation_mesh_1", ":state_no"),
  3.            (position_set_x, pos1, XXX),
  4.            (position_set_y, pos1, XXX),
  5.            (overlay_set_position, "$g_presentation_mesh_1", pos1),
复制代码
先给它隐藏掉,再用同样的全局变量原样生成一个新的overlay。从视觉效果来看,就相当于“刷新”了。因为并没有用start_presentation重置整个页面,所以不会出现下拉滚动条回到最顶上的情况。

但是这个方法也有个问题。虽然表面上看起来是刷新了这个overlay,但实际上它的编号还在,内容也还保留着,相当于只是新生成了一个overlay然后把编号assign进了它的全局变量里。如果把现在显示的overlay隐藏,再让之前的显现,依然可以恢复如初。像在我这个prsnt中,ZY的图片本来是55号的,每刷新一次,这个数值就会+1。如果玩家一直停留在这个界面,连续刷新几亿次,这个prsnt各种意义上都肯定会崩溃。不过,崩溃了想要挽救也很简单——关掉这个界面重开就行了。




刷新后

刷新后

刷新前

刷新前

评分

参与人数 1第纳尔 +10 互助 +1 收起 理由
agjib + 10 + 1 您的帖子很有价值!

查看全部评分

61

主题

450

回帖

363

积分

见习骑士

Rank: 3

UID
2741644
第纳尔
5753
精华
0
互助
38
荣誉
2
贡献
15
魅力
411
注册时间
2016-4-23

骑砍中文站APP会员勋章霸主正版勋章

鲜花(158) 鸡蛋(0)
发表于 2023-5-9 01:42:32 | 显示全部楼层
有一个set_material 的操作,没找到material在哪里设置
★★★【三国群英赋】★★★

0

主题

19

回帖

6

积分

平民

Rank: 1

UID
3514300
第纳尔
15
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2023-5-8
鲜花(0) 鸡蛋(0)
发表于 2023-5-9 05:52:41 | 显示全部楼层
本帖最后由 123点赞 于 2023-5-9 06:05 编辑
野蛮人y 发表于 2023-5-9 01:42
有一个set_material 的操作,没找到material在哪里设置

关于革命性操作贴图变换模拟动图系统在骑砍里的综合应用
https://bbs.mountblade.com.cn/thread-2098384-1-1.html
(出处: 骑马与砍杀中文站论坛)

版主写的很全面了,包含item,prop,presentation三个系统的set material用法,你们都没人看和回复。还有
关于不规则型、特效流光型特殊的玩家游戏血条能量条的实现手段(模型+程序)https://bbs.mountblade.com.cn/thread-2098924-1-1.html
(出处: 骑马与砍杀中文站论坛)


您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

Archiver|手机版|小黑屋|骑马与砍杀中文站

GMT+8, 2024-11-19 10:21 , Processed in 0.148631 second(s), 25 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表