设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2708|回复: 8

[已经解决] [已解决]加载动态人物战斗图位图的疑问。

[复制链接]

Lv4.逐梦者

梦石
0
星屑
14051
在线时间
2135 小时
注册时间
2019-1-24
帖子
1121

R考场第七期纪念奖

发表于 2019-4-26 21:43:26 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 miantouchi 于 2019-4-27 20:34 编辑

我看某侠的一节课程,这是源码没有问题
RUBY 代码复制
  1. bmp = RPG::Cache.battler(@battler_name, @battler_hue)#第一句
  2.       rect = Rect.new(0, 0, bmp.width / 4, bmp.height)#第二句
  3.       self.bitmap = Bitmap.new(bmp.width / 4, bmp.height)#第三句
  4.       self.bitmap.blt(0, 0, bmp, rect)
#第四句

我为了自己能理解这段代码我把这段代码除以4这块去掉了,来验证我自己的理解想法,结果
我自己把第三句改了下就不显示了
RUBY 代码复制
  1. self.bitmap = Bitmap.new(bmp.width, bmp.height)


这是什么原因呢?

我的理解,人物图片是528*162
第二句Rect截取人物的第一帧图片132宽*162高
第三句是加载空白的bitmap位图,尺寸是528*162
第四句在空白bitmap位图(528*162),上面绘制第一帧人物图片,
结果我没有发现人物图片没有显示。
1.png
陈.png
3.png
4.png

Lv5.捕梦者

梦石
0
星屑
33038
在线时间
10469 小时
注册时间
2009-3-15
帖子
4756
发表于 2019-4-26 22:21:45 | 显示全部楼层
本帖最后由 soulsaga 于 2019-4-26 22:41 编辑

这也挺奇怪的......
回复 支持 1 反对 0

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37626
在线时间
5307 小时
注册时间
2006-11-10
帖子
6539
发表于 2019-4-26 22:59:34 | 显示全部楼层
本帖最后由 灯笼菜刀王 于 2019-4-26 23:11 编辑

你把这个角色换到第4位就可以看到他了

原因在于下面的 self.ox, 它的取值是图片宽度的一半

点评

最好能画张图 O(∩_∩)O哈哈~  发表于 2019-4-27 16:47
self.ox是精灵原点位置,具体是精灵图片的中心点被,看了半天没理解这个ox  发表于 2019-4-27 16:43
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37626
在线时间
5307 小时
注册时间
2006-11-10
帖子
6539
发表于 2019-4-27 16:59:59 | 显示全部楼层
本帖最后由 灯笼菜刀王 于 2019-4-27 17:05 编辑

blt(x,y,w,h) 这里的XY是什么意思?

嘛, 答案很容易吧, 就是描绘图片位置的坐标,  

那,你有没有想过, 这个坐标只是一个点, 而图片是一个面, 是根据图片的哪个点来作为位置标准的呢?

答案就是 ox, oy, 默认是0,0  也就是图片左上角的那个点

这里, 改变了ox = w / 2 , oy = h , 也就是说,基准点换成了 在图片宽度的一半, 全部高度(也就底边)的位置

你让rect绘制了4分之一的图片, 然而实际图片并没有被切成4分一, 所以 w / 2 的位置一样是那长长的图片的底部中心点, 显然的, 窗口并没有那么长来显示完整的半张图, 所以你的角色就显示到外太空去了

点评

我这么画只是把图片尺寸前半部分画在游戏左侧,右侧显示后半部分,后半部分是透明图片。  发表于 2019-4-27 20:15
终于搞明白系统是怎么画的,先确定原点位置(脚部中心),然后再画,图片默认是在外围。  发表于 2019-4-27 20:14

评分

参与人数 1星屑 +50 收起 理由
RyanBern + 50 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

发表于 2019-4-27 17:50:53 | 显示全部楼层
ox,oy这个设计看似很奇怪,联想到旋转就很自然了。ox,oy其实是指定了旋转的中心。

不过我也是第一次意识到blt的前两个参数是ox,oy
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-3-28 20:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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