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


HSPTV!掲示板


未解決 解決 停止 削除要請

2022
0723
zezenanaHSP3Dish WebDish版のmes命令表示文字欠けについて4解決


zezenana

リンク

2022/7/23(Sat) 10:43:27|NO.96838

「HSP3.7に向けたβテストについてのお願い」にて記載のあります
WebDish版のmes命令表示文字欠けについて
http://hsp.tv/play/pforum.php?mode=all&num=94865#96834

調査した結果、空白の連続数や改行によって欠けが発生します。
改行については、連続改行数の無効や次行位置ズレもあるようです。

改行の問題は、HSP3全般で影響が起きているのでしょうか?
http://hsp.tv/play/pforum.php?mode=all&num=94865#96599

※私の調査環境 WebDishコンソールでは「HSPDish ver3.6」との表示があり
HSPバージョンが異なりましたので、別スレッドにさせて頂きました。

----------
以下のサンプルを WebDishサービスにて実行し確認できました。
Webスペースを所持していないので jsファイルでは未確認です。

動作環境:Windows 10/Google Chrome

WebDishサービス-SoupSeed(HSPDish ver3.6)
https://dev.onionsoft.net/seed/webdish.html

#include "hsp3dish.as" ;#packopt xsize 500 ;#packopt ysize 500 screen 0,500,500 font "",24,1,5:redraw 0 color 150,150,150:boxf repeat 65:if cnt\10=0:color 255:else:color line 0,cnt*10,640,cnt*10:loop repeat 65:if cnt\10=0:color ,,255:else:color line cnt*10,0,cnt*10,640:loop color 255,255,255:pos 0 mes "SP0:AABBCCDDEEFF-OK",4 mes "SP1:AA BB CC DD EE FF-OK",4 mes "SP2:AA BB CC DD EE FF-NG",4 mes "SP3:AA BB CC DD EE-NG",4 mes "ZS1:AA BB CC DD EE-OK",4 mes "ZS2:AA  BB  CC  DD  EE-OK",4 mes "|ENT1:AA\n|BB-NG",4 mes "|ENT2:AA\n\n|BB-NG",4 mes "|ENT3:AA\n\n\n|BB-NG",4 redraw 1

----------
確認結果

空白なし・・・OK
空白1つ・・・OK
空白2つ・・・NG 行末が欠ける
空白3つ・・・NG 行末がさらに欠ける
全角空白1つ・・・OK
全角空白2つ・・・OK
改行1つ・・・NG 次行位置ズレ行末欠け
改行2つ・・・NG 改行2つしない、次行位置ズレ行末欠け
改行3つ・・・NG 改行3つしない、次行位置ズレ行末欠け

-----
今回、WebDishサービスを初めて利用しましたが、

#packopt xsize/ysizeや screenどちらかで設定しても画面サイズが反映されなかったり
適所に redraw 0を入れないと テキスト以外描画がされないなどがありました。

これらについては仕様なのかWebDishサービス独自なのか
ブラウザキャッシュの影響なのかを判断できませんでした。

-----
それと、WebDishサービス利用のために
「HSPプログラムコンテスト/SoupSeed」のページからのリンクを利用したのですが

「ユーザーメニューへ」>「WebDish登録作品」の「HSP部屋で登録」を開くことによって

「Security Center」という巷で噂のWindowsサポート詐欺のページに遷移します。
(「WebDish作品の新規登録」のリンクは問題ないです)

HSPコンテストも近いようですし、低年齢ユーザ層などの詐欺被害が起きる前に
対応が必要と思われます。



この記事に返信する


K-s

リンク

2022/7/25(Mon) 23:49:19|NO.96852

Web版ではmesは一度ブラウザ(の見えないところ)に描画して文字列のサイズを取得し、
そのサイズのcanvasを作って文字列を描画しテクスチャとして利用する、ような処理になっています。
ブラウザに描画するときHTMLのdivタグを作ってそこに文字列を渡すのですが、
HTMLの仕様で連続した半角空白や改行が無視されます。
そのサイズとcanvasでの描画サイズが異なるため欠けが発生するのだと思います。

そういう訳でmesでは連続した半角空白を使用しない、1行ずつmesを使用するのが良いと思います。

ソースコードからだと
http://dev.onionsoft.net/trac/openhsp/browser/tags/3.7b2/hsp3dish/emscripten/fontsystem.cpp?rev=1281
797行目の "div" を "pre" にすれば欠けなくなるかもしれません…

-----

HSP部屋は閉鎖してますね…



zezenana

リンク

2022/7/27(Wed) 08:48:26|NO.96862

>K-s さん

わざわざ調査していただきありがとうございます。
measureTextの取得ズレや font指定のサイズ違いくらいなのかなとか思ってましたが、
Web版(HTML)独自の理由があるのですね。

Web版では「sans-serif」フォント固定で計算しているようですので、
等幅などフォントが変えられないのは意外でした(フォントサイズは適用される)

>そういう訳でmesでは連続した半角空白を使用しない、1行ずつmesを使用するのが良いと思います。
>ソースコードからだと
>http://dev.onionsoft.net/trac/openhsp/browser/tags/3.7b2/hsp3dish/emscripten/fontsystem.cpp?rev=1281
>797行目の "div" を "pre" にすれば欠けなくなるかもしれません…

文字が欠けるのが現状の仕様?とするには微妙な感じですが、
対策していただけることを期待するしかなさそうです。

-----
>HSP部屋は閉鎖してますね…

乗っ取りではなく閉鎖なのですね。
ドメイン失効なら集客目的で購入されたかも知れませんね。



nennneko5787

リンク

2022/7/27(Wed) 15:12:00|NO.96863

jsファイルで検証してみました。
http://nennneko5787.y.ribbon.to/hsp/kaigyo/



zakki

リンク

2022/7/27(Wed) 18:53:20|NO.96864

divをpreにするのは、同等の効果を得るためにはhtmlに
<style>
div#hsp3dishFontDiv {
white-space: pre;
}
</style>
と追記しとくとスペース連続の緩和策としては有効そうです。
何故か改行は微妙ですね。



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