トップページgamedev
1001コメント311KB

HSP - Hot Soup Processor [11]

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2005/12/02(金) 11:02:48ID:/jDdeuWB
       (  ,,,)
        .(  ,,)      スクリプト言語 HotSoupProcessor について
        ( ,,).        ゲーム製作の視点から、また〜りと語り合うスレ。
     , -──- 、
    (,;::-──-; )-、
     .|` ̄ ̄ ̄´;;|ヽ l   * 質問する前に検索してみる事
     l;    :::;;;l-' /   * ヲチ、ネタなどはスレ違い
    ,-ヽ───.'-、´..   * 歴代スレ、関連サイトは >>2-8 あたり
    ヽ ──── '

  ONION software (本家)
   http://www.onionsoft.net/

0278名前は開発中のものです。2005/12/30(金) 23:01:20ID:k3VeeOb3
easyHTTP moduleがhsp3でつかえないんだが、
なにか他の方法はないだろうか。

掲示板への書込みソフトなんだけど、
串さす作業ができなくなってしまった。
0279名前は開発中のものです。2005/12/30(金) 23:14:44ID:u7zJq6Ju
>>277
互換モードで動作させるには、スクリプトの先頭に
"#include "hsp261cmp.as"
という一行を追加するらしいね
0280名前は開発中のものです。2005/12/30(金) 23:16:17ID:u7zJq6Ju
#include "hsp261cmp.as" だった
0281名前は開発中のものです。2005/12/31(土) 11:27:12ID:RYr7sjX8
hspinet.dllは?
0282名前は開発中のものです。2005/12/31(土) 13:24:29ID:d5Luy4bP
シューティングゲームを作っています
キャラを移動するのはgcopyやgmodeを使ってできたんですが
背景があるようにするとキャラが移動したとき元いた場所を描き直す方法が分かりません
どうすればいいんでしょうか?お願いします。
0283名前は開発中のものです。2005/12/31(土) 13:25:58ID:1PrkN1v9
>>282
想像力の薄いやつだな。
じゃあ今はどうやってキャラが元いた場所の絵を消しているんだ?
まさか分身のように残ったままにしているわけじゃああるまい。
0284名前は開発中のものです。2005/12/31(土) 13:31:58ID:9e3y+C97
毎フレームごとに、背景とキャラクタを描けばいいんじゃないかな。

redraw 0
背景を描く(ふるい画面は書き直される)
キャラを描く
redraw 1

こんな感じ。
それで遅ければ、プラグインを使う。
0285名前は開発中のものです。2005/12/31(土) 14:47:52ID:8S3HhByr
>>282
>gsel 1
>pos 0,0
>gcopy 2,0,0,640,480
>pos 245,303
>gcopy 3,0,0,18,28
>gsel 0
>pos 0,0
>gcopy 1,0,0,640,480
buffer 1 はディスプレイへの描画直前のバッファ
buffer 2 は背景
buffer 3 はキャラクタ
おれはこうやってる
redrawも気になってたけどよくわからん

>>275の回答と、
buffer命令で作ったメモリ領域の開放の仕方を教えて欲しいッス
0286名前は開発中のものです。2005/12/31(土) 18:57:16ID:CIkh7TEW
メモリ開放ってこれでいいんじゃないの
buffer 2,,,
0287名前は開発中のものです。2005/12/31(土) 19:06:16ID:UFJK8zwM
>>285
Z座標ジャマイカ

グループ pos: (初期値:0,0,0)
            オブジェクトのX,Y,Z座標を指定します。
            2Dオブジェクトの場合は、(X,Y)が座標に使用され、
            Zは優先度(0.0〜1.0)として扱われます。
0288名前は開発中のものです。2005/12/31(土) 21:43:44ID:8S3HhByr
>>286
おおっ、テラカシコス!
全く思いつかなかったですよ

>>287
htmlのhelpには載っていなかったので
doc内のテキストに書いてあるとは盲点でした

2方ともありがとうございます
0289名前は開発中のものです。2006/01/01(日) 03:14:32ID:SswORLyP
ラジアン(角度)が分かりません。
弟の教科書見たら、πとか書いてあるんだがHSPだと(0.0)というパラメータ書式だよね。
例えばサイン30°をsin()関数で出したいとき、括弧の中には何を入れればいいんでしょうか?
分かる人、原理と出来れば30にどういう計算を施せばラジアンに換算出来るのかを教えてください。

STGでnWay弾(nは可変に)の座標計算に使いたいのです。
0290名前は開発中のものです。2006/01/01(日) 03:25:03ID:SswORLyP
ってぐぐったら出てきました。吊ってきます。表計算シートに登録して使い回そう。
携帯でもGoogle使えるんですね。

スレ汚し申し訳ない。
0291名前は開発中のものです。2006/01/01(日) 17:51:58ID:ac9iHGdI
計算問題を何秒で解けたかを計りたいのですが、いい案が思いつきません。
今は、最初にgettimeで分と秒を取得して、分の数値を60倍にして分と秒を足す。
回答時にも同じことをして、(回答時の数値-最初の数値)秒とかかった時間を表示する
というのを考えているのですが、他に何か拡張プラグインを使わない方法はあるのでしょうか。
0292名前は開発中のものです。2006/01/01(日) 19:45:25ID:sZtCOQUS
hspdxのes_timerでいいでしょ
なんで拡張プラグイン使わんの
0293名前は開発中のものです。2006/01/01(日) 20:48:31ID:ac9iHGdI
>>292
特に理由はありません。貴方の紹介して下さったのを使おうと思います。有難うございました。
0294名前は開発中のものです。2006/01/01(日) 22:11:07ID:KF7QAeox
気持ちは分かるが、
directXと全然関係なさそうなのにそれはないんじゃないの… > hspdx
HSP3ならes_timerと同等機能をプラグイン無しでも可能。

------------
#uselib "winmm.dll"
#cfunc timeGetTime "timeGetTime" ;win起動時からの_時間を得る命令

repeat :mes ""+timeGetTime() :wait 100 :loop
------------
0295名前は開発中のものです。2006/01/01(日) 22:40:52ID:ac9iHGdI
>>294
そのような方法もあったのですか。有難うございました。
0296名前は開発中のものです。2006/01/02(月) 17:44:48ID:0XqEMvTf
dim map,20,20
map=1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0

2行目の配列が無効とエラーが出ます
何がいけないんでしょうか?
それと、Debug Windowで配列変数の中身が数字一つしか表示されないんですがいいんでしょうか?
0297名前は開発中のものです。2006/01/02(月) 18:45:27ID:Eqr0/jc+
やるならこう

map.0.0= …
map.0.1= …
map.0.2= …

map.0.0=1,2,3は
map.0.0=1 :map.1.0=2 :map.2.0=3と同じ
0298名前は開発中のものです。2006/01/02(月) 18:48:56ID:LTu79myX
>>296
二次元配列について考えろ。
Debugウィンドウを見回せば分かること。
0299名前は開発中のものです。2006/01/02(月) 18:53:06ID:SxNcC3UV
あー、でも>>296の書式って便利だったよな。0,0->1,0->2,0->0,1->1,1....という順番がキモかったけど。
0300名前は開発中のものです。2006/01/02(月) 23:13:07ID:hNGvdDyu
ごめん、もう一つ質問
HSP3使いはじめたんだけどこれからasファイルはincludeとかdimとかの宣言しまくって
hspファイルのほうでasファイルをincludeすればおk?
0301名前は開発中のものです。2006/01/03(火) 15:39:12ID:8Zrm0DzY
RPGなどのHPゲージはどう作るんですか
0302名前は開発中のものです。2006/01/03(火) 15:48:19ID:tTnFcG9X
repeat HP
line x1+cnt,y1,x2+cnt,y2
loop
0303名前は開発中のものです。2006/01/03(火) 16:00:53ID:8Zrm0DzY
HPが増えてもゲージの長さが変わらないやつが作りたいです
0304名前は開発中のものです。2006/01/03(火) 16:05:28ID:tTnFcG9X
空のゲージの上に302じゃ駄目なのか?
0305名前は開発中のものです。2006/01/03(火) 16:09:33ID:j5jy4Ag5
割合でやれよ。
0306名前は開発中のものです。2006/01/03(火) 16:11:30ID:u7HGdtr9
//x,y : ゲージ位置
//hpg_width,height : ゲージサイズ
//hp : 今のHP  hp_max : マックス状態でのHP
color 255 : boxf x, y, x+hpg_width, y+hpg_height
color ,255 : boxf x, y, x+hp*hpg_width/hp_max, y+hpg_height

適当。
03073042006/01/03(火) 16:17:39ID:tTnFcG9X
>>303
すまん。意味取り違えた。
MAXのHPが増えてもってことか
うまいこと計算してくれ

そういやboxfなんて命令もあったな…orz
0308名前は開発中のものです。2006/01/03(火) 17:37:49ID:zkpjrkgT
レスくれた方たちありがとうございました
無事実装出来ました
0309名前は開発中のものです。2006/01/03(火) 17:51:19ID:iLYRL+FN
実装は良いけど理解しましたか…?
0310名前は開発中のものです。2006/01/03(火) 19:22:47ID:QtIRfq7V
だいたいはおkです
0311名前は開発中のものです。2006/01/03(火) 21:22:14ID:JOB5+182
ttp://gamdev.org/up/img/4258.zip
このソースのrepeat-loop中の最後にあるawaitの値が
10までと11からでかなり違う、っていうか予測と違う動きをするのですが
どうしてなのでしょうか?
10で平均80FPSは出ているので、11でもまだ70FPSは出そうなのですが
なぜかいきなり減って50FPSになってしまいます
03123112006/01/03(火) 21:27:50ID:JOB5+182
ソース中のコメント消し忘れましたが
>まず以前の〜
は間違いで、キー取得してからそれで分岐させています
0313名前は開発中のものです。2006/01/03(火) 21:36:58ID:LW5MLpAz
>>311
イメージを自分で作らないとテストできないのか。
ゲームのキャラでなくて、文字で書いたものでいいから、
イメージつけてほしかった。
0314名前は開発中のものです。2006/01/03(火) 21:42:00ID:LW5MLpAz
ちょっと待ってろ。
イメージ探してきて試すから。
03153112006/01/03(火) 22:01:19ID:JOB5+182
ttp://gamdev.org/up/img/4259.zip
一応これ使ってますがあれであれなので・・・
0316名前は開発中のものです。2006/01/03(火) 23:06:24ID:LW5MLpAz
ソースがわかりづらい…。
単純に gettime(7) の精度の問題じゃないかな?
0317名前は開発中のものです。2006/01/04(水) 16:01:36ID:Jlr8wlgy
ふとゲームを作りたいと思い、HSPを始めた。

画像を一つ表示するだけでも苦労した。なんで思った通りに表示されないんだよ。なんで勝手に止まるんだよ。
それでもほんの少し出来るようになったので、そろそろ何か作ってみようと思った。
……失敗続きだった。

何度も何度も再起動し、何度も何度もソースを書き直した。
何時間もパソコンに向かって悪戦苦闘していた。

そして、いつのまにか俺のパソコンの中で一つのゲームが動いていた。

ブロックの無いブロック崩し

それはゲームと呼ぶには余りにもちっぽけなモノだった。
だけど、ド素人の俺が何時間もかけて作ったゲーム。
それが動いてるのを見て、とても嬉しかった。少し涙も出た。
0318名前は開発中のものです。2006/01/04(水) 16:52:18ID:XGDMRHfR
よくやったな
0319名前は開発中のものです。2006/01/04(水) 19:42:31ID:XKWxLHjL
>>317
おめでとう
0320純一郎2006/01/04(水) 19:54:07ID:kBXkUmqy
感動した
0321ホスプロ ◆HOTsoUpxjY 2006/01/04(水) 19:54:28ID:iJuTRqLw
>>317
素晴らしい。俺もBASICでそんな記憶が。
0322名前は開発中のものです。2006/01/04(水) 20:04:05ID:6JFPrAJf
>>317
っ[Gamemaker]
っ[Tonyu]
0323名前は開発中のものです。2006/01/04(水) 20:15:32ID:0QC8TLI6
ゲーム作成ツールとかと違って、自分で1から作ったソースが
思い通りに動いたときは感動するよな、やっぱ。
自分も昔ただのデコジャンプでさえ作れた時は感動した。

…といっても、今も大して変化無いが。

>>322
GameMakerはお勧めしない
0324名前は開発中のものです。2006/01/04(水) 20:28:28ID:Aahjm6yA
昔はgcopyやら画面ID、仮想画面の概念がさっぱりわからんかったなぁ…
今ではHSPの最大の売りはgcopyであるとさえ思ってるけど

もうゲーム作成ツールが面倒過ぎて戻れない
0325名前は開発中のものです。2006/01/04(水) 21:06:03ID:HDnkLv4F
GameMakerで出来たMMORPGがあったですよ(外人作)
きちんと遊べるです
0326名前は開発中のものです。2006/01/04(水) 22:33:02ID:TlzNLFhz
ちょっと質問
マリオみたいなゲームで地面の着地判定って、どうやるのが良い?マップは1枚絵

・8x8づつとかチップみたいにやる
・あらかじめ地面データを作っといてマップ全体でのx座標と比べる

みたいなのを考えてるんだが、チップだと斜めができないから迷ってるんだよ
なんか良い方法無い?
0327名前は開発中のものです。2006/01/04(水) 23:06:34ID:XDWGl6R3
そう思うなら後者にすれ。地面データの仕様にもよるが
それかチップに角度データでも持たせたら済むことでは?
0328名前は開発中のものです。2006/01/04(水) 23:33:46ID:yc6BhngF
どなたかHSPでFPS(フレーム)の計り方をご教授頂けないでしょうか?
標準命令で時間取得して、一秒でどれだけ書き換えたかカウントすればいいんでしょうか?

それともWinAPI呼び出したほうが正確?
0329名前は開発中のものです。2006/01/05(木) 00:19:31ID:VTBmz4rk
>>327
チップに角度データを持たせるってどういうこと?
0330名前は開発中のものです。2006/01/05(木) 00:32:36ID:FTMRjowO
チップのステータスを、平面なら0、右上がりなら1、左上がりなら2、などとして
キャラクタの下のチップのステータスによってキャラクタの動きを分岐させるって事じゃないの?
0331名前は開発中のものです。2006/01/05(木) 07:40:23ID:2w0FfUny
私もFPSの算出が正確にできない。
下のソースを私のマシンで実行した場合
await 1000/30 // の場合 22FPS
await 1000/60 // の場合 40FPS
await 1000/100 // の場合 64FPS
await 1 // の場合 64FPS
await 0 // の場合 254FPS

これは、fpsの計り方が悪い?
await が実際より多く待っている気がする。
(HSP 3.0 Windows2000)
0332名前は開発中のものです。2006/01/05(木) 07:41:00ID:2w0FfUny
// ここから
#uselib "winmm.dll"
#cfunc timeGetTime "timeGetTime"
#cfunc timeBeginPeriod "timeBeginPeriod" int
dummy = timeBeginPeriod(1)
*main
gosub *get_fps
gosub *draw_fps
redraw 1:redraw 2
await 1000/60
goto *main
*draw_fps
// FPS の表示
gsel 0
color 0,0,0
boxf 0,0,640,16
pos 0,0
color 255,255,255
mes "" + fps + " FPS"
return
*get_fps
// FPS の計算
fpscount = fpscount + 1
now_time = timeGetTime()
if now_time >= last_time + 1000 {
last_time = now_time
fps = fpscount
fpscount = 0
}
return
// ここまで
03333282006/01/05(木) 09:39:39ID:QTf71O6F
>>332
ありがとうございます!
やっぱりWinAPI呼び出すんですね。

できればHSP標準命令でやりたかったのですが
本など見ても載ってなかったので質問してみました。

もし標準命令で出来るようならRomってますんでどなたかカキコお願いしますm(_ _)m
0334名前は開発中のものです。2006/01/05(木) 13:10:52ID:2w0FfUny
>>333
awaitの値を変えてみて、どうなるか教えて欲しい。
0335名前は開発中のものです。2006/01/05(木) 14:41:48ID:2w0FfUny
自己解決しました。
await の精度がわるくて(仕様かな?)、
指定した fps にならないようです。

同じこと悩む人がいるかもしれないから、
文書とソースをまとめて、wiki に載せようかな。
0336名無しさんの野望 ◆q3p62njyP. 2006/01/06(金) 14:08:36ID:RW3asgZC
ども、初です。
初めてちょっぱなから質問させていただきます。
やはりアドベンチャーゲームはTextデータを読み込む方式にしたほうがよいでしょうか。
また質問があったら質問させていただきます。
それでは、お気に入りに登録しておきます。
0337名前は開発中のものです。2006/01/06(金) 14:16:41ID:t7mkJOMf
Textデータを読み込む利点があるのかどうか考えてみたら?
03383372006/01/06(金) 14:39:51ID:t7mkJOMf
sage忘れた・・。orz

ttp://gamdev.org/up/img/4271.lzh
つ(当たり判定のテスト)
0339名無しさんの野望 ◆q3p62njyP. 2006/01/06(金) 15:01:50ID:RW3asgZC
すばやいレスありがとうございました。
やはりテキストデータにするといちいち変えなくてすんだり、
ファイルサイズが減るかな〜と思っています。(一つ一つ<font>とか入れるよりもテンプレート指定ができると思った)
0340名前は開発中のものです。2006/01/07(土) 16:58:44ID:Ow0MaoSG
>>336
自分一人でデータまで作るんならソース内に書いてもいーんじゃない。
その方がLOADだなんだと無駄なコーディングしなくて済むでしょ。
後は、Textデータを読み込む方式と何を比べてるんだか良く分からんから何とも…。
単純にTextからバイナリにコンバートする/しないだけの話なら、
した方が実行前にヒューマンエラーを幾らか減らせると思うってくらい。
0341名無しさんの野望 ◆q3p62njyP. 2006/01/07(土) 19:02:01ID:f1Y8ethG
>>340
>何を比べてるんだかよくわからん
ソース内に書き込むか、Textファイルにやってそれをロードするというのを比べてます。
0342名前は開発中のものです。2006/01/07(土) 19:53:51ID:IP7E+5jB
汎用効かせて、次々と作品を作っていくつもりならスプリクト方式(text読み)がいいんじゃね?
表示系の演出も試し易いし変更(演出デバグ)しやすいと思う。
簡単に仕様書つくれば、将来分業することがあっても便利だと思う。
0343名前は開発中のものです。2006/01/07(土) 20:13:05ID:tKknmu88
ソースに直接の利点:わざわざテキストを読み込んでインタプリタっぽくしなくていい
テキスト形式の利点:プログラムを直接編集せずとも内容を変えられる(コンストラクション化も可能)
…だと思うんだが。
ソースに直接書くなら関数(defineだっけ?)など使って命令を共同させたほうがいいし。
漏れに作るだけの技術は無いのでよくワカラン。

>>342
ちょwwスプリクトってwww
0344名前は開発中のものです。2006/01/07(土) 21:04:52ID:IP7E+5jB
うお、素でやっちゃたな俺。
0345名無しさんの野望 ◆q3p62njyP. 2006/01/07(土) 22:56:54ID:f1Y8ethG
そうですね。そうします
0346名前は開発中のものです。2006/01/07(土) 23:42:30ID:SvXwGQFH
話がそれるが、最近掲示板なんかで
スクリプトを「スクリ」と略している輩を見かけるようになったが
なんかすごく嫌だ。
あれくらい略さずにきちんと書けと言いたい。
0347名前は開発中のものです。2006/01/08(日) 00:58:57ID:kkTcASol
最近のナウなヤングメン達的にクールなんだろ。
0348名前は開発中のものです。2006/01/08(日) 01:15:05ID:EAxD25c+
sukuri
script

どっちも6文字やね...
0349ホスプロ ◆HOTsoUpxjY 2006/01/08(日) 01:19:09ID:ZBCcOKHP
>>336
一人で作るならソースに書いても構わない。
他人に頼むならスクリプト化した方がいい。
0350名前は開発中のものです。2006/01/08(日) 01:24:00ID:DfGaFwC5
>>348
敢えてscri
0351名前は開発中のものです。2006/01/08(日) 09:09:11ID:DWXmP05e
>>346
けっこう前からいるよ。違和感あるよね。

俺はIME辞書に「す」で登録している。
0352名前は開発中のものです。2006/01/08(日) 10:31:03ID:tA0kij2z
スクリと言うとスクリーンと間違えやすい気がs
0353名前は開発中のものです。2006/01/08(日) 12:41:56ID:OvJkiTrS
上のほうでやってる話題に便乗して……
HSPでゲームを作るとき、グラフィックとか音楽のファイルがたくさんあると思うけど
普通のやりかたでユーザーに見られたくない場合に
例えば拡張子ごとに一つのファイルにくっつけて暗号化し、
実行時にそれを復号化・分解して読みこむ、みたいなことやってる?
それともただ暗号化パックだけ?

俺としてはパックは出来ないファイルがあるから嫌なんだけど……
何か良い方法はないだろうか?
0354awaitの精度2006/01/08(日) 14:59:39ID:3CJHpBe+
awaitの精度というよりパソコンのタイマーの精度じゃないかな。
JAVAで時間を計ろうとしたら、うちのパソコンでは50ms以下の
刻みでは時間を計れなかった。しかたないから5フレームに一回、5フレーム分
蓄積した処理時間を5で割ってFPS求めてる。
それとawait 0で200越えるってことはウインドウモードで動かしてる?
フルスクリーンにすると画面更新待つだけで60fpsになるから、
await 0でいいけど、ウインドウモードで60fpsにするにはawait 16
でうちでは正常に動いてる。
0355名前は開発中のものです。2006/01/08(日) 18:45:17ID:WV7huNeF
円を4分の1したような弧を描きたいのですがどの命令を使えばいいんでしょうか?
035670jh702006/01/08(日) 20:18:18ID:UDFJ96YY
gihoybp0yiukhlo;pljuionhuik.jibyi8hiybuutf r6dr677uder54ty f676ug68b968tb
0357名前は開発中のものです。2006/01/08(日) 21:20:10ID:3WeacDLj
>>354
下のプログラムでテストしました。
http://gamdev.org/up/img/4312.zip

CPU : AMD Athlon XP 2500+
OS : Windows 2000
HSP : HSP 3.0

┌───────┬──────────────────┐
│指定したfps│実際のfps                        │
├───────┼────────┬─────────┤
│              │await使用時│mywait使用時│
├───────┼────────┼─────────┤
│100fps  │65fps      │100fps      │
│  90fps  │65fps      │  91fps      │
│  80fps  │65fps      │  84fps      │
│  70fps  │65fps      │  72fps      │
│  60fps  │40fps      │  63fps      │
│  50fps  │32fps      │  50fps      │
│  40fps  │32fps      │  40fps      │
│  30fps  │22fps      │  31fps      │
│  20fps  │17fps      │  20fps      │
│  10fps  │10fps      │  10fps      │
└───────┴────────┴─────────┘
ウェイトなしの場合は 533fps
0358名前は開発中のものです。2006/01/08(日) 21:23:23ID:3WeacDLj
# すいません。ズレまくった。

awaitの精度が悪いのは、私の環境だけなのかな?
0359名前は開発中のものです。2006/01/08(日) 21:45:18ID:3WeacDLj
今度は大丈夫かな。

100 90 80 70 60 50 40 30 20 10 ← 指定した fps
. 65 65 65 65 40 32 32 22 17 10 ← await使用時の実際のfps
100 91 84 72 63 50 40 31 20 10 ← mywait使用時の 実際のfps
0360名前は開発中のものです。2006/01/08(日) 22:30:12ID:WV7huNeF
背景ありの円を動かすゲームを作っています
円はcircle命令で描いてあって、
クリックで押し続けながらマウスを動かすと移動するようにしたいんですが、
円をクリックしたかの当たり判定はどうすればいいんでしょうか?
解答よろしくお願いします
0361名前は開発中のものです。2006/01/08(日) 22:55:44ID:2H9jLPxT
精度はawaitより高いけどCPU負荷が高いな
0362名前は開発中のものです。2006/01/08(日) 23:07:54ID:aGvw9WLa
>>360
カーソルの座標から円の中心座標までの距離を計算して、
半径より大きいかどうかで判定してみたら?

あとは、円の色を背景では使わないようにして、
マウス座標の表示色を拾ってきて円の色と同じかどうか判定する方法とか。
0363名前は開発中のものです。2006/01/08(日) 23:45:18ID:N/0zi2Fq
>>360
平方根の近似値を求める記述が必須
簡単に実現するならペインターで円を描いておいて1ピクセルずつスキャンして画面座標と照らし
合わすとか
0364名前は開発中のものです。2006/01/08(日) 23:52:37ID:NyJ8QYDC
>平方根の近似値を求める記述が必須
・円の半径の二乗
・円の中心との距離の二乗
を比較すれば平方根はいらない。
0365名前は開発中のものです。2006/01/08(日) 23:53:22ID:vdPuK2fg
え?HSPってsqrt関数無いの?
流石にそんな訳ないでしょ?
0366名前は開発中のものです。2006/01/09(月) 00:04:07ID:FHg68k/i
>>360
こんなんでいい?
http://gamdev.org/up/img/4317.zip
奥行きとか考慮したい場合は自分でなんとかして。

>>361
await 0をぶんぶん回してるから(汗)
0367名前は開発中のものです。2006/01/09(月) 00:27:12ID:2g1RYtTx
sqrt[F1]

HSP3でよーやく追加された数学関数くらい把握しとけ
0368名前は開発中のものです。2006/01/09(月) 00:47:22ID:k0VLkVs5
3までsqrt関数も無かったのかw

まぁ浮動小数点数も無かったんだからそらないわなw
0369名前は開発中のものです。2006/01/09(月) 01:01:49ID:AJPH4Rvp
>>357
その方法ならawait 0の代わりにsleep(1)でも行けるんじゃまいか
CPU負荷減らせるし。
await 0はループ外に1回だけ。
0370名前は開発中のものです。2006/01/09(月) 01:26:07ID:FHg68k/i
>>369
やってみたら、あまり精度が落ちず、CPU使用率がぐんと減った。
あんがと。
0371名前は開発中のものです。2006/01/09(月) 13:58:56ID:5VesZgPB
整数型の二次元配列に値をセットしようと思うんだけどループすると遅くて使い物にならないんだけど
repeat 256 : x = cnt
repeat 256 : y = cnt
map(x,y) = 0
loop
loop
これなら
dim map,256,256
てやれば早いけど、
別の値をセットしようとした場合何か早い方法ないですか?
0372名前は開発中のものです。2006/01/09(月) 14:12:35ID:i0suR+wd
>>371
逆転の発想
map(x,y) = m という場合
map(x,y)+m として使う
mでリセットしたいのなら、0をmのように使っていけばいい

っていうか
配列の初期化って最初だけだから
遅くてもよくね?
0373名前は開発中のものです。2006/01/09(月) 14:33:17ID:FHg68k/i
>>371
遅いの基準が分からないけど、
下のソースは私のPCでは、35msec かかる。
実際どのくらい時間かかった?
どうしてもなんとかしたいなら、、マシン語をつかうとか・・・。

#uselib "winmm.dll"
#cfunc timeGetTime "timeGetTime"
dim map,256,256
begin_t = timeGetTime()
repeat 256 : x = cnt
repeat 256 : y = cnt
map(x,y) = 0
loop
loop
end_t = timeGetTime()
mes "処理時間 " + (end_t - begin_t) + "msec"
0374名前は開発中のものです。2006/01/09(月) 15:22:37ID:KeX9qoym
35msecは遅いでしょ。
60フレームだと、2フレーム飛ぶぞ。
0375名前は開発中のものです。2006/01/09(月) 15:56:24ID:LQCt5OrT
いつも同じ値を使うんだったら、テーブル作っといてmemcpyか

#uselib "winmm.dll"
#cfunc timeGetTime "timeGetTime"
dim map,256,256
dim wrk,256,256
repeat 256 : x = cnt
repeat 256 : y = cnt
wrk(x,y) = 0
loop
loop
begin_t = timeGetTime()
memcpy map,wrk,256*256,0,0
end_t = timeGetTime()
mes "処理時間 " + (end_t - begin_t) + "msec"
0376名前は開発中のものです。2006/01/09(月) 16:10:26ID:2g1RYtTx
カエレ

#uselib "winmm.dll"
#cfunc timeGetTime "timeGetTime"
dim map,256,256
begin_t = timeGetTime()

repeat 256
map(cnt,0) = 333 ; 任意
loop
repeat 256
memcpy map(0,cnt),map(0,0),256*4
loop

end_t = timeGetTime()
mes "処理時間 " + (end_t - begin_t) + "msec"
0377名前は開発中のものです。2006/01/09(月) 16:52:00ID:LQCt5OrT
256*256*4か・・・。吊ってくる

>>376
ナイス
■ このスレッドは過去ログ倉庫に格納されています