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


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
1025
E.Aノベルゲームなどにおける文字の点滅について2解決


E.A

リンク

2017/10/25(Wed) 03:15:14|NO.81673

こんにちは。

ただいま、HSPガイドブックのノベルゲームの欄などを参考にして、
ゲームのメッセージ表記向けに文字の点滅を行うスクリプトを作っていました。
ゲームのメッセージ送りを促す(スペースキーを押すと次のメッセージが出るみたいな)、アイコンを点滅させようとしているのですが、
自分の考え方でやってみた所、点滅はうまくいったものの、次に移るという段階で壁に当たってしまいました。
あまりメッセージの位置は気にせずその部分のスクリプトを単体で動くように抜き出すと、

	mes "こんにちわ"
x=ginfo(14)+10 y=(ginfo(23)-ginfo(15)) repeat pos x,y:color 255,0,0:mes "◇":wait 50 pos x,y:color 255,255,255:mes "◇" color:wait 50 stick key if key=16:break loop mes "さようなら"

文字の点滅と送りを行うためにWaitコマンドを使ったのですが、Waitの間は当然命令を受け付けず、
これを使うとタイミングよくまたはデタラメにキーを押さなければ次の命令というか文章に移れません。(50だと何度も押してやっと反応するくらい)。
Waitの間隔を5くらいにして短くすれば適度に反応するようになりますが今度はチカチカして見た目にも視覚にも悪いです。
ノベルゲーム系を作ろうとして背景画像なども使う予定なので、私の知識の範囲では出来ればboxfなどで塗り替え続けるような方法はとりたくないなと思っています。
あるいはWaitやBreakで点滅を制御するような方法は非効率なのでしょうか。

文字の点滅について、即座に反応できる良い方法があれば、あるいは間違いがあれば教えていただければと思います。
よろしくお願いします。



この記事に返信する


Ve

リンク

2017/10/25(Wed) 03:33:24|NO.81674

ループ中に入力受付と表示タイミングの処理を入れる場合、
このように表示だけカウントを用意する方法があります。


mes "こんにちわ" x=ginfo(14)+10 y=(ginfo(23)-ginfo(15)) repeat stick key if key=16 : break wait 1 if cnt>50 { pos x,y : color 255,0,0 : mes "◇" if cnt>100 : continue 0 }else{ pos x,y : color 255,255,255 : mes "◇" } loop color : mes "さようなら"

あくまでも一例なのですが、bufferを活用すれば点滅の"◇"を画像に差し替えも可能でしょう。



E.A

リンク

2017/10/27(Fri) 00:58:01|NO.81687

>> Veさん

教えて頂きありがとうございます。
この方法を参考にやっていきたいと思います。



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