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


HSPTV!掲示板


未解決 解決 停止 削除要請

2018
0106
knhsp3dishスクリプトをhtmlにすると、setcls 0は無効になる?3解決


kn

リンク

2018/1/6(Sat) 16:53:08|NO.82197

以下のようなスクリプトをwindows7で実行すると、cls 0により、画面はクリアせず表示されますが、
hsp3dish helper(ver.1.6)でhtmlに変換すると、cls 0が無効になり、画面がクリアされ、表示されてしまいます。
htmlでも画面をクリアせずに表示したいのですが、方法はないでしょうか。ご教示よろしくお願いします。

#include "hsp3dish.as"
wx=ginfo_winx
wy=ginfo_winy
//
setcls 0 //画面クリアを行わない <----windows7では有効だが、htmlにすると有効にならない。
//
r=200.0
t=0.0
dt=0.25
x=0.0

*main
//////////
redraw 0
y=wy/2-r*sin(t)
x=x+20.0
color 255,255,255
circle x,y,x+50,y+50,1  //塗りつぶし
redraw 1
//
await 30
if x>wx{
color 0,0,0:boxf
x=0.0
}
t=t+dt
goto *main
////////////
end



この記事に返信する


zakki

リンク

2018/1/6(Sat) 23:23:53|NO.82202

WebGLではデフォルトでは以前のフレームのバッファは破棄されEmscripten+SDLからはそのオプションを触れないので半分仕様です。

力技としてはhsp3dish.jsの中の

var webGLContextAttributes = { antialias: SDL.glAttributes[13] != 0 && SDL.glAttributes[14] > 1, depth: SDL.glAttributes[6] > 0, stencil: SDL.glAttributes[7] > 0 };
のような箇所に preserveDrawingBuffer: true を追加するとsetcls 0が効くようになると思います。



kn

リンク

2018/1/7(Sun) 08:08:19|NO.82205

ありがとうございます。hsp3dish.jsの中に、下のように1行を付け加えたらsetcls 0が有効になりました。
(描画していくと、途中で描画の動きが少々遅くなり、少しカクカクした描画になってしまいます。)

var webGLContextAttributes = {
antialias: SDL.glAttributes[13] != 0 && SDL.glAttributes[14] > 1,
depth: SDL.glAttributes[6] > 0,
stencil: SDL.glAttributes[7] > 0,
 preserveDrawingBuffer: true   
};



kn

リンク

2018/1/7(Sun) 09:05:12|NO.82206

firefox ESR 52.5.2(32ビット)で実行すると描画がぎこちなくなりましたが、
chrome バージョン: 63.0.3239.132(Official Build) (64 ビット)だと、問題なく描画できました。
ありがとうございました。



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