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


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0809
うしdishで多量描画2解決


うし

リンク

2016/8/9(Tue) 09:41:58|NO.76566

下記のソースで、描画ポイントが200位までは、何とかなりますが、
300位から後半のmesが実行されません。
実際に書きたいのは2300位です。winでは2300書いてもちょっと重いかな程度です。
アンドロイドの実機では、描画の制限時間みたいなのが有るのでしょうか?
原因と対策をお願いします。
#include "hsp3dish.as"

buffer 1,32,32,
picload "112.png"
xmax=ginfo(20)
ymax=ginfo(21)
screen 0,xmax,ymax,,0,0

bairitu=35.0
xoffset=4700.0
yoffset=1550.0
aachr="3"
lomax=164.31
lomin=122.0
lamax=90.0-50.0
lamin=90.0-20.0
xoffsetlh=lomax*bairitu
yoffsetll=lamax*bairitu
xoffsetll=lomin*bairitu
yoffsetlh=lamin*bairitu
wtn=0
olda01l=0
olda0x=0
olda0y=0
dxx=0.5
dyy=0.5
lll="LL"
notesel asiato
notesel ananote
noteload "u16point1.csv"
anamx=notemax
*main
;gosub *getll
gosub *label
mw=0
mtlist a ; ポイントIDリスト取得
;if stat=2 {gosub *opm}
;if stat=1 {gosub *ocl}
await 1000/30;60
goto *main
stop
;**************************************************
*label
redraw 0
color 255,255,255
boxf ;0,0,xmax,ymax
pos 10,00
color 0,0,255
yhi=double(qabc)
xhi=double(qoabc)
jxxx=xhi*bairitu-xoffset
jyyy=90.0*bairitu-yhi*bairitu-yoffset
color 0,0,0
j=0
notesel ananote
repeat 200;anamx;100
getstr ana1,ananote,j,0
if strsize=0 : break ; サイズが0ならば終了
j=j+strsize
getstr ana2,ananote,j,0
j=j+strsize
getstr ana3,ananote,j,0
j=j+strsize
xxx= double(ana3)*bairitu-xoffset:yyy=90.0*bairitu-double(ana2)*bairitu-yoffset
ana1=strmid(ana1,1,100)
boxf xxx,yyy,xxx+3,yyy+3
pos xxx,yyy
mes ana1
await 0
loop
;枠
color 0,0,255
xxx1= lomin*bairitu-xoffset:yyy1=lamax*bairitu-yoffset
xxxx1= lomax*bairitu-xoffset:yyyy1=lamin*bairitu-yoffset
boxf xxx1,yyy1,xxxx1,yyy1+3;上
boxf xxx1,yyyy1-3,xxxx1,yyyy1;下
boxf xxx1,yyy1,xxx1+3,yyyy1-3;左
boxf xxxx1-3,yyy1,xxxx1,yyyy1;右
;*********************************************
pos xhi*bairitu-xoffset,90.0*bairitu-yhi*bairitu-yoffset
gmode 2,32,32,128
grotate 1,0,0,(6.28/360*HDsin)
color 255,0,0
boxf xhi*bairitu-xoffset+20.0,90.0*bairitu-yhi*bairitu-yoffset+20.0,xhi*bairitu-xoffset+120,90.0*bairitu-yhi*bairitu-yoffset+110.0
color 255,255,255
boxf xhi*bairitu-xoffset+21.0,90.0*bairitu-yhi*bairitu-yoffset+21.0,xhi*bairitu-xoffset+120,90.0*bairitu-yhi*bairitu-yoffset+110.0
color 0,255,0
pos xhi*bairitu-xoffset+22.0,90.0*bairitu-yhi*bairitu-yoffset+20.0
mes "A."+ALT+"m"
mes "H."+HDsin+"°"
mes "S."+SPDk+"km/hr"
pos 250,0

h="00"+str(gettime(4))
m="00"+str(gettime(5))
hm=strmid(h,-1,2)+":"+strmid(m,-1,2)
mes hm
;デバッグ用
color 255,0,0
pos 10,10
mes "kxhi="+kxhi
mes "kyhi="+kyhi
mes "xoffset="+xoffset
mes "yoffset="+yoffset
mes "xoffsetll="+xoffsetll
mes "yoffsetll="+yoffsetll
mes "xoffsetlh="+xoffsetlh
mes "yoffsetlh="+yoffsetlh
mes xxx
mes yyy
mes a01l
mes ana1
mes ana2
mes ana3
redraw 1
return



この記事に返信する


zakki

リンク

2016/8/9(Tue) 21:20:01|NO.76575

AndroidやWebGLでは(もしかりたらiOSでも)、1フレームでのmesで表示された文字列の行数の種類の数だけテクスチャが作られます。
mes ana1 を mes "TEST" に書き換えて動くならそのテクスチャ数あるいはメモリ量の制限が原因の可能性があります



うし

リンク

2016/8/10(Wed) 07:13:44|NO.76577

zakki様
ありがとうございます。"TEST"で動きました。
能力以上のことをさせようとしていたようですね。
何とかして、間引く方法を考えます。お世話になりました。



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