お前らRPGツクールでゲーム作れって LAWルート (388レス)
お前らRPGツクールでゲーム作れって LAWルート http://mevius.5ch.net/test/read.cgi/gamedev/1134098628/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
312: 名前は開発中のものです。 [sage] 2009/06/20(土) 10:47:19 ID:IrWZy+Ag >>311 おー、かなり軽くなってる。自分のPCでは青レーザー乱射地帯だけ 少し処理落ちした。 さらに軽量化するとしたら、ピクチャーの「表示」をしないことかな。 これは重いので、いっぺんに多用すると良くない。一旦表示したピクチャーは その画像で固定して使う。ただ、これをやると弾の種類が限られてしまうが。 あと、atanの作り方に無駄が多い。tanの配列から取得してるのが良くない。 atanの配列を作ってそこから取得すれば、そもそもtanの配列は必要ない。 http://mevius.5ch.net/test/read.cgi/gamedev/1134098628/312
313: 名前は開発中のものです。 [sage] 2009/06/20(土) 11:05:19 ID:IrWZy+Ag atan(というかatan2)の作り方は人それぞれだけど、 自分なりに色々作って、今のところは↓に落ち着いてる。 ATAN[i]=(180/PI)*Math.round(Math.atan((i-139)/139)); //atanの配列。i=0,1,2,…,139*2 function atan2(s1,s2,x1,x2){ dx=s1-x1; dy=dz=s2-x2; dz*=-1; //二分探索で。 if(dx>=dy){ if(dx>=dz){ theta=360;goto label1; }else{ theta=270;dy=dx;dx=dz;goto label1; } }else{ if(dx>=dz){ theta=90;dy=dx;dx=dz;goto label1; }else{ theta=180;goto label1; } } label1: atan=ATAN[dy*139/dx+139]+theta; atan%=360; } 消費ステップは最低で16、最高で19。「139」という数字に特に意味はなくて、 大きめの奇数なら何でもいい。 http://mevius.5ch.net/test/read.cgi/gamedev/1134098628/313
315: 名前は開発中のものです。 [sage] 2009/06/20(土) 19:14:08 ID:IrWZy+Ag >>314 合ってます。ATANの配列で-45°から45°までの値を用意しておいて、 atan2で0°〜360°バージョンを作る。atan2は 「座標(s1−x1,s2−x2)を極座標表示したときの角度(0°〜360°)」 を返す関数。 http://mevius.5ch.net/test/read.cgi/gamedev/1134098628/315
316: 名前は開発中のものです。 [sage] 2009/06/20(土) 19:44:48 ID:IrWZy+Ag atan2について補足しておくと、s1,s2は自機の座標、 x1,x2が敵の座標のつもりです。分かりにくくてすまんw 使用例: 敵が原点にいて、自機が(1,√3)の座標にいる状態で自機狙い弾を 出すとしたら、敵弾の角度は60°に設定しなくちゃいけないけど、 この「60」という値はatan2(1,√3,0,0)で取得できる。 http://mevius.5ch.net/test/read.cgi/gamedev/1134098628/316
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.950s*