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


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0808
ヒビノ一文字ずつ表示のエフェクト(文字幅取得?)4解決


ヒビノ

リンク

2016/8/8(Mon) 10:53:43|NO.76549

お世話になります。

emes命令の一文字ずつ表示って文字列中の文字コードから2バイトか1バイトかを判別して、
文字ごとに瞬間表示させるものですが、
よく動画作成ソフトとかゲームで文字列が拡大・縮小しつつ表示されたり、
一文字ずつ下からフェードインする形で表示されたりするものがあります。

これを再現する場合はbufferなどで確保した領域に文字列を表示してから
画像をコピーする要領でscreen画面に張り付けていく方法になるんでしょうか?

またその方法をとる場合は文字ごとに文字幅を取得してgcopyやらcelputやらやると思うんですが
等幅フォントではない場合にはどのようにして幅を知ることができますか?



この記事に返信する


MillkeyStars

リンク

2016/8/8(Mon) 13:38:18|NO.76552

ginfo(14) と ginfo(15) が対応する関数だと思いますよ。
ただしこの場合でも、文字列が 1バイト・2バイト混在する文字列の場合は正しく取得できませんので、1バイト文字と2バイト文字を判別するようにしてください。


a = "おにたまさん" mes ""+a mes "出力された文字列サイズ : X."+ginfo(14)+" / Y."+ginfo(15)



MillkeyStars

リンク

2016/8/8(Mon) 13:42:25|NO.76553

追記です。一文字単位の判別のスクリプトは、そのまま hsp3util.as 内の emes 命令の場所に処理として書かれています。
それを参考にしてください。



GENKI

リンク

2016/8/8(Mon) 21:09:56|NO.76558

2バイト文字の判定はこっちのほうがわかりやすいと思います。処理の理由も明確ですし。
お好きな方を参考になさってください。

HSP開発wiki
http://wiki.hsp.moe/String%EF%BC%8F%E6%94%B9%E8%A1%8C.html#o681c775



ヒビノ

リンク

2016/8/9(Tue) 14:00:38|NO.76568

ginfoにそのモードがあったとは・・・見落としていました。
MilkeyStarsさんありがとうございます
GENKIさんもわかりやすい解説ページの紹介ありがとうございます



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