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

Project1

 找回密码
 注册会员
搜索
查看: 2039|回复: 5
打印 上一主题 下一主题

[已经解决] 由Bitmap.blt作的位图能否进行缩放呢?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
130 小时
注册时间
2013-6-30
帖子
92
跳转到指定楼层
1
发表于 2014-4-28 22:53:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 俄罗斯方块 于 2014-4-29 22:12 编辑

由Bitmap.blt作的位图能否进行缩放呢?如同$game_map.screen.pictures.show那般,指定两个参数(如:zoom_x和zoom_y)实现缩放。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
466 小时
注册时间
2013-2-8
帖子
424
2
发表于 2014-4-28 23:56:37 手机端发表。 | 只看该作者
Sprite 可以缩放,Bitmap 不可以。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
40722
在线时间
7543 小时
注册时间
2009-7-6
帖子
13508

开拓者贵宾

3
发表于 2014-4-29 14:57:35 | 只看该作者
bitmap上有一个stretch_blt方法可以缩放描绘位图,sprite可以用zoom属性调整缩放比
还是sprite更好并且有效率。
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
130 小时
注册时间
2013-6-30
帖子
92
4
 楼主| 发表于 2014-4-29 22:12:31 | 只看该作者
好吧,谢谢。
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22391
在线时间
8597 小时
注册时间
2011-12-31
帖子
3364
5
发表于 2014-4-30 10:19:46 | 只看该作者
本帖最后由 tseyik 于 2014-4-30 12:22 编辑

cacaosoft上有個圖片拡張脚本
http://cacaosoft.web.fc2.com/tkool/script/rgss3/picex.html
有不錯的功能
範本
http://cacaosoft.webcrow.jp/sample/file/rgss/picex_ace.zip
■ 使用方法
■ ピクチャの表示
イベントコマンド「ピクチャの表示」を使用してください。
すべてのピクチャは、背景にウィンドウを持ちます。
ピクチャとして表示する画像とウィンドウに表示する画像は別のものになります。

イベントコマンドでファイル名を設定して表示した画像は、キャッシュされます。
スクリプトにより作成、読み込みされた画像はキャッシュされず、解放されます。
■ ピクチャの取得
拡張機能は、スクリプトを使用して実行します。
イベントコマンド「ピクチャの表示」でピクチャを表示してから実行してください。
対象となるピクチャを取得するには、以下の方法を使用してください。
Pictures[ピクチャ番号]

指定された番号のピクチャを取得します。
Pictures[first .. last]

first から last までの番号のピクチャを配列で取得します。
例)Pictures[1..3].each {|picture| picture.erase }

ピクチャ全体に何らかの処理をおこないたい場合は、
Pictures.each { ... }を使用してください。
また、Pictures.eraseで、すべてのピクチャを消去できます。
■ ウィンドウの表示
イベントコマンド「ピクチャの表示」の後に実行してください。
Pictures[ピクチャ番号].window.create(width, height)
Pictures[ピクチャ番号].window.create(width, height, padding)

指定されたサイズのウィンドウを表示します。
padding を省略時は 8 px の余白が作成されます。
ウィンドウ内容は、ウィンドウの幅から余白を引いた大きさになります。
Pictures[ピクチャ番号].window.create(ww, wh, cw, ch)
Pictures[ピクチャ番号].window.create(ww, wh, cw, ch, padding)

ウィンドウ(ww,wh)とウィンドウ内容(cw,ch)のサイズを指定できます。
ウィンドウ内容は 1px 以上のサイズを指定してください。 例)Pictures[6].window.create(320, 240, 300, 480, 10)

■ ウィンドウの設定
ウィンドウ表示のスクリプトを実行した後に実行してください。
Pictures[ピクチャ番号].window.windowskin("ファイル名", ウィンドウカラー)

ウィンドウスキンを変更します。
ファイル名は、文字列で設定して、画像は Graphics/System フォルダに保存してください。
ウィンドウカラーは、配列もしくは、Tone オブジェクト
変更を行わない箇所は、nil としてください。 例)Pictures[6].window.windowskin("Window", [-34,0,68])
Pictures[ピクチャ番号].window.back_opacity = 不透明度

ウィンドウ部分のみの不透明度(0-255)を変更します。初期値は 192 です。
ウィンドウ内容にも適用する場合は、ピクチャの不透明度を変更してください。
例)Pictures[3].window.back_opacity = 255
Pictures[ピクチャ番号].window.padding = 余白サイズ

ウィンドウの余白を変更します。。初期値は 12 です。
値を大きくすると、ウィンドウ内容の表示領域が狭くなります。
例)Pictures[11].window.padding = 16
■ ウィンドウ内容のスクロール
ウィンドウ表示のスクリプトを実行した後に実行してください。
Pictures[ピクチャ番号].window.contents_x
Pictures[ピクチャ番号].window.contents_y

スクロール位置の取得または設定をおこないます。

例)Pictures[6].window.contents_x = 24
例)Pictures[6].window.contents_x += 24
例)Pictures[6].window.contents_x -= 24
■ 画像ピクチャの表示
イベントコマンド「ピクチャの表示」をファイル名を設定せずに実行してください。
Pictures[ピクチャ番号].load(type, name, index = 0, hue = 0)

ピクチャフォルダ以外の画像をピクチャとして表示します。

type
    表示する画像の種類です。
    :picture, :icon, :system, :battler, :parallax, :character, :face が使用できます。
name
    ファイル名を文字列で設定してください。
index
    表示する画像のインデックスを指定します。
    :icon, :character, :face でのみ使用します。ほかは無視します。
    歩行グラでは、キャラ単位のインデックスで中央上の正面向きの画像のみ表示できます。
hue
    色相を 360 度系で設定します。

例)Pictures[8].load(:icon, "", 48)
■ 文字ピクチャの表示
イベントコマンド「ピクチャの表示」をファイル名を設定せずに実行してください。
Pictures[ピクチャ番号].bitmap.create(横幅, 縦幅)

指定されたサイズの透明な画像をピクチャとして表示します。
文字描画の機能でピクチャに文字を描画できます。
■ 文字の描画
文字描画は、ピクチャとウィンドウの2つに別々に行います。
テキストの設定方法は、コマンドとスクリプトの2つの方法があります。

イベントコマンド
    イベントコマンド『文章のスクロール表示』の一行目に <PICEX番号設定先>と
    記述し、二行目以降に文章を記述してください。
スクリプト
    テキストは、文字列で設定してください。引数には、文字列と配列が渡せます。
    改行する場合は、文字列内に\nを入れるか、引数で分けてください。
    Pictures[ピクチャ番号].bitmap.set_text("テキスト", ...)

    ピクチャに文字を描画します。
    文字を描画できるピクチャは、画像ピクチャと文字ピクチャです。
    イベントコマンド『ピクチャの表示』で表示した画像には描画できません。
    Pictures[ピクチャ番号].window.set_text("テキスト", ...)

    ウィンドウに文字を描画します。
    ウィンドウ内容は、ウィンドウを作成した際に作成されます。
    例)Pictures[6].bitmap.set_text("\\C[3]あいうえお", '\C[0]\V[13] かきくけこ')


制御文字

\V[n]  .. n 番のEV変数の値を表示
\C[n]  .. n 番の文字色に変更
\S[n]  .. 文字サイズを n に変更
\{     .. 文字サイズを大きく
\}     .. 文字サイズを小さく
\F[n]  .. n 番のフォント設定に変更
\X[n]  .. 描画位置のx座標を n にする。(マイナス値可 \Y[-8])
\Y[n]  .. 描画位置のy座標を n にする。(マイナス値可 \Y[-8])
\X[ns] .. 描画位置のx座標を s 方向へ n ずらす。(s は + か - \Y[8+])
\Y[ns] .. 描画位置のy座標を s 方向へ n ずらす。(s は + か - \Y[8-])
\A[n]  .. 文字の描画位置を設定 ([X] 0:左, 1:中, 2:右  [Y] 3:上, 4:中, 5:下)
\N[n]  .. n 番のアクター名を表示
\P[n]  .. パーティの n 番目のアクター名を表示
\I[n]  .. n 番目のアイコンを表示
\$     .. 所持金を表示
\G     .. 通貨単位を表示


■ 文字の再描画
Pictures[ピクチャ番号].refresh

ピクチャ画像とウィンドウ内容の両方を再描画します。
Pictures[ピクチャ番号].bitmap.refresh

ピクチャ画像を再描画します。
Pictures[ピクチャ番号].window.refresh

ウィンドウ内容を再描画します。
■ ピクチャの関連付け
ピクチャ同士を関連付けます。
関連付けられた親ピクチャを移動すると子ピクチャも一緒に移動します。
ウィンドウと文字を別のピクチャに分けている場合など、
1つのピクチャに位置を合わせたい場合に使用してください。

Pictures[子番号].assoc(親番号)

ピクチャを指定されたピクチャに関連付けます。
Pictures[子番号].dissoc

ピクチャの関連付けを解除します。
Pictures[親番号] << 子番号
Pictures[親番号] << Pictures[子番号]
Pictures[親番号] << [子番号, 子番号, ...]

ピクチャに指定されたピクチャに関連付けます。

例)Pictures[7].assoc(3)

7番のピクチャを3番のピクチャに関連付けます。
3番ピクチャを移動すると7番のピクチャも移動します。
例)Pictures[12] << 3 << 5

12番のピクチャに3番と5番のピクチャを関連付けます。
12番のピクチャを移動すると、3番と5番のピクチャも移動します。
■ ピクチャの位置変更
Pictures[ピクチャ番号].pos(x, y, 原点)
指定された座標にピクチャを表示します。
原点を省略した場合は、原点の変更を行いません。
原点を左上にする場合は 0 で、中心にする場合は 1 にします。
■ ピクチャの拡大縮小
Pictures[ピクチャ番号].zoom(zoom)
Pictures[ピクチャ番号].zoom(zoom_x, zoom_y)
100 のとき等倍表示となり、大きいと拡大、小さいと縮小します。
200 のとき2倍、50 のとき 1/2 で表示されます。
■ ピクチャの反転
Pictures[ピクチャ番号].reverse
Pictures[ピクチャ番号].mirror ^= true

現在の状態から反転します。

Pictures[ピクチャ番号].mirror = true

元の状態から反転します。

Pictures[ピクチャ番号].mirror = false

元の状態に戻します。
※ ウィンドウおよびウィンドウ内容は反転しません。
■ ピクチャの角度変更
Pictures[ピクチャ番号].angle = 角度
反時計回りを正とする 360 度系で角度を設定してください。
■ ピクチャの不透明度変更
Pictures[ピクチャ番号].visible = 可視状態
可視状態がtrueのとき表示され、falseのとき非表示になります。
この変更は、ピクチャとウィンドウの両方に影響します。
この機能を使用して設定できる不透明度は、0 と 255 だけです。
■ ピクチャの移動
Pictures[ピクチャ番号].target(フレーム数, {パラメータ})
指定されたフレーム数をかけて変化させます。
パラメータには、以下の6つがあります。
座標 (:o, :x, :y)、拡大率 (:zoom, :zoom_x, :zoom_y)、不透明度 (:opacity)
例)Pictures[8].target(60, x: 0, y: 0, o: 0)
■ ピクチャの操作 (非推奨)
内部の値を直接変更します。変更しない値は、省略してください。
※ ウィンドウおよびウィンドウ内容は、反転・拡大縮小・回転に対応していません。

変更された時点で表示が変わります。

Pictures[ピクチャ番号].instance_eval do
  @origin = 0               # 原点 (0:左上 1:中心)
  @x = 0.0                  # x座標
  @y = 0.0                  # y座標
  
  @zoom_x = 100.0           # 拡大率 横幅
  @zoom_y = 100.0           # 拡大率 縦幅
  
  @opacity = 255.0          # 不透明度 (0 - 255)
  @blend_type = 0           # (0:通常 1:加算 2:減算)
  @mirror = false           # 反転するか
  @Angle = 0.0              # 回転角度 (360 度系)
end


指定された値へ @duration のフレーム数をかけて変更します。
@duration は、1 以上で必ず行ってください。
init_target は、値の初期化です。必ず実行してください。
イベントコマンド「ピクチャの移動」の実行中には行わないでください。

Pictures[ピクチャ番号].instance_eval do
  init_target               # 初期化
  @duration = 0             # フレーム時間
  
  @target_x = 0.0           # x座標
  @target_y = 0.0           # y座標
  
  @target_zoom_x = 100.0    # 拡大率 横幅
  @target_zoom_y = 100.0    # 拡大率 縦幅
  
  @target_opacity = 255.0   # 不透明度
end

■ 開発用拡張機能
■ ピクチャの画像保存
イベントコマンド「スクリプト」にて実行してください。
Pictures.save("filename", *picture_id)

指定された番号のピクチャを1枚の画像として保存します。
※ 実行には、『画像保存』スクリプトが必要です。

例)Pictures.save("test", 1,2,5)
■ ウィンドウの描画
通常のウィンドウは、画像に含まれません。
ウィンドウも含めたい場合は、以下のスクリプトでウィンドウ画像を作成してください。
Pictures[ピクチャ番号].create(横幅, 縦幅, {})

引数 {} は、ウィンドウオプションです。
第三引数の有無で、ウィンドウかそうでないかを判断しますので、
すべてのオプションを省略する場合でも、ハッシュは省略しないでください。
オプションのデフォルト値は、以下のようになります。

ウィンドウスキン :windowskin => nil (デフォルトのウィンドウスキン)
ウィンドウカラー :tone       => nil (現在のウィンドウカラー)
背景の不透明度  :opacity    => 192


例)
Pictures[3].create(160, 120, {
  :windowskin => "Window2",
  :tone => Tone.new(68, 34, -34)
})

评分

参与人数 1梦石 +1 收起 理由
Sion + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
130 小时
注册时间
2013-6-30
帖子
92
6
 楼主| 发表于 2014-4-30 19:20:27 | 只看该作者
tseyik 发表于 2014-4-30 10:19
cacaosoft上有個圖片拡張脚本
http://cacaosoft.web.fc2.com/tkool/script/rgss3/picex.html
有不錯的功能

谢谢。非常感谢。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-2-23 07:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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