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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0401
s線グラフ10未解決


s

リンク

2010/4/1(Thu) 04:38:20|NO.31723


repeat A=rnd(10) color 0,0,0 pos 0,0 mes A //-----線グラフ描画-----// wait 1 color 255,255,255 boxf loop
で線グラフ描画をしたいのですがうまくいきません。
始点はウィンドウの左下、x軸はcnt、y軸はA*10にしようと思っています。
助けてください。



この記事に返信する


p、USAGI

リンク

2010/4/1(Thu) 06:23:48|NO.31724

>線グラフ描画
これは、折れ線グラフのことですか?
それとも、棒グラフのことですか?

>始点はウィンドウの左下...
と、書いてあるので折れ線グラフだと思いますが、こんなかんじです。
randomize
A=0 //始点用 B=0 repeat 30 color pos cnt*10,ginfo_winy-(A*10)-24 mes A //-----折れ線グラフ描画-----// color 255 line cnt*10,ginfo_winy-(A*10),(cnt-1)*10,ginfo_winy-(B*10) color ,,255 boxf cnt*10-2,ginfo_winy-(A*10)-2,cnt*10+2,ginfo_winy-(A*10)+2 B=A A=rnd(30) await 1 loop
このぐらい自分で考えましょうね(^<>^)



s

リンク

2010/4/1(Thu) 11:23:36|NO.31725

追加質問:
これをタスクマネージャのCPU使用率のごとく表示するにはどうしたらよいですか?



SYAM

リンク

2010/4/1(Thu) 11:33:30|NO.31726

それはあんまりにも丸投げすぎるので、もうちょい自分でがんばってみて、
分からなくなったらわからないトコだけ質問しましょう。

回答もらったって応用できないんじゃ解決になりません。
結局、全部他人に作ってもらうことになっちゃいます。



ESZET

リンク

2010/4/1(Thu) 20:57:28|NO.31733

あと、一つのスレッドで全く違う複数の質問をするのはあまりいいことではないと思います。

http://www.google.co.jp/search?q=HSP+CPU%8Eg%97p%97%A6
検索するとすぐ出ると思いますが。



ESZET

リンク

2010/4/1(Thu) 20:58:25|NO.31734

おっと、質問の意味を取り違えてしまいましたorz すいませんorz



s

リンク

2010/4/2(Fri) 16:23:51|NO.31746


#const WAIT_TIME 3 // ウェイト[10ms] #const SPEED 5 // 移動スピード #const CHARACTER_SIZE 1 // キャラクタの描画サイズ #const BLANK 100 // マップスクロールが始まる位置 x = 0 : y = ginfo_winy / 2 // キャラクタの位置 scrollX = 0 : scrollY = 0 // 画面左上のマップ上での位置(=スクロール量) mapWidth = 300000 // マップの幅 buffer 1, mapWidth, ginfo_winy, SCREEN_NORMAL // ★メインループ★ repeat // 適当にマップを準備 gsel 1 color if C\100 = 0 :pos C,ginfo_winy-(i)-50:mes C //-----折れ線グラフ描画-----// color 255 line C,ginfo_winy-(i),(C-1),ginfo_winy-(j) color ,,255 boxf C-2,ginfo_winy-(i)-2,C+2,ginfo_winy-(i)+2 j=i i=rnd(30) c++ await 1 gsel 0 gosub *moveCharacter // キャラクタを動かす gosub *setScroll // 描画する位置を決める gosub *draw // いろんな描画処理 wait WAIT_TIME loop // キャラクタを動かす *moveCharacter stick key, 5 : speedX = SPEED * ((key >> 2 & 1) - (key & 1)) x = limit(x + speedX, 0, mapWidth) return // 描画する位置を決める *setScroll // (x - scrollX)が画面上でのキャラクタの位置になる if x - scrollX < BLANK{ // キャラクタがBLANKより左側に移動した場合、カメラを移動させる scrollX = limit(x - BLANK, 0, mapWidth - ginfo_winx) } if ginfo_winx - BLANK < x - scrollX { // キャラクタが(ginfo_winx - BLANK)より右側に移動した場合、カメラを移動させる scrollX = limit(x + BLANK - ginfo_winx, 0, mapWidth - ginfo_winx) } return //いろんな描画処理 *draw redraw 0 gosub *drawMap // マップを描画する gosub *drawCharacter // キャラクタを描画する redraw 1 return // マップを描画する *drawMap pos 0, 0 : gcopy 1, scrollX, scrollY, ginfo_winx, ginfo_winy return // キャラクタを描画する *drawCharacter drawX = x - scrollX : drawY = y boxf drawX - CHARACTER_SIZE,250, drawX + CHARACTER_SIZE,ginfo_winy return
重いです、助けてください。
他のプログラムに組み込めるほど軽くしてください。



SYAM

リンク

2010/4/2(Fri) 19:28:13|NO.31750


mapWidth = 300000 // マップの幅 buffer 1, mapWidth, ginfo_winy, SCREEN_NORMAL

ここいら辺が非常にやばいです。
プログラマーは、CPUの能力や メモリの容量には限界があることを考えないといけません。
こんなことをすると、巨大な画像データ(横幅が300000もある!)を作ろうとして、パソコンがほとんど止まってしまいます。



s

リンク

2010/4/3(Sat) 03:20:03|NO.31757

longintに対応するようなものを作りたいのですが



hatter

リンク

2010/4/3(Sat) 10:55:34|NO.31760

> longintに対応するようなものを作りたいのですが
??なんの変数がlongint型になるようなものを作りたいのですか?

あと、bufferの横サイズはこんなに確保しないといけないんですか?
短めにとって、昔のデータを少しずつ破棄していく方法ではダメなんですか?
長くても30000ぐらいで十分だと思いますけど...?
もしくは、配列でログを保存した方がまだ容量はとらないと思います。
まあ、今度は表示ごとに描写処理を必要とするからCPU使用率が重くなるかもしれませんけど。



s

リンク

2010/4/3(Sat) 14:14:12|NO.31762

>短めにとって、昔のデータを少しずつ破棄していく方法ではダメなんですか?
そうしようと思います。



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