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


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0804
k nakahgdraw5 で描画しているときの、背景色と消去の方法3解決


k naka

リンク

2017/8/4(Fri) 20:17:13|NO.80826

高校の授業教材をHSPで作って使わせていただいております。
画面左半分を hgdraw 1 で運動状態の様子を,
画面右半分を hgdraw5  でグラフを,
で描画させようと考えていますが、次の事で行き詰まっています。
clscolor $3333で背景を設定しましたが、hgdraw5 にした場合、背景色を付けることは出来ないのでしょうか。
また、hgdraw5で描画している場合は、その画面を消去することも出来ないのでしょうか。
毎回、初心的な質問で申し訳ありせんが、ご教示よろしくお願いいたします。
/////////////////////////////////////////////////////////////////////////////
#include "hgimg3.as"
//
wx=1366:wy=768
bgscr 0,wx,wy,0,0,0
hgini
clscolor $3333 ; 背景色の設定
//////////////////////////////////////////////////////////////////
texload "g.bmp" ; テクスチャの登録
tex1s=80 ;テクスチャのサイズ
tex1=stat
//
rr=200.0
t=0.0
dt=0.01
//
*main
x=rr*cos(t)
y=rr*sin(t)
////////////////画面を消去しながら描画/////////////////////////////////////////
hgview 0,0,wx/2,wy
hgdraw 1
gmode 2,tex1s,tex1s          ;テクチャの描画
pos wx/2-400+x,wy/2-y
hgrotate tex1,0,0,0,tex1s/1.5,tex1s/1.5
/////////////////画面消去せずに描画//////////////////////////////////////////////
hgview wx/2-1,0,wx/2,wy
hgdraw 5
//hgdraw 7
gmode 2,tex1s,tex1s          ;テクチャの描画
pos wx/2+400+x,wy/2-y
hgrotate tex1,0,0,0,tex1s/1.5,tex1s/1.5
/////////////////////////////////////////////////////////////////////////////////
hgsync 2
t=t+dt
//
;キーボード の受付
;キー押し続けても 1回の反応
stick k,0
if k&128 : goto *owari ; [ESC]で終了
if k&16 {          ;スペース
repeat
stick k,0
if k&128 : goto *owari ; [ESC]で終了
if k&16 : break ; スペースでぬける
loop
}
goto *main
//////////
*owari
end



この記事に返信する


暇人

リンク

2017/8/4(Fri) 20:39:22|NO.80827

*main前に hgdraw 0 で全画面クリアすれば良い
hgrectで塗りつぶしても良い

質問とは関係ないけど

repeat stick k,0 if k&128 : goto *owari ; [ESC]で終了 if k&16 : break ; スペースでぬける loop
このループ内にはawait等入れないとCPUコア一個分使い切る



暇人

リンク

2017/8/4(Fri) 20:57:36|NO.80828

あ、hgrectはhgdraw後に実行する必要あるから
結局hgdrawは必要か・・・



k naka

リンク

2017/8/4(Fri) 21:20:22|NO.80829

早速の解決をありがとうございます。感謝いたします!!

#include "hgimg3.as"
//
wx=1366:wy=768
bgscr 0,wx,wy,0,0,0
hgini
clscolor $3333 ; 背景色の設定
//////////////////////////////////////////////////////////////////
texload "g.bmp" ; テクスチャの登録
tex1s=80 ;テクスチャのサイズ
tex1=stat
//
rr=200.0
t=0.0
dt=0.01
//
hgdraw 0   //←---------------------------------------------------------------------------追加
*main
x=rr*cos(t)
y=rr*sin(t)
////////////////画面を消去しながら描画/////////////////////////////////////////

hgview 0,0,wx/2,wy
hgdraw 1
gmode 2,tex1s,tex1s          ;テクチャの描画
pos wx/2-400+x,wy/2-y
hgrotate tex1,0,0,0,tex1s/1.5,tex1s/1.5

/////////////////画面消去せずに描画//////////////////////////////////////////////
hgview wx/2-1,0,wx/2,wy
hgdraw 5
//hgdraw 7
gmode 2,tex1s,tex1s          ;テクチャの描画
pos wx/2+400+x,wy/2-y
hgrotate tex1,0,0,0,tex1s/1.5,tex1s/1.5
if t>=2.0*3.1416:t=0.0:color 0,51,51:hgrect (wx/2+wx)/2,wy/2,0,wx,wy //←--------------- 追加
/////////////////////////////////////////////////////////////////////////////////
hgsync 2
t=t+dt
//
;キーボード の受付
;キー押し続けても 1回の反応
stick k,0
if k&128 : goto *owari ; [ESC]で終了
if k&16 {          ;スペース
repeat
stick k,0
if k&128 : goto *owari ; [ESC]で終了
if k&16 : break ; スペースでぬける
await 2                                 //←---------------追加
loop
}
goto *main
//////////
*owari
end



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