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馬鹿か?
>おにたまも対応するようにすべき。
だから各アンチウイルスソフトに対応を求めたんだろうが。
アンチウイルスソフトはウイルスを駆除するソフト。
ウイルスではないソフトが誤検知されてしまうから対応してほしいとフィードバックしただけだ。
>こんなに多くのアンチウィルスソフトでウィルスと検知されてしまうというのは
>ある意味、欠陥品だろ。
逆だ。そのアンチウイルスソフトが欠陥品なんだよ。
理由は上に書いたが、アンチウイルスソフトはウイルスを検知するソフトだから。
0263名前は開発中のものです。
2006/09/05(火) 03:48:34ID:4sH+DOGI何も問題ないコードを、ウイルスとして検出するのが
問題だってのが分からないのか・・・
同じコードがある他のソフトが出てきたら今度はどうすんだ?
定義ファイルに合わせてソフト開発しろとでも言う気か?
>フリーだからその辺大目に見るが、これが市販品ならクレームもんだ。
クレームに対応して対策を求めたんだろアホ?
それに市販品なら尚更アンチウイルス開発会社は
定義ファイルを修正するつーの
対応しないアンチウイルス開発会社は、HSP使用者に返金するって言ってるじゃん
HSP側が対応するべきならこんな事しねーだろ
0264名前は開発中のものです。
2006/09/05(火) 05:26:36ID:E5218hFu対策するしないは会社側の自由だが少なくともHSP側に責任はない。
0265名前は開発中のものです。
2006/09/05(火) 06:49:41ID:2ZXXf9fO0266名前は開発中のものです。
2006/09/05(火) 13:01:28ID:tSUD3QdD>おにたま自身フリーだから自分は直さない
仮にHSP側が対策をしたとしてどうなるんですか? アンチウイルス
ソフト側も対応しないと、ウイルスでもなんでもない誤反応実行
ファイル自体はネット上にずっと存在し続けることになりますよ。
0267名前は開発中のものです。
2006/09/05(火) 16:01:23ID:5NZObZpk0268名前は開発中のものです。
2006/09/05(火) 16:12:41ID:FDynNb080269名前は開発中のものです。
2006/09/05(火) 16:29:20ID:oQc5y7sU・・・え?
0270名前は開発中のものです。
2006/09/05(火) 16:45:39ID:wZ3sFmrx0271名前は開発中のものです。
2006/09/05(火) 19:10:56ID:cQlG5UNAカワイソースネクスト
0272名前は開発中のものです。
2006/09/05(火) 19:13:25ID:m/YSApnB0273名前は開発中のものです。
2006/09/05(火) 21:51:58ID:cZAXT8s3入ってるのでは・・・なんつって
どんなウイルスと同じだと判断されてるんでしょう。
0274名前は開発中のものです。
2006/09/05(火) 22:05:19ID:2ZXXf9fO0275名前は開発中のものです。
2006/09/05(火) 22:53:24ID:m/YSApnBそうだよ。
中学生が作った簡単なトロイだけどね
0276名前は開発中のものです。
2006/09/05(火) 22:59:06ID:2ZXXf9fO0277名前は開発中のものです。
2006/09/06(水) 18:02:29ID:aczt72Y/0278名前は開発中のものです。
2006/09/06(水) 18:49:21ID:yU2RVPs30279名前は開発中のものです。
2006/09/06(水) 23:42:45ID:Faylm1q6まずはどうやってMSに侵入すれば良いでしょう?
わかりあmせん><
0280名前は開発中のものです。
2006/09/06(水) 23:45:37ID:V54x8acl0281名前は開発中のものです。
2006/09/06(水) 23:46:04ID:ojE5QIE+0283名前は開発中のものです。
2006/09/08(金) 20:03:06ID:tp6U6w1H0284名前は開発中のものです。
2006/09/08(金) 22:15:24ID:hmFlCxLb0285名前は開発中のものです。
2006/09/13(水) 11:23:10ID:dQxNrjbMヒントだけでもいいんだぜ?もし暇があればでいいから教えてほしいんだぜ?
0286名前は開発中のものです。
2006/09/13(水) 11:50:01ID:xripbUfOサンプルはhsp3のフォルダにあるから。
0287名前は開発中のものです。
2006/09/13(水) 16:42:27ID:4HOORoqo0288名前は開発中のものです。
2006/09/13(水) 19:02:16ID:0KsgD9qh0289名前は開発中のものです。
2006/09/14(木) 19:31:53ID:Uz8A4cXK0290名前は開発中のものです。
2006/09/14(木) 22:48:44ID:FbNxqrioあるのかないのかどっちなんだ
0291名前は開発中のものです。
2006/09/14(木) 23:00:11ID:yyrkASXI0292287
2006/09/14(木) 23:20:16ID:uSGdmLdC0293287
2006/09/14(木) 23:25:10ID:uSGdmLdC内容ごとに分けて.hspファイルを何個も作って
main.hspにincludeして見やすくしているんですがおかしいんでしょうか?
0294名前は開発中のものです。
2006/09/14(木) 23:40:25ID:yyrkASXI本当に有難うございました。
0295名前は開発中のものです。
2006/09/15(金) 19:16:33ID:o1muM0/hsi.hspってファイル名を変えろ!
謝れ!
0296名前は開発中のものです。
2006/09/15(金) 23:25:39ID:M/kUjuQY一般的なのか?
0297名前は開発中のものです。
2006/09/16(土) 00:45:27ID:c7L8jJwC操作するキャラクターを回転させて、前進させたいのですが、
emsin以外の方法、もしくはエラーの解決法はありますか?
OSはXP、hspext.asは同じフォルダに入れています
0298名前は開発中のものです。
2006/09/16(土) 02:52:35ID:E+UcyvTU変数の型や配列の要素に問題は無い?
0299名前は開発中のものです。
2006/09/16(土) 16:40:49ID:/Z8oX6hwそれemsinの前に全角スペース入ってんだよ。
0300名前は開発中のものです。
2006/09/16(土) 18:19:18ID:/4qWML+P悪いことはイワンいいかげんHSP3にしとけ
0301名前は開発中のものです。
2006/09/16(土) 19:19:47ID:yaSbvseB0302名前は開発中のものです。
2006/09/16(土) 22:28:49ID:TWGbjZ8h0303297
2006/09/17(日) 01:14:14ID:x84w1Mko原因わかりました、hspectの拡張子間違ってました
盲点でした、よく確認せずにすいません
レスしてくれた方、ありがとうございます
0304名前は開発中のものです。
2006/09/17(日) 08:00:50ID:L9Mj5Uf22006年のにはバナーがないよ
0305名前は開発中のものです。
2006/09/17(日) 08:14:39ID:oRUecoaa2005年だけ協賛してたみたいね。
協賛しても、あまり意味ないと気づかれたか。
0306名前は開発中のものです。
2006/09/17(日) 14:57:02ID:dp7/71USむしろ該当ページが見あたりませんときた。
0307名前は開発中のものです。
2006/09/17(日) 17:38:48ID:osNy3ZPA0308名前は開発中のものです。
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とか。
0310名前は開発中のものです。
2006/09/18(月) 07:22:22ID:+ICW6gFu0311名前は開発中のものです。
2006/09/18(月) 23:25:24ID:vleHET2n0312308
2006/09/20(水) 19:03:11ID:R57+bM3/0313308
2006/09/20(水) 19:05:34ID:R57+bM3/とまぁ 309 のとおりでした。
ありがとうございました。
0314名前は開発中のものです。
2006/09/22(金) 21:07:31ID:aMrYEIkI糞な3Dゲームがたくさん増えてダウンロードするのが
少しうんざりしてきたけど皆さんはどうですか?
0315名前は開発中のものです。
2006/09/22(金) 23:05:07ID:fFP6X04e0316名前は開発中のものです。
2006/09/23(土) 21:34:25ID:sdhof9Bcあとは構造体があればなぁ…
って似たようなの追加されてたか
0317名前は開発中のものです。
2006/09/23(土) 23:45:41ID:pXq68HT30318名前は開発中のものです。
2006/09/24(日) 12:15:24ID:07elu3taMIA氏のDirectSoundを使う例のプラグインを無理やりHSP3で使ってみたんだが、
ds_load2が
ds_load2 "sound.wav",4,5000,10000
とか書いてもエラーで「変数が指定されていません」とかなる。
で、p1に変数を書くとエラーはでないんだが音が鳴らない。
なぜ?
0319名前は開発中のものです。
2006/09/24(日) 12:37:39ID:I/OHl7N60320名前は開発中のものです。
2006/09/24(日) 12:49:12ID:38LR7dWk馬鹿め!!
0321318
2006/09/24(日) 13:22:05ID:07elu3ta0322名前は開発中のものです。
2006/09/24(日) 21:02:51ID:hOaAn3a3それを一定間隔でアクセスして防ぐプログラムってHSPで作れるかな?
0323名前は開発中のものです。
2006/09/24(日) 21:20:13ID:I/OHl7N60324名前は開発中のものです。
2006/09/25(月) 07:07:00ID:SM56ySmkキーイベントを送ればいいんじゃね?
テキトーな知識しかないんで地震は無いがw
0325名前は開発中のものです。
2006/09/25(月) 08:10:33ID:SM56ySmk0326名前は開発中のものです。
2006/09/25(月) 13:48:44ID:vV4M0XOIそういうソフトは迷惑なだけでわ
0327名前は開発中のものです。
2006/09/25(月) 21:20:33ID:oO44ZkFx>>325
まりがとう
0328名前は開発中のものです。
2006/09/25(月) 22:23:31ID:NJM7EmB3http://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の使い方間違えてる?
0330名前は開発中のものです。
2006/09/26(火) 21:37:10ID:7//xWKaCもしかしてお前ってこいつらの一味?
http://yarhalla.jpn.org/yarhalla/multi-board/multi-board.cgi?button=res&restop=52&showpass=
0331329
2006/09/27(水) 07:40:07ID:Xa+E0qKsしてて変だなと思ったから聞いてみただけ。なじぇ?
0332329
2006/09/27(水) 07:46:17ID:Xa+E0qKsHSPより先に処理することになるから、mousewが更新されてない
だけか。
でもそれじゃmousewってどういうタイミングで使うものなんだ?
0333名前は開発中のものです。
2006/09/27(水) 16:30:54ID:bidtjPpn0334名前は開発中のものです。
2006/09/27(水) 16:47:18ID:qn55NpW00335名前は開発中のものです。
2006/09/27(水) 22:17:48ID:q2WGO7vI>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これは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:4pqt6wGeHSP3で動かない事が多い。
0343名前は開発中のものです。
2006/09/28(木) 01:56:23ID:lffYbfHCrandomize
#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俺が今作った誘導は…
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:lffYbfHC0347マンピー・D・ウキー
2006/09/28(木) 02:16:12ID:4pqt6wGe到達座標はゲーム進行上で決まるんで、
もっとシンプルになりませんか?
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:lffYbfHC0350マンピー・D・ウキー
2006/09/28(木) 02:29:24ID:4pqt6wGeちょっと解ってきたぞ
つまり、AからBへの移動量を割る事によって
XやYの増加量を配分していってるわけだな
0351マンピー・D・ウキー
2006/09/28(木) 02:34:53ID:4pqt6wGe#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これがよくわかんねーな
0353名前は開発中のものです。
2006/09/28(木) 08:18:13ID:GHkRaLh4レスどうも。(a)wait入れたループでmousewチェックする方法ならうまくいき
ました。
stopでスクリプトを止めといて、WM_MOUSEWHEELが来たときにmousewを
チェックすると更新されてないのは、returnしてstopに戻ったときに更新される
って感じなんですかね。
結局WM_MOUSEWHEEL自分で捕まえるならmousew見なくてもwparam
から取得できるだろうが!って話ですが。
0354名前は開発中のものです。
2006/09/28(木) 11:52:26ID:bl/DHlHtscreen 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
0355354
2006/09/28(木) 22:44:24ID:bl/DHlHt>>343 勝手に弄らせてもらった。 気に障ったらスマン。
やってることは基本的に変わらんのだけど、そのままだとどうも上手く動いて
いないようだったので、自分好みの書き方に書き直してある。
0356マンピー・D・ウキー
2006/09/29(金) 00:37:18ID:gqomi78Bやってみたけど、描画処理がやっつけにしたって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:gqomi78Bscreen 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:1SvrSdZ5randomize
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あ、イイかも
シンプルだな。
0361マンピー・D・ウキー
2006/09/29(金) 01:20:24ID:gqomi78Bscreen 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
■ このスレッドは過去ログ倉庫に格納されています