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


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
0921
UHA視覚党emesで処理を止めない8解決


UHA視覚党

リンク

2021/9/21(Tue) 18:40:24|NO.93933

こんにちは。
hspでゲームを作っています。最近emesという便利なものを知ったのですが文字が出終わるまで
次の処理をしてくれません。
repeat-loopの間にプログラムを入れているので、文字が出ている間は動きが全て止まってしま
います。
emesを入れても処理を止めない方法かそれ以外の方法で1文字ずつ文字を表示する方法があった
ら教えて下さい。
よろしくお願いします。



この記事に返信する


zrs90(5さい)

リンク

2021/9/21(Tue) 18:53:10|NO.93934

その件は、9/10頃、ねんねこさんが
同じ質問をしており、対処方法を書いた方が
見えます。...この掲示板の2ページ目です。
参考にしてみて下さい。



UHA視覚党

リンク

2021/9/21(Tue) 19:46:12|NO.93936

確かにありますね。よく見ず投稿してすみません。
ですがあそこでは日本語文字列ではできていないようです。
自分でもいじって見ます。手に負えなくなったらまた質問させていただきます。
一応解決済みにしておきます。



沢渡

リンク

2021/9/21(Tue) 21:22:17|NO.93938

件のスレのGENKIさんのコードを改造して、日本語等の全角文字に対応させてみました。
UTF-16では半角文字も全角文字も1文字としてカウントされるのを利用しています。

#include "kernel32.as" #include "user32.as" dim rect,4 rect=0,0,640,480 //rectには表示させたい領域の左上X座標、左上Y座標、右下X座標、右下Y座標を入れる a="いろはにほへとちりぬるを\nわかよたれそつねならむ\nうゐのおくやまけふこえて\nあさきゆめみしゑひもせす" sdim a16,strlen(a)*2+2 : cnvstow a16,a //UTF-16に変換 frmwait = 6 //表示スピード(frmwaitフレームおきに文字を増やす) c = 0 //表示する文字数 lstrlenW varptr(a16) : c_max=stat //UTF-16に変換した文字列の文字数を求める(UTF-16では半角文字も全角文字も1文字) end_flag=0 //文字表示を終了したフラグ repeat await 30 if end_flag : continue if cnt\frmwait=0 { c++ redraw 0 color 255,255,255 : boxf rect(0),rect(1),rect(2)-1,rect(3)-1 color 0 //DrawTextWはUTF-16の文字列を表示するAPI(実行後redraw 1を実行する必要あり) // https://www.tokovalue.jp/function/DrawText.htm DrawTextW hdc,varptr(a16),c,varptr(rect),0 redraw 1,rect(0),rect(1),rect(2),rect(3) if c=c_max : end_flag=1 } loop



zrs90(5さい)

リンク

2021/9/21(Tue) 21:45:15|NO.93939

よそのサイト見に行ってる間に
日本語対応のソースまで
アップされてる。すごいです。
...ありがとうございました。



GENKI

リンク

2021/9/22(Wed) 00:37:40|NO.93941

> その件は、9/10頃、ねんねこさんが

こちらですね。
http://hsp.tv/play/pforum.php?mode=all&num=93831


> 確かにありますね。よく見ず投稿してすみません。

質問を書き込む前に「記事検索」の欄に「emes」と入力してその下にある「検索」ボタンを押すと必要な情報が見つかることがあるので便利ですよ。
ログにあっても見つかりにくいことはよくあるので、少し探して見当たらないときはすぐ投稿。


>> NO.93938
最近は、UTF-16に変換して判定する方法があるんですね。ありがたい。
Shift-JISのまま2バイト文字かどうかを判定したい場合は、こちらのページの情報が便利です。
https://wiki.hsp.moe/String%EF%BC%8F%E6%94%B9%E8%A1%8C.html#o681c775



ねんねこ

リンク

2021/9/22(Wed) 17:09:54|NO.93946

>>93938
ありがとうございます!
なんかこっちが役に立ちました!
(質問主ではないです...)



沢渡

リンク

2021/9/23(Thu) 10:54:30|NO.93951

すみません、NO.93938のコードについて修正です。
下の方にある

redraw 1,rect(0),rect(1),rect(2),rect(3)
は、

redraw 1,rect(0),rect(1),rect(2)-rect(0),rect(3)-rect(1)
に置き換えてください。



UHA視覚党

リンク

2021/9/23(Thu) 20:46:26|NO.93953

質問主です。
色々いじって見てたら既にすごいのできてた...(小並感)
皆さんありがとうございます!
>質問を書き込む前に
次からはそうさせていただきます。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.93933への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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