Project1

标题: 如何实现时钟图像可随着调用的系统时间正常旋转 [打印本页]

作者: 89444640    时间: 2017-10-11 10:49
标题: 如何实现时钟图像可随着调用的系统时间正常旋转
本帖最后由 89444640 于 2017-10-11 10:55 编辑

由于上一个帖子问了,可以很方便的用变量带入显示时间,如果用电子表数字显示应该没有问题,如果用手表显示的话可能会有点问题,但是我选了个问题最大的,在地图上显示。且需要遮挡正常。
但是如果用传统时钟显示,目前我还没想到有什么好方法。除了特别累人的,用图像做出指针所有角度+6图像,然后依次显示,这样时分秒 三个指针就需要3*60-3=177张图像。能做但是不靠谱。
而且还有个要命的问题,如果用图像显示的话,绝对会遮挡角色,但是这个时钟应该是做为背景使用的。不用纯暴力列举所有图像的话,如何解决。
实际使用测试用截图遮挡异常情况如下,应该比这个小一些,现在的时钟太大了。这图遮挡顺序我调错了,应该是秒针遮挡分针遮挡时针,图像编号秒针最大后面的小时钟是别的地方用的,测试工程里面用的是去除时针指示的。


然后下面的是此场景中的图像文件,不知道现在附件下载是否需要消耗积分,如果下载不便我再传百度什么的网盘。
时钟显示.rar (616.12 KB, 下载次数: 82)

需要实现的效果是,在公用事件中,调用秒针且准确的的情况下,每隔20帧,也就是一秒,秒针转动6度,
若秒针困难且不准确,则仅需要调整分针和时针的变量,分针每分钟角度+6度。
时针由于需要取整数,每小时转动30度,因此每两分钟角度+1度。

时分秒分针无论如何转动,都要被人物和雾图形遮挡。

这种显示方式仅限于单张地图640*480的情况,地图不卷动。若在可以卷动的地图上显示时钟的变化,则需要思考其他解决方法,如何让行走图可以随着变量旋转。

有可能的话还希望程序员大神能帮忙解决一下,谢谢。




作者: SailCat    时间: 2017-10-11 11:41
事件里有个功能叫图片旋转(当然你不能直接用)
可以看一下其脚本实现,然后自己仿写:
原理是
图片不论显示在哪层,都是sprite,用ox和oy决定其传送点,然后用angle改变其角度。每次+6即可实现旋转。
旋转是用原图叠加,不损失质量,就是要花处理时间
1秒刷新1次就可以,别帧帧刷。
作者: 张咚咚    时间: 2017-10-11 14:47
本帖最后由 张咚咚 于 2017-10-12 16:41 编辑

时钟显示2.7z (451.38 KB, 下载次数: 101)

作者: 89444640    时间: 2017-10-12 11:12
本帖最后由 89444640 于 2017-10-12 13:29 编辑
张咚咚 发表于 2017-10-11 14:47
完美解决!

非常感谢,基本已经成功了,但是这个图像遮挡问题还是无法解决。
于是我采用了妥协的方式,让会出现遮挡异常的地方角色无法到达。感觉时钟的冲击力小了好多--b,我还是喜欢恶魔城时之回廊那个大钟的描绘方式。



由于时钟的位置变了,不知道用什么代码调节图像的偏移量
这个位置是X不变Y+N
还请帮忙改一下,非常感谢。

时钟显示.rar (426.95 KB, 下载次数: 79)


这个是事件图快大了以后遮挡异常的情况,只要角色Y坐标超过事件就一直会遮挡角色,由于使用了重力脚本,没法调成角色遮挡所有,因为还有很多前景原件- -b,有办法可以解决事件的遮挡,让角色在某个开关打开的情况下,遮挡地图上的事件原件吗?



作者: 89444640    时间: 2017-10-12 15:05
非常感谢,我去试试,刚才测试时候出现的不算是问题的,时针排列秒针在最下方了,好像……现实中的时钟秒针应该在最上方?
新的作死,整点报时。功能
我设置成并行处理,判断当变量判断分钟为00时候 开关打开
自动执行,条件分歧,小时为1~12的时候分别判断播放se的次数,
但是实际情况不是卡死就是不播放。
上着班总有事情打断思路,实在是想不出怎么设置了ORZ,再次麻烦你了~
时钟显示2.rar (465.84 KB, 下载次数: 89)




作者: 89444640    时间: 2017-10-16 11:32
本帖最后由 89444640 于 2017-10-17 12:45 编辑
89444640 发表于 2017-10-12 15:05
非常感谢,我去试试,刚才测试时候出现的不算是问题的,时针排列秒针在最下方了,好像……现实中的时钟秒针 ...

周末干别的去了,今天突然想起来,会不会是因为系统是24小时时间制的原因造成卡死
但是时钟显示是12小时计算的,可是系统时间会因为计算而出现
13:00的情况,所以当时间等于13:00~0:00 时候也要写一遍,否则就会卡死不动了。
刚才试了一下,果然能正常运行了。
现在还有一个问题,我这个音效如果用时钟敲击一下用等待来处理的话,会因为等待角色不能动,回去处理一下音效,1~12下分别做出来,这样就可直接敲钟而不用等待了,如果马上切换场景也可以用停止se来处理。
我再试一下。
20171017
试验成功,分别播放1~12下的音效,不用等待,完全不卡角色行动。
非常感谢您的帮助。将会把您的名字镌刻在本脚本事件页的第一行~(只能用注释表示--b否则影正常长运行)






欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1