Project1

标题: 关于在状态窗口绘制图形的问题………… [打印本页]

作者: 化螺耕    时间: 2013-8-6 15:23
标题: 关于在状态窗口绘制图形的问题…………
如题,新手一个啊,不会弄这种东西,折腾几下就头爆掉了,想不出为什么…………我是在Window_MenuStatus这个脚本加个图片进去的,被我改成了这样:
  1. #==============================================================================
  2. # ■ Window_MenuStatus
  3. #------------------------------------------------------------------------------
  4. #  显示菜单画面和同伴状态的窗口。
  5. #==============================================================================

  6. class Window_MenuStatus < Window_Selectable
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化目标
  9.   #--------------------------------------------------------------------------
  10.   def initialize
  11.     super(0, 0, 640, 480)
  12.     self.contents = Bitmap.new(width, height)
  13.     refresh
  14.     self.active = false
  15.     self.index = -1
  16.   end
  17.   #--------------------------------------------------------------------------
  18.   # ● 刷新
  19.   #--------------------------------------------------------------------------
  20.   def refresh
  21.     self.contents.clear
  22. =begin   
  23.     @item_max = $game_party.actors.size
  24.     for i in 0...$game_party.actors.size
  25.       x = 64
  26.       y = i * 116      
  27.       actor = $game_party.actors[i]
  28.       draw_actor_graphic(actor, x - 40, y + 80)
  29.       draw_actor_name(actor, x, y)
  30.       draw_actor_class(actor, x + 144, y)
  31.       draw_actor_level(actor, x, y + 32)
  32.       draw_actor_state(actor, x + 90, y + 32)
  33.       draw_actor_exp(actor, x, y + 64)
  34.       draw_actor_hp(actor, x + 236, y + 32)
  35.       draw_actor_sp(actor, x + 236, y + 64)      
  36.     end
  37. =end
  38.     bitmap = Bitmap.new("Graphics/Titles/001-Title01.jpg")
  39.     src_rect = Rect.new(0, 0, 640, 480)
  40.     self.contents.blt(0, 0, bitmap, src_rect)
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 刷新光标矩形
  44.   #--------------------------------------------------------------------------
  45.   def update_cursor_rect
  46.     if [url=home.php?mod=space&uid=370741]@Index[/url] < 0
  47.       self.cursor_rect.empty
  48.     else
  49.       self.cursor_rect.set(0, @index * 116, self.width - 32, 96)
  50.     end
  51.   end
  52. end
复制代码
可是不知道为什么,图片老是显示不全,明明都是640*480的嘛……
这是默认素材里的图片,是640*480的,求教各位大大!!~~  
作者: 柒月舞日    时间: 2013-8-6 15:27
LZ 你这个脚本是用来干嘛用的。。。{:2_257:}

QQ截图20130806152705.png (9.15 KB, 下载次数: 14)

QQ截图20130806152705.png

作者: satgo1546    时间: 2013-8-6 15:35
谁说显示图片要用window的,用sprite不就好了嘛。
作者: 化螺耕    时间: 2013-8-6 16:32
satgo1546 发表于 2013-8-6 15:35
谁说显示图片要用window的,用sprite不就好了嘛。

我是在状态栏中来绘制图片啊…………在脚本不是高手的专利里有介绍到…………
作者: satgo1546    时间: 2013-8-6 18:17
化螺耕 发表于 2013-8-6 16:32
我是在状态栏中来绘制图片啊…………在脚本不是高手的专利里有介绍到………… ...

你的图是640×480没错,但是窗口是有边框的!每边16像素。所以图的大小应该是(640-16*2)*(480-16*2)=608*448
作者: 化螺耕    时间: 2013-8-6 18:27
satgo1546 发表于 2013-8-6 18:17
你的图是640×480没错,但是窗口是有边框的!每边16像素。所以图的大小应该是(640-16*2)*(480-16*2)=608* ...

呃…………为什么会有留边呢??不是没有设置留边么??]
  1. self.contents = Bitmap.new(width, height)
复制代码

作者: 化螺耕    时间: 2013-8-6 19:09
satgo1546 发表于 2013-8-6 18:17
你的图是640×480没错,但是窗口是有边框的!每边16像素。所以图的大小应该是(640-16*2)*(480-16*2)=608* ...

原来如此,那能否具体说一下怎么改呢??可否在不用PS更改图片大小的情况下来改呢??新手见谅
作者: satgo1546    时间: 2013-8-6 19:13
化螺耕 发表于 2013-8-6 19:09
原来如此,那能否具体说一下怎么改呢??可否在不用PS更改图片大小的情况下来改呢??新手见谅  ...

额……如果是背景图的话,把图用Sprite表示,前面再放一个Window。
作者: 美丽晨露    时间: 2013-8-6 19:35
感觉还是使用Sprite生成图片比较好
作者: 化螺耕    时间: 2013-8-6 20:01
美丽晨露 发表于 2013-8-6 19:35
感觉还是使用Sprite生成图片比较好

可否具体说一下
作者: 美丽晨露    时间: 2013-8-6 20:33
本帖最后由 美丽晨露 于 2013-8-6 20:36 编辑
化螺耕 发表于 2013-8-6 20:01
可否具体说一下
@xiaoguo = Sprite.new
    @xiaoguo.bitmap = RPG::Cache.picture("图片.png")
在Scene_Status内设置
作者: 化螺耕    时间: 2013-8-6 20:53
美丽晨露 发表于 2013-8-6 20:33
@xiaoguo = Sprite.new
    @xiaoguo.bitmap = RPG::Cache.picture("图片.png")
在Scene_Status内设置  ...

呃…………弄进去之后提示有错误而且我是在Window_MenuStatus里面改的啊
作者: 美丽晨露    时间: 2013-8-6 21:23
方法不一样,但是效果一样就行了吧
Project70.zip (556.03 KB, 下载次数: 31)
作者: 化螺耕    时间: 2013-8-6 22:38
美丽晨露 发表于 2013-8-6 21:23
方法不一样,但是效果一样就行了吧

晨露…………我传了个工程,可不可以帮我改改,虽说是你那种效果啦,但是仿造你的方法还是老出错,拜托了 Project77.zip (247.45 KB, 下载次数: 21)
作者: 美丽晨露    时间: 2013-8-6 22:50
使用windows类修改的话,设计OX OY坐标,这点我不懂改。
依然是我使用的方法实现。
Project70.zip (556.17 KB, 下载次数: 27)

全局搜索晨露就可以发现修改的内容了
作者: 弗雷德    时间: 2013-8-7 00:48
晨露的范例之外还得再加两句一是改变精灵的Z值,二是改变菜单的透明度,否则会出现不可避免的遮挡。
幽灵@xiao.z=xxx
@status_window.opacity = 0
作者: 化螺耕    时间: 2013-8-7 09:23
美丽晨露 发表于 2013-8-6 22:50
使用windows类修改的话,设计OX OY坐标,这点我不懂改。
依然是我使用的方法实现。

原来如此啊,我知道了,可是为什么当我把文件夹从picture换成Titles这个文件夹是会提示这个呢??求教~~
PS:晨露做个范例都不忘推销一下自己的妖精妹妹哦
作者: 化螺耕    时间: 2013-8-7 11:23
美丽晨露 发表于 2013-8-6 22:50
使用windows类修改的话,设计OX OY坐标,这点我不懂改。
依然是我使用的方法实现。


谢谢晨露啊,现在问题已经解决了,我把@xiaoguo.bitmap = RPG::Cache.Titles("001-Title01.ipg")改成了@xiaoguo.bitmap = Bitmap.new("Graphics/Titles/001-Title01.jpg")就可以了,虽然不知道为什么要这样改的说
作者: 1095884734    时间: 2013-8-7 12:19
化螺耕 发表于 2013-8-6 20:01
可否具体说一下

@xxx = Sprite.new
@xxx.new("Graphics/Titles/001-Title01.jpg")
帮助文档里面有的说……
作者: satgo1546    时间: 2013-8-7 13:09
化螺耕 发表于 2013-8-7 11:23
谢谢晨露啊,现在问题已经解决了,我把@xiaoguo.bitmap = RPG::Cache.Titles("001-Title01.ipg")改成了 ...

Ruby区分大小写。Titles改成title即可。
F1里面有说明。
RPG::Cache.animation(filename, hue)
取得动画图像。hue 指定色相变化值。

RPG::Cache.autotile(filename)
取得自动地图元件图像。

RPG::Cache.battleback(filename)
取得战斗背景图像。

RPG::Cache.battler(filename, hue)
取得战斗者图像。hue 指定色相变化值。

RPG::Cache.character(filename, hue)
取得角色图像。hue 指定色相变化值。

RPG::Cache.fog(filename, hue)
取得雾图像。hue 指定色相变化值。

RPG::Cache.gameover(filename)
取得游戏结束图像。

RPG::Cache.icon(filename)
取得图标图像。

RPG::Cache.panorama(filename, hue)
取得远景图像。hue 指定色相变化值。

RPG::Cache.picture(filename)
取得图片图像。

RPG::Cache.tileset(filename)
取得图块图像。

RPG::Cache.title(filename)
取得标题图像。

RPG::Cache.windowskin(filename)
取得窗口皮肤图像。

RPG::Cache.tile(filename, tile_id, hue)
从图块中取得特定的地图元件。tile_id 指定取得文件的 ID,hue 指定色相变化值。

在事件的图像(RPG::Event::Page::Graphic)中指定了地图元件时使用。

RPG::Cache.clear
清空高速缓存。

作者: 化螺耕    时间: 2013-8-7 17:13
satgo1546 发表于 2013-8-7 13:09
Ruby区分大小写。Titles改成title即可。
F1里面有说明。

原来如此,谢谢啊




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