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

HSP - Hot Soup Processor [13]

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

  ONION software (本家)
   http://www.onionsoft.net/
0262名前は開発中のものです。2006/09/05(火) 02:36:36ID:UTll95jv
>>261
馬鹿か?

>おにたまも対応するようにすべき。
だから各アンチウイルスソフトに対応を求めたんだろうが。
アンチウイルスソフトはウイルスを駆除するソフト。
ウイルスではないソフトが誤検知されてしまうから対応してほしいとフィードバックしただけだ。

>こんなに多くのアンチウィルスソフトでウィルスと検知されてしまうというのは
>ある意味、欠陥品だろ。
逆だ。そのアンチウイルスソフトが欠陥品なんだよ。
理由は上に書いたが、アンチウイルスソフトはウイルスを検知するソフトだから。
0263名前は開発中のものです。2006/09/05(火) 03:48:34ID:4sH+DOGI
>>261
何も問題ないコードを、ウイルスとして検出するのが
問題だってのが分からないのか・・・
同じコードがある他のソフトが出てきたら今度はどうすんだ?
定義ファイルに合わせてソフト開発しろとでも言う気か?

>フリーだからその辺大目に見るが、これが市販品ならクレームもんだ。
クレームに対応して対策を求めたんだろアホ?
それに市販品なら尚更アンチウイルス開発会社は
定義ファイルを修正するつーの

対応しないアンチウイルス開発会社は、HSP使用者に返金するって言ってるじゃん
HSP側が対応するべきならこんな事しねーだろ
0264名前は開発中のものです。2006/09/05(火) 05:26:36ID:E5218hFu
ウィルスじゃないものをウィルスと誤認するアンチウィルスが問題だろ。
対策するしないは会社側の自由だが少なくともHSP側に責任はない。
0265名前は開発中のものです。2006/09/05(火) 06:49:41ID:2ZXXf9fO
3.0以降で作った分には問題ないんじゃなかったっけ?
0266名前は開発中のものです。2006/09/05(火) 13:01:28ID:tSUD3QdD
3は別に問題ない。

>おにたま自身フリーだから自分は直さない
仮にHSP側が対策をしたとしてどうなるんですか? アンチウイルス
ソフト側も対応しないと、ウイルスでもなんでもない誤反応実行
ファイル自体はネット上にずっと存在し続けることになりますよ。
0267名前は開発中のものです。2006/09/05(火) 16:01:23ID:5NZObZpk
どうみても261が釣りとしか思えないのは俺だけか。
0268名前は開発中のものです。2006/09/05(火) 16:12:41ID:FDynNb08
アンチウィルスというより、アンチHSPですな
0269名前は開発中のものです。2006/09/05(火) 16:29:20ID:oQc5y7sU
>>268
・・・え?
0270名前は開発中のものです。2006/09/05(火) 16:45:39ID:wZ3sFmrx
残念だけど、世の中には致命的に頭の悪い輩というものが、確実に存在するんだ。
0271名前は開発中のものです。2006/09/05(火) 19:10:56ID:cQlG5UNA
まあ、アンチウィルスソフトについて、「変なプログラムを自動的に判定するツール」とでも思ってるんだろうね。
カワイソースネクスト
0272名前は開発中のものです。2006/09/05(火) 19:13:25ID:m/YSApnB
↑自動的に(予備的データなしで)判定するツール ってニュアンスで
0273名前は開発中のものです。2006/09/05(火) 21:51:58ID:cZAXT8s3
もしかして内緒(ハート)でディレクトリ構造を送信するコードでも
入ってるのでは・・・なんつって
どんなウイルスと同じだと判断されてるんでしょう。
0274名前は開発中のものです。2006/09/05(火) 22:05:19ID:2ZXXf9fO
HSPで作られたウィルスを対策したから…とかが理由なんだろうか
0275名前は開発中のものです。2006/09/05(火) 22:53:24ID:m/YSApnB
>>274
そうだよ。
中学生が作った簡単なトロイだけどね
0276名前は開発中のものです。2006/09/05(火) 22:59:06ID:2ZXXf9fO
ZGP使いとかは大変そうだな
0277名前は開発中のものです。2006/09/06(水) 18:02:29ID:aczt72Y/
HSPでDirectX使えますか
0278名前は開発中のものです。2006/09/06(水) 18:49:21ID:yU2RVPs3
プラグインでありますた
0279名前は開発中のものです。2006/09/06(水) 23:42:45ID:Faylm1q6
HSPでXBOX360のゲームが作れるプラグインを作ろうと頑張っているのですが、
まずはどうやってMSに侵入すれば良いでしょう?
わかりあmせん><
0280名前は開発中のものです。2006/09/06(水) 23:45:37ID:V54x8acl
良い大学卒業して、技術を身につけてMSに入社すればいいと思うよ!
0281名前は開発中のものです。2006/09/06(水) 23:46:04ID:ojE5QIE+
#include "XNA.dll"
0282細木数子2006/09/08(金) 20:00:53ID:iJg4PSE8
>>279
あなたは火星人+だから無理ね
0283名前は開発中のものです。2006/09/08(金) 20:03:06ID:tp6U6w1H
人種差別キタス
0284名前は開発中のものです。2006/09/08(金) 22:15:24ID:hmFlCxLb
私は火星人刑事(30)ッ!
0285名前は開発中のものです。2006/09/13(水) 11:23:10ID:dQxNrjbM
hspで作ったゲームにネットランキング機能実装させるにはどうしたらいいんだぜ?
ヒントだけでもいいんだぜ?もし暇があればでいいから教えてほしいんだぜ?
0286名前は開発中のものです。2006/09/13(水) 11:50:01ID:xripbUfO
hspsock もしくは hspinet で HTTPプロトコル使いなされ。
サンプルはhsp3のフォルダにあるから。
0287名前は開発中のものです。2006/09/13(水) 16:42:27ID:4HOORoqo
PACKFILEを作るときにincludeしたファイルも選択する必要があるんでしょうか?
0288名前は開発中のものです。2006/09/13(水) 19:02:16ID:0KsgD9qh
ないよ
0289名前は開発中のものです。2006/09/14(木) 19:31:53ID:Uz8A4cXK
ないあるよ
0290名前は開発中のものです。2006/09/14(木) 22:48:44ID:FbNxqrio
>>289
あるのかないのかどっちなんだ
0291名前は開発中のものです。2006/09/14(木) 23:00:11ID:yyrkASXI
そもそもID:4HOORoqoはソースファイルはインクルードするものだと思っているのだろうか。
02922872006/09/14(木) 23:20:16ID:uSGdmLdC
ないんですよね、ありがとうございました
02932872006/09/14(木) 23:25:10ID:uSGdmLdC
>>291
内容ごとに分けて.hspファイルを何個も作って
main.hspにincludeして見やすくしているんですがおかしいんでしょうか?
0294名前は開発中のものです。2006/09/14(木) 23:40:25ID:yyrkASXI
どう見ても書き間違いです。
本当に有難うございました。
0295名前は開発中のものです。2006/09/15(金) 19:16:33ID:o1muM0/h
それはメインじゃなくてスクリプトインテグレータだ!
si.hspってファイル名を変えろ!
謝れ!
0296名前は開発中のものです。2006/09/15(金) 23:25:39ID:M/kUjuQY
その名はこのスレでしか見たことがないのだが、
一般的なのか?
0297名前は開発中のものです。2006/09/16(土) 00:45:27ID:c7L8jJwC
emsinの命令が文法が間違っていますのエラーではじかれます
操作するキャラクターを回転させて、前進させたいのですが、
emsin以外の方法、もしくはエラーの解決法はありますか?
OSはXP、hspext.asは同じフォルダに入れています
0298名前は開発中のものです。2006/09/16(土) 02:52:35ID:E+UcyvTU
>>297へ適当レス
変数の型や配列の要素に問題は無い?
0299名前は開発中のものです。2006/09/16(土) 16:40:49ID:/Z8oX6hw
>>297へ適当レス
それemsinの前に全角スペース入ってんだよ。
0300名前は開発中のものです。2006/09/16(土) 18:19:18ID:/4qWML+P
>>297へ適当レス
悪いことはイワンいいかげんHSP3にしとけ
0301名前は開発中のものです。2006/09/16(土) 19:19:47ID:yaSbvseB
糞入って風呂して寝ろ
0302名前は開発中のものです。2006/09/16(土) 22:28:49ID:TWGbjZ8h
"スクリプトインテグレータ"でググるとこのスレがひとつ引っかかるだけw
03032972006/09/17(日) 01:14:14ID:x84w1Mko
適当レスありがとう
原因わかりました、hspectの拡張子間違ってました
盲点でした、よく確認せずにすいません
レスしてくれた方、ありがとうございます
0304名前は開発中のものです。2006/09/17(日) 08:00:50ID:L9Mj5Uf2
vectorは協賛やめたんだろうか
2006年のにはバナーがないよ
0305名前は開発中のものです。2006/09/17(日) 08:14:39ID:oRUecoaa
細かいところ、よくみてるな。
2005年だけ協賛してたみたいね。
協賛しても、あまり意味ないと気づかれたか。
0306名前は開発中のものです。2006/09/17(日) 14:57:02ID:dp7/71US
>>302
むしろ該当ページが見あたりませんときた。
0307名前は開発中のものです。2006/09/17(日) 17:38:48ID:osNy3ZPA
今のうちに商標登録したらよくね?
0308名前は開発中のものです。2006/09/17(日) 19:43:53ID:SX7CyZ0r
/*

#module "hage"

#uselib "gdi32.lib"
#func AddFontResourceEx "AddFontResourceExA" sptr, sptr, sptr
#func RemoveFontResourceEx "RemoveFontResourceExA" sptr, sptr, sptr

#const WM_FONTCHANGE 0x001D
#const FR_PRIVATE 0x10
#const HWND_BROADCAST 0xffff

#deffunc add_font str _adf_FontName
    AddFontResourceEx _adf_FontName, FR_PRIVATE, 0
    status = stat
    if (status = 0) { return (status) }
    else { sendmsg hwnd, WM_FONTCHANGE, 0, 0 }
    return status

#deffunc remove_font str _rmf_FontName
    RemoveFontResourceEx _rmf_FontName, FR_PRIVATE, 0
    status = stat
    if (status = 0) { return (status) }
    else { sendmsg hwnd, WM_FONTCHANGE, 0, 0 }
    return status

#global

なソースで AddFontResourceEx が関数呼び出しに失敗しちゃうのだけれどもなんでじゃろ。
RemoveFontResourceEx の方はいけるんだけれども。

*/
0309名前は開発中のものです。2006/09/18(月) 01:10:19ID:fHthfAme
gdi32.lib → gdi32.dll

とか。
0310名前は開発中のものです。2006/09/18(月) 07:22:22ID:+ICW6gFu
98とかNTだから動かないとか?
0311名前は開発中のものです。2006/09/18(月) 23:25:24ID:vleHET2n
ハゲの呪いがかかってるとか?
03123082006/09/20(水) 19:03:11ID:R57+bM3/
a
03133082006/09/20(水) 19:05:34ID:R57+bM3/
やっと規制はずれた!
とまぁ 309 のとおりでした。
ありがとうございました。
0314名前は開発中のものです。2006/09/22(金) 21:07:31ID:aMrYEIkI
作ってる人には悪いけど、今年のコンテストは
糞な3Dゲームがたくさん増えてダウンロードするのが
少しうんざりしてきたけど皆さんはどうですか?
0315名前は開発中のものです。2006/09/22(金) 23:05:07ID:fFP6X04e
pazzle reversiってゲームのlevel10わかるわけねぇ
0316名前は開発中のものです。2006/09/23(土) 21:34:25ID:sdhof9Bc
hsp3
あとは構造体があればなぁ…

って似たようなの追加されてたか
0317名前は開発中のものです。2006/09/23(土) 23:45:41ID:pXq68HT3
次はガーベージコレクションとか
0318名前は開発中のものです。2006/09/24(日) 12:15:24ID:07elu3ta
うぅ・・・質問なんだが・・・
MIA氏のDirectSoundを使う例のプラグインを無理やりHSP3で使ってみたんだが、
ds_load2が
ds_load2 "sound.wav",4,5000,10000
とか書いてもエラーで「変数が指定されていません」とかなる。
で、p1に変数を書くとエラーはでないんだが音が鳴らない。

なぜ?
0319名前は開発中のものです。2006/09/24(日) 12:37:39ID:I/OHl7N6
(・D`)ミァ
0320名前は開発中のものです。2006/09/24(日) 12:49:12ID:38LR7dWk
>>318
馬鹿め!!
03213182006/09/24(日) 13:22:05ID:07elu3ta
HSP2の本家の過去ログで自己解決した・・・orz
0322名前は開発中のものです。2006/09/24(日) 21:02:51ID:hOaAn3a3
一定時間操作しないでいると自動ログオフするウザい機能付きアプリがあるんだけど、
それを一定間隔でアクセスして防ぐプログラムってHSPで作れるかな?

0323名前は開発中のものです。2006/09/24(日) 21:20:13ID:I/OHl7N6
3D囲碁?
0324名前は開発中のものです。2006/09/25(月) 07:07:00ID:SM56ySmk
そのアプリのハンドル捕まえて
キーイベントを送ればいいんじゃね?

テキトーな知識しかないんで地震は無いがw
0325名前は開発中のものです。2006/09/25(月) 08:10:33ID:SM56ySmk
ってaplselとaplkeyでできるな
0326名前は開発中のものです。2006/09/25(月) 13:48:44ID:vV4M0XOI
サーバーの負荷を減らすためにログオフさせてるなら
そういうソフトは迷惑なだけでわ
0327名前は開発中のものです。2006/09/25(月) 21:20:33ID:oO44ZkFx
いやセキュリティ的な意味合いでログオフするんだ

>>325
まりがとう
0328名前は開発中のものです。2006/09/25(月) 22:23:31ID:NJM7EmB3
☆★レシピ板にバカ女が降臨しましたよ、まだまだ間に合いますよ★☆ 
http://food6.2ch.net/test/read.cgi/recipe/1157670450/l50
 
【胡椒】料理の画像をうpしよう part1【油】 
 
ある男がパンチラ画像ねだる→パンチラくらいならと画像うp→住人に乗せられる→パイチラもうp 
ちやほやされる→だんだん過激に→しかし画像の消し方を知らない事が判明 
プチ祭りに 
 
596:まなみタン :2006/09/25(月)06:19:23 ID:5Z9t6N3U
llii|ili(つω-`。)illl||ill うえ〜ん誰か消し方教えてぇ〜

0329名前は開発中のものです。2006/09/26(火) 20:38:04ID:xgBBl+8e
システム変数のmousew、WM_MOUSEWHEELメッセージを
つかまえたときにチェックすると、最後の回転のホイール
移動量じゃなくて、その一つ前の回転の移動量がセットされ
てる気がする。漏れmousewの使い方間違えてる?
0330名前は開発中のものです。2006/09/26(火) 21:37:10ID:7//xWKaC
>>329
もしかしてお前ってこいつらの一味?
http://yarhalla.jpn.org/yarhalla/multi-board/multi-board.cgi?button=res&restop=52&showpass=
03313292006/09/27(水) 07:40:07ID:Xa+E0qKs
そんなサイト知らんよ。漏れは特に目的なく動作テスト
してて変だなと思ったから聞いてみただけ。なじぇ?
03323292006/09/27(水) 07:46:17ID:Xa+E0qKs
今ふと気づいたんだが、自分でWM_MOUSEWHEEL捕まえると、
HSPより先に処理することになるから、mousewが更新されてない
だけか。

でもそれじゃmousewってどういうタイミングで使うものなんだ?
0333名前は開発中のものです。2006/09/27(水) 16:30:54ID:bidtjPpn
ループ中に監視するとか?
0334名前は開発中のものです。2006/09/27(水) 16:47:18ID:qn55NpW0
なるほど。参照するごとにクリアされる仕様だからそれでもいけるんだね。
0335名前は開発中のものです。2006/09/27(水) 22:17:48ID:q2WGO7vI
>>332
>HSPより先に処理することになるから、mousewが更新されてない
なんか勘違いしてるな
mousewは、awaitとかwinにタスクを移した時に、拾って来てる
だから、mousewを読み取るタイミングは、関係ない

一分前にしかawait入れてなかったら一分未満にフォイール動かしていても
mousewでその結果を読み取れない
0336名前は開発中のものです。2006/09/28(木) 00:19:52ID:4pqt6wGe
誘導弾について、詳しいサイトとかありますか?
発射地点から、到達点までの座標が固定のゴルフの様な
弾道をプログラムしたいのですが
0337名前は開発中のものです。2006/09/28(木) 00:59:07ID:lffYbfHC
親切な俺(中卒ニート童貞)が答えてやろう。

弾の座標をそれぞれ、 double x , y
弾の移動値をそれぞれ、 double ax,ay
発射座標をそれぞれ (const) int sx, sy
目標座標をそれぞれ (const) int ox, oy
とする。
弾が複数あるならば、x,y及びax,ayは予め、配列変数として宣言しておく。
変数の領域が勿体無いので、存在フラグは『xの値が-90000以上』とかにしておけ。

変数の初期化は、
x=-90001
これやらないと初期化してない奴が動くから注意。

弾の初期化は、
x=sx : y=sy ;弾の座標を発射座標にセット
;距離を求める
tmp1=ox-sx : tmp2=oy-sy
tmp3=sqrt((tmp1*tmp1)+(tmp2*tmp2))
;発射地点から目標までの差分を距離で割り、それを移動値とする
;必要ならスピード定数を掛ける。
ax=tmp1/tmp3 : ay=tmp2/tmp3

で、移動だが、超シンプル。移動値を足すだけ。
if(x>-90000){ x+=ax : y+=ay }

後はフレーム毎、弾の座標を調べて、弾を開放しなければならないなら、フラグを弄る。
これくらいかな。
あと適当に書いたから、単純にコピペじゃエラー出るかも。
間違ってたら釣りだと思ってくれ。
0338名前は開発中のものです。2006/09/28(木) 01:07:55ID:4pqt6wGe
だが断る。
ありがとう。
俺は初心者すぎて、ルフィ状態です
なにいってんだおめぇ、ぶっとばすぞ
という気持ちだった。
0339名前は開発中のものです。2006/09/28(木) 01:16:10ID:4pqt6wGe
これをさらに解説してくれ

*GENERATE;dx,dy,u は一時変数です。
dx=tx-mx : dy=ty-my
txv=dx : tyv=dy

if dx<0 : dx=0-dx
if dy<0 : dy=0-dy
du=dx : if du<dy : du=dy
if du=0 : return

txv=txv*tv/du
tyv=tyv*tv/du
return
解説。

まず座標差を求めます。(dx,dy)
絶対値を比較して大きいほうをとります。(du)
座標差に弾の速度を掛けて、それを du で割ります。
0340名前は開発中のものです。2006/09/28(木) 01:19:29ID:lffYbfHC
>>339
これはDDA(デジタル微分解析器)を使ったアルゴリズムだね。
俺が挙げた奴の方が理解がたやすいから、それはあんたには速すぎる。
0341マンピー・D・ウキー2006/09/28(木) 01:33:11ID:4pqt6wGe
なに言ってんだおめぇ
とりあえず、AからBに1ドットの点を移動するの書いてくれ
↓やってみたが、ダメだった

tx=0
ty=400
mx=500
my=50
tv=1
color 0,0,255
repeat
cls
pset txv,tyv
mes txv
mes tyv
gosub *GENERATE
wait 10
loop


*GENERATE;dx,dy,u は一時変数です。
dx=tx-mx : dy=ty-my
txv=dx : tyv=dy

if dx<0 : dx=0-dx
if dy<0 : dy=0-dy
du=dx : if du<dy : du=dy
if du=0 : return
txv=txv*tv/du
tyv=tyv*tv/du
return
0342マンピー・D・ウキー2006/09/28(木) 01:38:28ID:4pqt6wGe
なんか自力でサイト調べてもHSP2のサンプルばかりで
HSP3で動かない事が多い。
0343名前は開発中のものです。2006/09/28(木) 01:56:23ID:lffYbfHC
少しは頭使おうぜ?
randomize
#define sx200.0
#define sy200.0
screen 0,400,400
*@
x=sx : y=sy
ex=rnd(200) : if(ex>99) : ex+=200
ey=rnd(200) : if(ey>99) : ey+=200
tmp1=sx-ex : tmp2=sy-ey :tmp3=sqrt((tmp1*tmp1)+(tmp2*tmp2))
xv=0.0+tmp1*3/tmp3 : yv=0.0+tmp2*3/tmp3

repeat : redraw 0 : color 0xFF,0xFF,0xFF : boxf
pos ex,ey : color 0xFF,0,0 : print "●"
pos x,y : color 0,0,0 : print "●"
if(x<0|x>400|y<0|y>400){break}else{x-=xv : y-=yv}
await 10 : redraw 1 : loop

goto *@back
0344名前は開発中のものです。2006/09/28(木) 01:59:16ID:lffYbfHC
間違い。
#define sx200.0
#define sy200.0

#define sx 200.0
#define sy 200.0
0345マンピー・D・ウキー2006/09/28(木) 02:06:35ID:4pqt6wGe
343すごいかもw
俺が今作った誘導は…
screen 0
color 0,0,0
kx=100
ky=400;初期位置
tx=600
ty=150;到達点

repeat 50
pset kx,ky
gosub *ido
if ky<ty:mes "すとっぷ":goto *eee
wait 6
loop
stop

*ido
kx+=10
ky-=10
return
stop

*eee
stop
0346名前は開発中のものです。2006/09/28(木) 02:11:22ID:lffYbfHC
分かったからで直して来いよ(´・ω・`)
0347マンピー・D・ウキー2006/09/28(木) 02:16:12ID:4pqt6wGe
ただ、343そのままじゃ使えない、ランダムとかイラナイし。
到達座標はゲーム進行上で決まるんで、
もっとシンプルになりませんか?
AからBに当るだけでいい
0348マンピー・D・ウキー2006/09/28(木) 02:19:12ID:4pqt6wGe
あ、こうやって指定すれば良いんだ?
ただ、途中で消えちゃうナー
ex=500
ey=100
x=300
y=300
0349名前は開発中のものです。2006/09/28(木) 02:19:24ID:lffYbfHC
要らない部分は自分で削るぐらいはしようぜ(´・ω・`)
0350マンピー・D・ウキー2006/09/28(木) 02:29:24ID:4pqt6wGe
だな、今まで概念も理解できなかったが、
ちょっと解ってきたぞ
つまり、AからBへの移動量を割る事によって
XやYの増加量を配分していってるわけだな
0351マンピー・D・ウキー2006/09/28(木) 02:34:53ID:4pqt6wGe
#define sx 200.0
#define sy 200.0

↑これのせいで、開始座標に制限されてる?

screen 0,640,480
ex=300
ey=200
x=100
y=500
0352マンピー・D・ウキー2006/09/28(木) 02:52:33ID:4pqt6wGe
if(x<0|x>450|y<0|y>450){break}else{x-=xv : y-=yv}
これがよくわかんねーな
0353名前は開発中のものです。2006/09/28(木) 08:18:13ID:GHkRaLh4
>>335
レスどうも。(a)wait入れたループでmousewチェックする方法ならうまくいき
ました。

stopでスクリプトを止めといて、WM_MOUSEWHEELが来たときにmousewを
チェックすると更新されてないのは、returnしてstopに戻ったときに更新される
って感じなんですかね。

結局WM_MOUSEWHEEL自分で捕まえるならmousew見なくてもwparam
から取得できるだろうが!って話ですが。
0354名前は開発中のものです。2006/09/28(木) 11:52:26ID:bl/DHlHt
randomize
screen 0
v = 8.0 : sx = 0.0 : sy = 0.0; 弾の速度、発射位置x、発射位置y
gosub *init

*main_loop
redraw 1 : await 10 : redraw 0 : cls 0
pos tx,ty : color 0xFF,0,0 : print "●"
pos x,y : color 0,0,0 : print "●"
x += vx : y += vy; 弾移動
//範囲外に出たら位置を変えてやり直し//
if(x<0|x>640|y<0|y>480) : gosub *init
getkey key_ret,27
if key_ret = 1: end; 「ESCキー」で処理を終了
goto *main_loop

*init
x = sx
y = sy
tx = 50.0 + rnd(300); 目標位置x
ty = 50.0 + rnd(300); 目標位置y
dx = tx - sx
dy = ty - sy
l = sqrt((dx*dx) + (dy*dy)); 目標までの距離
t = l / v; 目標到達までの時間
vx = dx / t; 単位時間当たりのx変化量(速度のx成分)
vy = dy / t; 単位時間当たりのy変化量(速度のy成分)
return
03553542006/09/28(木) 22:44:24ID:bl/DHlHt
コメント書き忘れてた。
>>343 勝手に弄らせてもらった。 気に障ったらスマン。
やってることは基本的に変わらんのだけど、そのままだとどうも上手く動いて
いないようだったので、自分好みの書き方に書き直してある。
0356マンピー・D・ウキー2006/09/29(金) 00:37:18ID:gqomi78B
>>354
やってみたけど、描画処理がやっつけにしたってLv低くないか?
チカチカする。
あと、ターゲット決まってるんだからさぁ
当り判定とか、加える手間省いて、到達点で消したいよな
0357マンピー・D・ウキー2006/09/29(金) 00:49:39ID:gqomi78B
とりあえず、俺は俺の望む物に到達したよ、有難う。
コレをベースに、あとは揺らぎを導入したいわ

randomize
#define sx 300.0;発射位置?
#define sy 300.0
screen 0,640,480
ex=380;ターゲット座標
ey=100
x=200;発射位置?
y=300
*ss
x=sx : y=sy
tmp1=sx-ex : tmp2=sy-ey :tmp3=sqrt((tmp1*tmp1)+(tmp2*tmp2))
xv=0.0+tmp1*3/tmp3 : yv=0.0+tmp2*3/tmp3
repeat
redraw 0
color 0,0,0
boxf
pos ex,ey
color 0,0,255 : print "◎" ;ターゲット
color 255,0,0
pset x,y
pset x+1,y+1
pset x+1,y-1
pset x-1,y-1
pset x-1,y+1
if(ex=x|ey=y){break}else{x-=xv : y-=yv}
await 1
redraw 1
loop
goto *ss
0358マンピー・D・ウキー2006/09/29(金) 01:00:11ID:gqomi78B
あれ、なんかちゃんと当らないんだが、なぜよ?

screen 0,640,480
sx=250;発射位置?
sy=350
ex=450;ターゲット座標
ey=200
*ss
x=sx : y=sy
tmp1=sx-ex : tmp2=sy-ey :tmp3=sqrt((tmp1*tmp1)+(tmp2*tmp2))
xv=0.0+tmp1*3/tmp3 : yv=0.0+tmp2*3/tmp3
repeat
redraw 0
color 0,0,0
boxf
pos ex,ey
color 0,0,255 : boxf ex,ey,ex+10,ey-10;ターゲット描画
color 255,0,0
pset x,y;弾描画
pset x+1,y+1
pset x+1,y-1
pset x-1,y-1
pset x-1,y+1
if(ex=x|ey=y){break}else{x-=xv : y-=yv} ;消える条件?
await 1
redraw 1
loop
goto *ss
0359名前は開発中のものです。2006/09/29(金) 01:10:17ID:1SvrSdZ5
>>356 wait位置を間違えてた。 これで満足か? 
randomize
screen 0
v = 4.0 : sx = 0.0 : sy = 0.0; 弾の速度、発射位置x、発射位置y
gosub *init

*main_loop
await 16 : redraw 1 : redraw 0 : color 0xFF,0xFF,0xFF : boxf
pos tx,ty : color 0xFF,0,0 : print "●"
pos x,y : color 0,0,0 : print "●"
x += vx : y += vy; 弾移動
//範囲外に出たら位置を変えてやり直し//
if(x>tx|y>ty) : gosub *init
getkey key_ret,27
if key_ret = 1: end; 「ESCキー」で処理を終了
goto *main_loop

*init
x = sx
y = sy
tx = 50.0 + rnd(300); 目標位置x
ty = 50.0 + rnd(300); 目標位置y
dx = tx - sx
dy = ty - sy
l = sqrt((dx*dx) + (dy*dy)); 目標までの距離
t = l / v; 目標到達までの時間
vx = dx / t; 単位時間当たりのx変化量(速度のx成分)
vy = dy / t; 単位時間当たりのy変化量(速度のy成分)
return
0360マンピー・D・ウキー2006/09/29(金) 01:12:21ID:gqomi78B
>>359
あ、イイかも
シンプルだな。
0361マンピー・D・ウキー2006/09/29(金) 01:20:24ID:gqomi78B
>>359を俺の都合で変えると動かないんだ、なんで?


screen 0,640,480
v = 4.0 : sx = 200 : sy = 300; 弾の速度、発射位置x、発射位置y
gosub *init
*main_loop
await 16 : redraw 1 : redraw 0 : color 255,255,255 : boxf
pos tx,ty : color 255,0,0 : print "◎"
pos x,y : color 0,0,0 : print "●"
x += vx : y += vy; 弾移動
//範囲外に出たら位置を変えてやり直し//
if(x>tx|y>ty) : gosub *init
goto *main_loop

*init
x = sx
y = sy
tx = 500 ; 目標位置x
ty = 50 ; 目標位置y
dx = tx - sx
dy = ty - sy
l = sqrt((dx*dx) + (dy*dy)); 目標までの距離
t = l / v; 目標到達までの時間
vx = dx / t; 単位時間当たりのx変化量(速度のx成分)
vy = dy / t; 単位時間当たりのy変化量(速度のy成分)
return
■ このスレッドは過去ログ倉庫に格納されています