HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0414
シルバー・ソード画像の表示方法について10解決


シルバー・ソード

リンク

2007/4/14(Sat) 21:03:07|NO.7457

よくゲームなどで、画像が出てくる時に「シャッター」や「ブラインド」などの特殊効果を使用しているものがありますが、
あのようなものはHSPではどうやってやる(設定する)のですか?
やはりDLLを使用するのでしょうか?



この記事に返信する


GENKI

リンク

2007/4/15(Sun) 00:07:27|NO.7462

こういうのですか?

screen 0 font msgothic,300 mes "あ。" screen 1 color 255 : boxf : color font msgothic,300 mes "い" wx = ginfo_winx gsel 0, 1 wait 100 repeat 41 repeat wx/40 pos 40*cnt,0 gcopy 1,40*cnt,0,a,480 loop a++ await 17 loop



halapeco

リンク

2007/4/15(Sun) 01:58:26|NO.7465

標準命令でできます。
GENKIさんと被ってしまいましたが、若干違う部分もあるので貼っておきます。

buffer 1,640,480,0 :boxf color 255,200,200 :font "IMPACT",50,1 pos 38,50 repeat 6 :mes "Hot Soup Processor ver3.0" :loop screen 0,640,480,0 repeat 45 y=cnt redraw 2 repeat y pos 0,y+cnt*16 :gcopy 1,0,y+cnt*16,640,1 loop redraw 1 wait 5 loop



シルバー・ソード

リンク

2007/4/15(Sun) 13:36:05|NO.7470

教えてくださりありがとうございます。
ですが、まだいまいち理解できない点があるのでそこも教えてくれると助かります。
分からない点は、
・cntとは何?【詳細編】
・halapecoさんの
	repeat 45
y=cnt redraw 2 repeat y pos 0,y+cnt*16 :gcopy 1,0,y+cnt*16,640,1 loop redraw 1 wait 5 loop
のposの所がいまいち理解できない。
・ノベルゲームのように特殊効果を使用した後にemes命令をしようするにはとうしたらいいのか。
です。
もしよければ教えてください。



halapeco

リンク

2007/4/15(Sun) 14:09:33|NO.7473

>cntとは?
マニュアルにも書いてありますが、システム変数です。
repeat〜loopループをカウントし、その回数を持っています。

repeat 10 :mes cnt :loop
を実行してみると、画面に0〜9の数字が表示されると思います。

>posのところ
gcopy命令で(0,任意のy座標)から幅640px高さ1pxの分だけコピーしています。
切り出したところと同じ位置にコピーするので(0,任意のy座標)を指定しています。
任意のy座標は、私の場合、画面を16pxの短冊に区切って、一回目のループでは
一番上の短冊を高さ1px分だけコピー、二回目のループでは一番上の短冊2pxと次の短冊の1pxを
コピーというように考えましたのでその式です。(ですからy+cnt*16はy+cnt*15が正しいですね;)

>ノベルゲームのように特殊効果を使用した後にemes命令をしようするにはとうしたらいいのか。
これはちょっと質問の意味がわからなかったのですが、特殊効果を使った後、emes命令を使おうと
したら使えなかったということですか?



水野

リンク

2007/4/15(Sun) 14:18:46|NO.7474

cntとは、repeat - loopの間を、
どれだけ繰り返したかの目安。(簡単に言うとね。)
repeatのp2で初期値がセットされ、loopの
度に1づつ追加されます。(continueでも変化)

pos 0,y+cnt*16はカレントポジション
つまり、表示する地点の縦位置を
繰り返すごとに16だけ増やしていたのです。

ノベルゲームのように特殊効果を使った後に
emes命令を使用するにはどうしたらいいのか。
については、詳細をお願いします。

あと、cntはシステム変数で、予約語です。
今後、たくさん使うと予想されるので、覚えておきましょう。



水野

リンク

2007/4/15(Sun) 14:41:56|NO.7477

すみません。かぶってしまいました。



GENKI

リンク

2007/4/15(Sun) 16:52:59|NO.7479

念のため…。
『「:(コロン)」で区切れば、1行に複数の命令が書ける』
これは大丈夫…だったかな。



シルバー・ソード

リンク

2007/4/15(Sun) 18:57:56|NO.7481

>念のため…。
>『「:(コロン)」で区切れば、1行に複数の命令が書ける』
>これは大丈夫…だったかな。
はい、そこはちゃんと理解していますよ。

>ノベルゲームのように特殊効果を使用した後にemes命令をしようするにはとうしたらいいのか。
>これはちょっと質問の意味がわからなかったのですが、特殊効果を使った後、emes命令を使おうと
>したら使えなかったということですか?
まあ多分そういうことです。
>ノベルゲームのように特殊効果を使った後にemes命令を使用するにはどうしたらいいのか。
>については、詳細をお願いします。
はい。3番目の質問の付け足しで、GENKIさんとhalapecoさんが教えてくださった方法を実行した後に、サンプルスクリプトにある

#include "hsp3util.as" ; emes命令を使用するために必要です ; ; ゆっくり文字列を表示するサンプル ; font msgothic,30,1 a="こんにちは、SPです。\nゆっくりと文字を出してみましょう。" ; text 100 ; 表示スピードの設定 emes a ; メッセージ表示
をどこに入れればいいのかが分かりません。
これでも言葉が足りなかったら私の言語力不足ですのでごめんなさい。



GENKI

リンク

2007/4/15(Sun) 19:16:19|NO.7483

> まあ多分そういうことです。

エラーが出ずに表示されないだけ。という感じでしょうか。
順に説明します。

・includeは一番最初の行につけます。
・そのあとは上のサンプルをそのまま貼り付けて…。
・その後ろにシルバーソードさんのNO.7481のスクリプト(includeを除いた部分)を貼り付けます。
・また、そのままだと文字色も黒でposもどこかへ行ってしまっているので、emesの前に適当な色とposを指定してください。

これでできると思います。


ちなみに、font命令はscreen命令を実行すると初期化されるので、screen命令を実行した後に入れます。



シルバー・ソード

リンク

2007/4/15(Sun) 22:47:03|NO.7490

できました!
私の質問に答えてくださった方々、本当にありがとうございました。
これだけは過去ログにもなかったので(私の見た範囲では)本当に助かりました。
また縁(質問)があったときに会えればいいと思いつつ、本当にありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.