トップページgamedev
187コメント72KB

★ゲーム製作期待の星! HSP Part 9 ★

■ このスレッドは過去ログ倉庫に格納されています
0001いいからゲーム作れよ名無しさん01/11/09 22:49ID:???
こいつらを引き取ってください

公式サイト
http://www.onionsoft.net/hsp/

過去スレ
http://pc.2ch.net/test/read.cgi/tech/1004022176/ HSP - Hot Spup Processsor Part 8
http://pc.2ch.net/test/read.cgi/tech/1002478838/ HSP - Hot Spup Processsor Part 7
http://pc.2ch.net/test/read.cgi/tech/1001122847/ HSP - Hot Soup Processor Part 6
http://pc.2ch.net/test/read.cgi/tech/993489862/ HSP - Hot Soup Processor Part 3
関連スレ
http://pc.2ch.net/test/read.cgi/tech/1004522141/ HSPの評価って
http://pc.2ch.net/test/read.cgi/tech/1000213553/ HSP質疑応答スレ
http://pc.2ch.net/test/read.cgi/tech/1003825283/ HSPの詳しい解説とプログラムの仕方
http://pc.2ch.net/test/read.cgi/tech/1002027440/ 10分以内でHSPを使って何か作るスレ
0104名前は開発中のものです。2010/03/04(木) 20:56:07ID:LD9yAEkV
もちろん、配列においても、几帳面な人は死んだ敵の変数は不要のものとし、それ以降の
変数をひとつずつ前にずらす、といったことをやっているかもしれない。
これならば、敵の処理にかかる時間を最小限におさえることができるからだ。しかし一般的
には、敵のフラグという配列変数を用意し、敵の出現と同時に1とし、死ぬと同時に0とする
だろう。この場合、画面に登場する敵の最大数を100とするならば、1フレームごとに100
個のフラグをチェックすることになる。だが現代のPCは十分に高速であるので、気にする
必要もないだろう。
現実には敵の出現数はせいぜい10匹程度であると思われる。HSPの場合注意すべきは、
むしろ地形の方である。例えば32*32ドットの矩形を1ブロックとする。画面が640*480で
あるならば、最大20*15=300個のブロックが配置可能ということになる。存在するブロック
すべてについて、主人公と地形の当たり判定を行わなければならないのだ。インタプリタ
型言語であるHSPにとって、これは苦しい問題だ。敵が壁に当たったら反転する、地面の
端に来たら反転する、といったアルゴリズムである場合、敵と地形との当たり判定も発生
するのだ。例えばawait 16としている場合、16ミリ秒をオーバーすることは由々しき問題
だ。自分のPCでゲームバランスを調整するのであるから、もしも16ミリ秒をオーバー
しているのであれば、自分より速いPCの持ち主では速すぎてものすごく難しいゲームに
なっている可能性もある。この、地形との当たり判定問題に関しては、より巧妙なアルゴ
リズムが必要であるかもしれない。例えば、地形の配列が
chikei(3)="100000000000011"
となっているとする。これは左から4ブロックめの、縦1列の状況である。今主人公がジャ
ンプして、着地しようとしているところだとする。ここでは、主人公の足元の1番前と1番後ろ、
2点の座標だけについて当たり判定を行うものとする。前の座標が今、x=100、y=418である
場合、int(100/32)=3、int(418/32)=13、つまりchikei(3)の14番目の数字を見てただちに
当たりと判定することができる。
0105名前は開発中のものです。2010/03/04(木) 20:56:48ID:LD9yAEkV
3.NORTON INTERNET SECURITY 2010問題

最近になって起こった問題である。私のPCもそうだが、これがインストールしてある。HSP
の実行ファイルをノートンが勝手に消してしまうのである。おにたま氏がノートンに改善を
求め、ノートンが「修正しました」とおにたま氏に連絡したが、直っていない。つまりこれは、
同セキュリティソフトをインストールしてあるすべてのPCで、HSP製のソフトが動かないと
いうことを意味する。このため私は>>100に、アクションゲームを作るのに最適なソフトと
してHSPをお勧めすることができない。驚くべきことに、おにたま氏を初めとするこの問題
に言及している人は、誰も怒っていない。私は昔ソフトウェアの品質保証の仕事をしていた
こともある。烈火のごとく怒るべきである。ノートンは徹夜してでも直せよと。
ノートンは世界からHSPを抹殺しようとしている。
0106名前は開発中のものです。2010/03/08(月) 18:40:40ID:KjIgRWrY
「論考」ってバカじゃね?
0107名前は開発中のものです。2010/03/08(月) 23:52:36ID:xLHwVxSC
一生懸命長文書いたんだから、そんなに責めてやるなよ
0108名前は開発中のものです。2010/03/09(火) 10:24:36ID:rBu1byup
ここまでHSPついて真面目に考えてくれる人も少ない
0109名前は開発中のものです。2010/03/21(日) 16:18:43ID:IJrbN5IE
割と素直に感動した
0110名前は開発中のものです。2010/04/02(金) 13:38:46ID:PHi8AHxO
HSPユーザに質問があります。

ぼくはプログラミングのとっかかりはHSPだったので、使い勝ってがいいのはわかります。

簡単なゲームならすぐに作れるし。


しかし、 ぼくは出会ってしまったんです。 FLASHに。。

確かにムリョウではないですFlashは。
しかしFlashのあまりのすばらしさに感動してしまったのです。

グラフィックを描くことが前提で作られている。 オブジェクトも階層化できるので
HSPみたいに変数がかぶるなどという低次元な心配がいらない。

はっきりいって、HSPで軽くプログラミングを楽しみたいという自分程度のプログラマー
なら、Flashのほうが断然いいのでは?? と思ってしまいました。

HSPユーザーのみなさんはどう思われますか?

HSPを使う理由ってなにかあるのでしょうか?
0111名前は開発中のものです。2010/04/02(金) 13:42:42ID:PHi8AHxO
つづきですが、Flashのスクリプトにはactionscript3.0という高速に実行できる
環境もありますし、

世界中で3DエンジンやらLightWaveなど有名ソフトと連携するためのライブラリが
あります。

さらにブラウザ上で動かすので、windowsでもmacでも遊ぶ事が出来ます。


0112名前は開発中のものです。2010/04/02(金) 13:43:09ID:312z5Jcj
ゲームしか作らないならそれでも良いけど
4がつばかは昨日までですよ
0113名前は開発中のものです。2010/04/02(金) 16:57:57ID:PHi8AHxO
>112
ぼくはまさにゲームの話をしてるんですよ。
HSPでPhotoshopでもつくろうっていうんですか?
0114名前は開発中のものです。2010/04/03(土) 13:13:58ID:9Yh2mBFe
2dスクロールアクションをつくっているんだけど、
SFCのスーパーマリオみたいなオフセット位置の決め方が分からない
具体的にいうと、マリオの向いている方向が、より遠くまで見えて、
急に向きを変えたりしても、違和感なくオフセット位置が動くような。
どなたかアイデアありませんか?
マリオのコードが見たい・・
0115名前は開発中のものです。2010/04/03(土) 14:21:31ID:/HNuBj6+
>>114
キャラクターの向き boolen D (false右向きR,true左向きL)
キャラクターの位置 integer X,Y
ビューポイントX integer VX (Xに対しての相対位置)
ビューポイントXL const VlX (VXが最終的にあるべき位置)
ビューポイントXR const VrX
if D
{
 XVがVlXと同じじゃなければ近づける
} else {
 XVがVrXと同じじゃなければ近づける
}
0116名前は開発中のものです。2010/04/03(土) 18:50:36ID:GPcMKza7
C++しか知らん俺にHSPはどんなことが出来るのか教えてくれ
○○の処理がどんな風に出来る、とか
0117名前は開発中のものです。2010/04/03(土) 20:52:08ID:2IE5q2HF
ウインドウの作成が1行でできる
他色々
0118名前は開発中のものです。2010/04/04(日) 14:23:19ID:hFzrHQaf
>114
洞窟物語のような感じかな?
0119名前は開発中のものです。2010/04/05(月) 07:33:20ID:cS3R7I9s
>>116
何も書かなくても問題なく実行できる
0120名前は開発中のものです。2010/04/05(月) 13:48:01ID:dc21abzx
>>116
Win32 API他、既存のDLLがけっこうお手軽に利用できる。COMも使える。
0121名前は開発中のものです。2010/04/05(月) 13:50:56ID:dc21abzx
ていうか、マニュアル読むかコンテストのページ見た方が早い。
0122名前は開発中のものです。2010/04/05(月) 20:01:05ID:dKgEjKp6
>>116
まず最初に
picload "hentai.jpg"
の一行でウィンドウに画像が表示できる

C++だとハードやOS、jpgのファイル構成の知識も必要ですが
hspならこれ一行、マジでこれ一行
「main」とか「void」とか不要、メモリの確保も解放も不要、DLLも不要
他に、ボタン判定、waitなどゲーム制作的なことは
一行で足りることが多い

>>116 さんは凄腕かもしれないけど
おれならC++のコンパイラだけ渡されて
これらを実現しろと言われるとマジで気が滅入る、というか逃げる
01231162010/04/05(月) 23:05:57ID:LnGtu5ZQ
なるほど、なんとなく分かった。ありがとう
0124名前は開発中のものです。2010/04/07(水) 08:40:57ID:Vkp0Vww4
>>103
変数には文字型配列を使うと管理が楽だよ。
応用すれば何かを重ねて表示する場合にも使える。
基本入出力命令と文字列操作関数はマスターした方がいいかも。

キャラ同士も地形と同じ考え方でいいよ。
移動するたびにキャラ番号を座標から導き出したマスに置く。
ただすでに味方が置いてあるマスの場合、そこには一つしか番号が置けない欠点があるね。
サイズが異なったものや斜面処理でも条件式を加えれば応用は可能だよ。

昔のゲームソフトは速度的に遅かったからそういう処理が多かったんだ。
0125名前は開発中のものです。2010/04/07(水) 21:28:29ID:h2+BYV8H
>>124
RPGならともかく、アクションはそれじゃダメだろ
ポインタですべてのインスタンスを配列かリストで管理すべき。

使用中のインスタンスと未使用のインスタンスを持って、
適宜相互にインスタンスを移動するのが普通だし、汎用的。

それより、アクションはインスタンスの状態管理が重要
状態遷移マシンを作ると楽にアクションゲームが作れる
0126名前は開発中のものです。2010/04/11(日) 13:00:42ID:sX0GCi0v
>>124
え゛?
数値型配列ではいけないの?
0127名前は開発中のものです。2010/04/11(日) 18:27:05ID:60JK+RHt
今hmm.dll使ったゲームを何人かにテストプレイしてもらったんだけど
画像の表示位置が微妙にずれる人がいたんだが
グラフィックボードによっては表示位置や仮想画面からの取得位置がずれたりするもんなのかな?
0128MIAのすごいスクリプト(原理はわからん)2010/05/12(水) 20:33:05ID:zIpdnuJi
前半
; 重力を考慮した状態で硬いバネを複数繋ぎ、ヒモの動きを再現する ※位置と速度の更新方法が、ここまでのサンプルと変わっています
#define N 20 ; 制御点の数
#define L 10.0 ; 制御点を繋ぐバネの長さ
#define G 1.0 ; 重力
#define R 0.98 ; 速度に掛けるダンパー値
#define K 1.0 ; ばね定数
; データ領域の確保 (x,y = 現在の座標、ox,oy = 移動元の座標、vx,vy = 速度)
ddim x, N : ddim y, N : ddim ox, N : ddim oy, N : ddim vx, N : ddim vy, N
*MAIN
stick bt, 256 : if bt & 128 : end
; 移動元の座標を保存
repeat N
; 地面と接触していたら速度を減らす(摩擦)
if y(cnt) >= 460 : vx(cnt) *= 0.8
ox(cnt) = x(cnt) : x(cnt) = limitf(x(cnt) + vx(cnt), 20, 620)
oy(cnt) = y(cnt) : y(cnt) = limitf(y(cnt) + vy(cnt), 20, 460)
y(cnt) += G ; 重力を加える
loop
0129MIAのすごいスクリプト(原理はわからん)2010/05/12(水) 20:34:43ID:zIpdnuJi
後半
; 結果を安定させるため、ある程度繰り返す
repeat 16
; マウス操作(クリックで端を引っ張る)
if bt & 256 {
x(0) = double(mousex) : xv(0) = 0.0
y(0) = double(mousey) : yv(0) = 0.0
}
; 力の解決
repeat N-1 : t = cnt + 1
; バネにかかる力の式 (f = kd)
dx = x(t) - x(cnt) : dy = y(t) - y(cnt)
d = sqrt(dx * dx + dy * dy) : if d = 0 : d = 1.0
f = (d - L) * K : ff = f * 0.5 / d
; 作用・反作用の法則に基いて、力を加える
x(cnt) += dx * ff : x(t) -= dx * ff
y(cnt) += dy * ff : y(t) -= dy * ff
loop
loop

; 速度の更新(元の状態との差を次フレームの速度とする)
repeat N
vx(cnt) = (x(cnt) - ox(cnt)) * R
vy(cnt) = (y(cnt) - oy(cnt)) * R
loop

; 描画
redraw 0 : color : boxf : color 255, 255, 255 : pos x(0), y(0)
repeat N : line x(cnt), y(cnt) : loop : redraw 1 : await 15
goto *MAIN
0130名前は開発中のものです。2010/05/13(木) 14:52:42ID:b/2h1Ezh
>>1
なにこのひどいスレタイ
期待の星ってアホですかと
0131名前は開発中のものです。2010/05/15(土) 20:29:54ID:aV0xMDug
九年たって。
0132名前は開発中のものです。2010/05/17(月) 09:35:01ID:k4j0vMVC
>>80
Yahoo! JAPAN IDが無効です。
0133名無しさん@そうだ選挙に行こう2010/07/11(日) 13:53:45ID:0C7+sX7X
#moduleの内部では#constの設定が効かないみたいなんだがこれは仕様なのか?
0134名前は開発中のものです。2010/07/12(月) 02:20:26ID:y80fjAsy
#defineヘルプよく読め
0135名前は開発中のものです。2010/07/12(月) 17:17:00ID:WvTwcvl6
サンクス。俺はまだモジュールの事がよくわかってないみたいだ。
0136名前は開発中のものです。2010/09/09(木) 11:43:02ID:/waQP0kc
「ラベル名はすでに使われています」

が出まくって困る
なにかよいノウハウはありますか
0137名前は開発中のものです。2010/09/09(木) 21:35:35ID:3g70NkqJ
_oreno_sukuriputo
01381362010/09/09(木) 22:51:35ID:/waQP0kc
ああそうか、頭にアンダーバーつける手があるね
思いつかなかったわ、ありがと
0139名前は開発中のものです。2010/09/10(金) 00:06:34ID:EGCifdrw
名づけに自分ルール作るといいぞ。文字数がやや長めになるが。
0140名前は開発中のものです。2010/11/29(月) 18:51:35ID:sJ2fbJyl
#deffuncと#defcfuncって何が違うの?
0141名前は開発中のものです。2010/12/08(水) 00:09:27ID:0lCsgori
>>140
非常に重要なちがいがあるからちゃんと覚えよう

#deffuncは命令を作る。
だから、#deffuncで定義したモノは命令として他の場所で使える

命令ってのは
screen 0,800,400 みたいに、それ自体で何かを行うモノだ。

一方、
#defcfuncは関数を作る。
関数はあくまで変数や定数のような「値」であり、命令のように突然は使えない

hoge=2+関数+変数 のように使わなければいかないわけだ。

そのため、returnで戻り値(具体的にどういう値なのか?)が必要なわけだ。


関数は、この戻り値を求める間に、色んな命令を実行できるので、使いこなすと捗ったりもするわけだ。

このちがいがわからないと、モジュール変数を使うようになるとちんぷんかんぷんになるから気をつけてね
0142名前は開発中のものです。2010/12/08(水) 20:02:59ID:x1mcEdPI
命令と関数分けてるのって最近じゃ珍しいよね。なんか理由あるのか?
0143名前は開発中のものです。2010/12/09(木) 20:26:44ID:kzVSdZtX
未代入の変数を式で使用できなくする方法はありませんか?
0144アジェグ4倍 ◆4xAJeG.COM 2010/12/17(金) 10:17:55ID:fH3VO3w1
>>103
>敵が1匹死ぬと、該当する変数を不要のものとし、
>ポインタをつなぎ直す、といった処理が必要になってくる。
>座標や敵の種類、現在どういった状況であるのか、
>といったすべての変数について、ポインタの
>つなぎ直し処理が必要になってくるのだ。

コピペかもしれんし遅レスにもなるが、
単にポインタの説明のために考えられたサンプルに過ぎない
そのやり方が、実際の現場で使われてるのが
なんとも嘆かわしい限りだねぇ。

その後、そのテーブルのソートが必要になって、
vectorでインデックス作ってる記述を見たときは、もう・・・
0145名前は開発中のものです。2011/01/23(日) 12:34:19ID:q+kP4u3W
>>142
HSPが最近の言語の仕様じゃないからだろ
0146名前は開発中のものです。2011/01/25(火) 00:52:33ID:pM2xeLh6
当たり判定でぶつかった相手の実数XY情報をreturnで返したいのだが
数値は一つしか返せない。うーむ、設計を見直すか。
0147名前は開発中のものです。2011/01/25(火) 04:23:55ID:pM2xeLh6
寝て起きたら解決した。
refdvalを利用して
#modfunc e_retX
return x
#modfunc e_retY
return y
を作ってそれぞれ呼んで値を返させた。
0148名前は開発中のものです。2011/02/06(日) 16:21:04ID:VYgWoDUh
命令と関数が違うものという理屈がよくわからないな
0149名前は開発中のものです。2011/02/09(水) 19:18:42ID:M3k4P5wE
やっと#modfuncと#deffuncの違いを理解したよ。
新しい魔法を覚えたような気分。
0150名前は開発中のものです。2011/02/10(木) 15:03:09ID:sra5tgS4
#deffuncと#defcfuncのちがいならともかく、
そもそも#modfuncなんてモジュール変数使わなきゃ発見もできないだろ
0151名前は開発中のものです。2011/06/11(土) 20:37:00.36ID:0fW8fZFA
HSPのネットワーク接続のテストをしたいので、協力してくれる人を募集しています。

ttp://pupld.net/07/110611/ns0w2ljveb/index.cgi

こちらよりクライアントのソースファイルをダウンロードして、hspスクリプトエディタ3.2(以降)でF5実行して
ip 218.44.29.42 に接続してみてください

本日24:00まで待ってます。
0152名前は開発中のものです。2011/06/12(日) 00:02:41.99ID:VV0zrgj8
あちゃー1人も協力いただけんかったか・・・

この板人少さ過ぎワロタw
0153名前は開発中のものです。2011/06/12(日) 00:41:31.82ID:AwFFX73i
>>152
板もそうだけどHSPスレは乱立しすぎで余計にダメダメさ
VIPで頑張れ。協力者いそうだし
0154名前は開発中のものです。2011/06/12(日) 00:42:34.18ID:VV0zrgj8
今VIPでがんばってるが食いつき悪くて・・・orz
0155名前は開発中のものです。2011/06/12(日) 02:06:21.11ID:efbIRhOu
http://hsp.tv/play/pforum.php
HSP3掲示板の方がが協力する人いたかも・・・
以前にも似たような要請あったけど何人か協力してたし
0156名前は開発中のものです。2011/06/12(日) 02:25:29.24ID:AwFFX73i
ひどい有様だった
HSPっていうと敬遠されるのが分かる気がした
0157名前は開発中のものです。2011/06/12(日) 03:04:49.37ID:VV0zrgj8
ちゅーか、Sockgetの仕様がヘルプで紹介されてなさすぎでしょこれ
getした部分はソケットから消えるとか書いといてよー
0158名前は開発中のものです。2011/07/04(月) 21:34:05.74ID:MGPyNUuC
ハネハネパラダイス更新してるね

http://rinrin.saiin.net/~kojiwada/
0159名前は開発中のものです。2011/07/06(水) 16:55:53.23ID:qXo8fmDv
windows7もまたまたsp1がきたな
勝ってに更新されてた
0160名前は開発中のものです。2011/08/17(水) 23:35:39.18ID:a4dY4tJb
今コンテスト期間中だよね
そういうのを話するスレとかってない?
0161名前は開発中のものです。2011/08/18(木) 00:25:08.46ID:vkpPW8Fo
>>160
ム板にあるよ
0162名前は開発中のものです。2011/08/18(木) 00:27:07.80ID:opSVPQTh
>>160
ありがとうございました
0163名前は開発中のものです。2011/08/19(金) 07:13:20.23ID:iNoTS0T1
HSPってPS2ぐらいのゲームなら作れるという話を聞いたんだけど本当?
コンテストのゲーム見るに見た目的にSFCからPS程度のものしかなさそうなんだけど
あんまり綺麗なグラフィックは重くて使えないって事なのかな、2DのRPG作りたいんだけども
0164名前は開発中のものです。2011/08/19(金) 07:45:30.06ID:mRGQwp4k
>>163
PSシリーズは3Dを意識したハード
PS2は3D処理は得意だけど、2D処理がとっても苦手なハードなのだ

例をあげるとPS2に移植された2D対戦格闘ゲームのすっごいアルカナハート・・・
スペックの限界オーバーで処理オチ&絵がぐちゃぐちゃで有名だよね

そのころドリームキャストは2D処理が大得意で
次々とアーケードゲームが移植されていった

ええと>>163は2DRPG作りたいんだよね
PS2並のでいいのかな?じゃあHSPでも大丈夫じゃね?たぶん
0165名前は開発中のものです。2011/08/19(金) 07:55:49.31ID:iNoTS0T1
さすがにtypeXの格ゲーぐらいになるとPS2じゃ厳しいよね
とりあえずPS2レベルでドット描き込みまくるぶんにはHSPで大丈夫って事かな
安心したよありがとう
0166名前は開発中のものです。2011/08/19(金) 08:11:49.05ID:mRGQwp4k
>>165
ドットの大きさって・・・もしかして解像度のことだったりする?
PS2の解像度はだいたい640x480だったんじゃないかな?
640x480のウィンドウで作ればPS2と一緒かもね
0167名前は開発中のものです。2011/08/19(金) 08:25:48.29ID:iNoTS0T1
今の所16色でドット打とうと思ってるんだけどあんまり書き込みすぎて容量デカくなると画像表示大変なのかなぁと思って
コンテストのゲーム見ると簡素な2Dゲームが多いからそこが不安になったんだよね
ゲームのグラフィックはPS2ぐらいので満足というか好みなんで解像度もソレでやってみる
0168名前は開発中のものです。2011/08/19(金) 08:52:02.11ID:iNoTS0T1
調べてみた感じフルカラーじゃなければ大して問題なさそうだね
256色でもいけるみたいだ
初心者な質問でスマンかった
0169名前は開発中のものです。2011/08/19(金) 10:06:00.51ID:kxdLG7Tu
PS2ぐらいってのは理論上は〜ってやつだね
そもそも何人ものプロが朝から晩まで頑張って何十日もかけて作ってるものを
アマチュアが1人〜数人で仕事や学業の合間の時間で完成させるのは無理な話
0170名前は開発中のものです。2011/08/19(金) 10:25:21.90ID:iNoTS0T1
理論上できると知っただけでもかなりやる気になったよ
C++までになるとさすがに無理だと思ってたからね
プログラム板のほうに質問スレあるみたいなのに親切にありがと
0171名前は開発中のものです。2011/08/19(金) 18:21:26.69ID:mRGQwp4k
意識が上を目指すのはとてもいいことだと思う
それがムリ無茶無謀でも俺は好きだよ
0172名前は開発中のものです。2011/08/28(日) 20:44:57.03ID:MduuGjyU
スレ立てから10年が経とうとしている
ゲ製作から手を引いた人はどれくらいいるだろう
0173雨島珠洲歌 ◆hpQKE7cBAE5Y 2011/11/02(水) 21:00:02.12ID:5qGBDxfw
ここを俺の日記帳にする
0174雨島珠洲歌 ◆hpQKE7cBAE5Y 2011/11/02(水) 21:03:25.27ID:5qGBDxfw
メモ

メモリ上の png を読み出すには GDI+ (a2d.hsp に細工をすると楽) を使う
0175雨島珠洲歌 ◆hpQKE7cBAE5Y 2011/11/02(水) 21:06:59.65ID:5qGBDxfw
GDIベースならネットブックで fps60 はかなり難しい
0176雨島珠洲歌 ◆hpQKE7cBAE5Y 2011/11/08(火) 19:48:44.14ID:x9yT+23z
ペロッ
これは一日坊主の味だ
0177名前は開発中のものです。2011/11/23(水) 14:20:26.90ID:aX9kTeHZ
すみません。知恵を貸して欲しいのです。
現在、ロードモナークみたいなリアルタイムSLGを作っているのですが、
素人技でくみ上げたらものすごく重くなりました。メインのルーチンは
キー入力→(0〜9or10〜19or…480〜489or490〜499)味方駒処理→(0〜9or10〜19or…480〜489or490〜499)敵駒処理
→(0〜5or6〜11or…288〜293or294〜299)味方拠点処理→(0〜5or6〜11or…288〜293or294〜299)敵拠点処理→
各グラフィック表示→各情報表示→戻る
といった感じでまわしています。

メインルーチン内ではサブルーチンを出来るだけ使わないようにしてまっすぐ下へ流れるように組んでいるつもりです。
モジュールは現在使用していません。

抽象的過ぎるのは承知ですが、なにかお心当たりが有る方、ご教授ねがいます。
0178名前は開発中のものです。2011/11/23(水) 14:22:10.59ID:2rKPW63Z
原因がわからないなら描画回数減らせば?
0179名前は開発中のものです。2011/11/23(水) 14:25:34.25ID:+B6YWhEg
適当な範囲でコメントアウトしていってどの処理が重いのか調べるところから始めてはどうでしょう
0180名前は開発中のものです。2011/11/23(水) 14:35:24.07ID:aX9kTeHZ
>>178
ありがとうございます。
いわれてみれば、全部処理してから描画しては動かなすぎたので、
今は10駒ユニット処理毎に一回描写命令を出していました。
描写命令を出すタイミングを考えて見ます。

>>179
ありがとうございます。
成る程、各処理に仕込んでやってみます。
0181雨島珠洲歌 ◆hpQKE7cBAE5Y 2011/11/23(水) 14:56:38.29ID:71Od6Kju
>>177
描画関連だけ

毎度 celput とかでマップチップを並べるよりも
背景専用に buffer を用意、変更があるときに buffer に描画したほうが圧倒的に早くなる

gmode 4 は遅いので gmode 2 に置き換えられるところは gmode 2 を使う
0182名前は開発中のものです。2011/11/23(水) 15:11:52.66ID:Krno6R4j
>>177
まず描画と他処理の処理時間を分けて計測
これが分からないと改善の方向が分からない>

#uselib "winmm.dll"
#cfunc global timeGetTime "timeGetTime"
*main
redraw 0

処理開始=timeGetTime()
repeat 50000
a+
loop

描画開始=timeGetTime()
処理時間=描画開始-処理開始
color
boxf
pos 0,0
color 255,255,255
mes "処理時間="+処理時間+" 描画時間="+描画時間
redraw 1
描画終了=timeGetTime()
描画時間=描画終了-描画開始

await 16
goto *main

秒間60フレなら16msぐらいに収める必要がある
0183名前は開発中のものです。2011/11/23(水) 15:36:52.14ID:aX9kTeHZ
かたかたやってて夢中になってしっまていた

>>181
ありがとうございます。
gmodeは極力2で可能ならば1でやっております。
あらかじめバッファにマップを仕込むのは正直「その発想は無かった」です。
いじってみます。

>>182
ありがとうございます
正直に申し上げますと、モジュールはわけわからんで手を付けてないんですが、
つかって無いのですが、せっかく頂いたソース、これを機会に理解できるよう勉強します。

夜勤なので寝ます。皆さん、ほんとにありがとう。
また、来ます。
0184名前は開発中のものです。2011/11/23(水) 15:38:48.35ID:aX9kTeHZ
日本語が崩壊してしまっている。
つかって無いのですが、は飛ばして読んでいただければ幸い
0185名前は開発中のものです。2011/11/23(水) 16:06:26.92ID:Krno6R4j
#uselib "winmm.dll"
#cfunc global timeGetTime "timeGetTime"

winmm.dllって言うDLL内にあるtimeGetTimeをHSPの関数として使えるように登録
timeGetTimeはPC起動してからの経過時間を1000分の1秒(1ms)単位で収得できる
winmm.dllはWindowsなら最初からあるDLLだから登録するだけで使用可能

gettime(7)も1ms単位で収得できるけど0〜999なのと何故か16ms未満ではまともに収得できない

>正直に申し上げますと、モジュールはわけわからんで手を付けてないんですが、
モニュールと外部DLLは別物
外部DLL使うときに使いまわししやすいようにモジュールが使われる事が多い
0186名前は開発中のものです。2011/11/24(木) 09:10:09.98ID:3U67mdMm
フルカラーでやってない?
ウインドウモードは8ビットカラーでやらないと遅いよ
それかDirectXを使えば速くなる
0187名前は開発中のものです。2011/11/25(金) 22:42:51.84ID:jagBkXOx
結構重い処理をやっていて、速度が不満なのですが、
HSP用のDLLとやらについて学べるサイトはありませんでしょうか
■ このスレッドは過去ログ倉庫に格納されています