Project1
标题:
相关图片显示
[打印本页]
作者:
cZooCz
时间:
2008-4-2 08:01
标题:
相关图片显示
#--------------------------------------------------------------------------
# ● 取得战斗画面的 X 坐标
#--------------------------------------------------------------------------
def screen_x
# 返回计算后的队伍 X 坐标的排列顺序
if self.index != nil
return self.index * 160 + 80
else
return 0
end
end
#--------------------------------------------------------------------------
# ● 取得战斗画面的 Y 坐标
#--------------------------------------------------------------------------
def screen_y
return 464
end
这个是显示战斗的坐标··是以图片变换坐标·意思是一张战斗图左边30像素是透明的其他3张均没这个空隙.这样以来那张图看起来就像右偏了30像素。问题是:可否以图片像素(非透明)变换坐标··这样4张战斗图就一致啦。(Ps:非有关Photoshop问题...请非以软件处理图片回答···我的问题是有关脚本谢谢~{/hx}) [LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
精灵使者
时间:
2008-4-2 18:49
图片像素……是不是需要调用BITMAP.WIDTH和BITMAP.HEIGHT呢……
作者:
幻の飞鱼
时间:
2008-4-2 19:30
for i in 0..@width
self.x-=1 if self.bitmap.get_pixel(i,20).alpha == 0
end
把这句话加到Sprite_Battler类里倒数第3行self.z = @battler.screen_z的下面
就应该可以实现,自动把战斗图Y坐标20那一行的从左起第一个不透明象素放置在SCREEN_X位置的目的
注“括号里后面那个“20”就是Y坐标,20就表示Y=20那一行象素,因为不知道你素材的样子,随便估计的,如果只是特定图片需要这个效果,还可以通过 if @battler_name = "XXX" 这样的形式来限定执行这个脚本的战斗图为特定图片
不过正常的战斗图本身也是有透明部分的,直接用可能会出些诡异的问题
PS:虽然你提示了,但我还是好奇……直接用PS处理掉不就完了……为什么非要用脚本
作者:
精灵使者
时间:
2008-4-2 19:32
因为它需要用纯图片战斗模式……所以不可能使用到PS的。
作者:
幻の飞鱼
时间:
2008-4-2 19:34
=。=忽然想说……如果是确定30象素的话就其实可以很简单
发现刚才说了大大的废柴
作者:
幻の飞鱼
时间:
2008-4-2 19:35
只需要在Sprite_Battler类里倒数第3行self.z = @battler.screen_z的下面加一句
self.x -= 30 if @battler_name = "XXX"
“XXX”就是你那张图的名字
上面那些大废话……因为是以为不确定数量的透明象素
作者:
cZooCz
时间:
2008-4-2 21:05
不行呀···楼上说的我做了可是4个战斗图都同时移动···位置没变化如果按照原来的··那就没有意义了···。现在在说明下可否指定某张战斗图坐标而不是4个一起···而这个某张的数量也是很多的能不能用数据库角色ID控制··比如ID7角色y坐标下移30 ID3Y坐标上移15 ID8x坐标右移50,没指定的均不变位置。
作者:
水迭澜
时间:
2008-4-2 21:05
直接用PS把图片大小调整了不就可以了么
作者:
cZooCz
时间:
2008-4-2 21:06
斑竹请看顶贴 - -#{/hx}
作者:
傅立叶级数
时间:
2008-4-2 21:14
提示:
作者被禁止或删除 内容自动屏蔽
作者:
cZooCz
时间:
2008-4-2 21:29
我知道用PS可行···但是原因很多···我也不想用脚本没办法{/hx}
作者:
幻の飞鱼
时间:
2008-4-2 21:38
只需要在Sprite_Battler类里倒数第3行self.z = @battler.screen_z的下面换这样的语句
if @battler.is_a?(Game_Actor)
self.x += 200 if @battler.id == 1
self.y += 100 if @battler.id == 2
end
后面的是角色ID,前面的是移动位移 [LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者:
cZooCz
时间:
2008-4-2 21:51
楼上的···爱死你啦{/hx}非常谢谢麻烦大家啦谢谢大家的帮助{/hx}
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1