X



HSPで3Dゲーム 【hgimg3編】
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
垢版 |
2012/01/28(土) 17:15:55.46ID:Khp0Nc8u
隠蔽がきつい
情報あつめましょう
0002名前は開発中のものです。
垢版 |
2012/01/28(土) 20:06:50.77ID:Khp0Nc8u
hgimg3を触っててわからないのがベクトル関連の命令
fvaddやfvdirなんだけど
fvaddとaddposはどう違うんでしょう?
0004名前は開発中のものです。
垢版 |
2012/01/29(日) 02:53:12.93ID:lnzgPTRJ
あっちでhgimg3の話題禁止ってワケじゃないんだから
わざわざスレ立てる必要なかったんでは?
0005名前は開発中のものです。
垢版 |
2012/01/30(月) 09:46:59.89ID:eW4XGt0k
ただでさえ情報少ないんだから、絞り込むのも悪くないのでは

あっちは割と関係ない話ばっかりになっちゃってるし
0006名前は開発中のものです。
垢版 |
2012/01/30(月) 18:19:42.59ID:RgdOj4ba
adddirってregobjでOBJ_MOVEモードを指定しないと反応しないよね
addposは何も指定しなくても反応するが…
0007名前は開発中のものです。
垢版 |
2012/01/30(月) 18:47:08.35ID:RgdOj4ba
addplateで地面をつくろうと思ったら垂直なプレートしか表示できないみたいだ
水平につくりたいならモデリングするべきか
0009名前は開発中のものです。
垢版 |
2012/01/30(月) 20:18:42.51ID:RgdOj4ba
x…右が正
y…下が正
z…手前が正

この座標系なんか変だなw なんでyは上が正でないのか?
0010名前は開発中のものです。
垢版 |
2012/01/31(火) 08:10:43.02ID:20JLJzd8
カメラの方向に対して垂直に左右に動かしたい
ゲームではお馴染みのキー操作なんだけど以下のようにしてみたけどうまくいかない
ジグザグな動きになってしまう
どうやれば左右に動かせるかな?

getang HGOBJ_CAMERA,x,y,z
addpos HGOBJ_CAMERA,sin(y+90.0),,cos(y+90.0)
0012名前は開発中のものです。
垢版 |
2012/01/31(火) 16:37:52.21ID:yeuM2bWt
なるほどラジアンですか
一周が6.2ぐらいなんですよ
それで
addpos HGOBJ_CAMERA,sin(y+1.5),,cos(y+1.5)
とするとマシにはなったけど左右に動かすとジグザクの動きになる
ずばり90度のラジアンを指定しないとうまくいかないね
ちょっとわからない…
0014名前は開発中のものです。
垢版 |
2012/01/31(火) 16:47:35.75ID:yeuM2bWt
90度はπ/2ラジアンだからだいたい1.57ラジアンということで
addpos HGOBJ_CAMERA,sin(y+1.57),,cos(y+1.57)
とするとうまくいきました

しかしこれで正しいかどうかは疑問
0015名前は開発中のものです。
垢版 |
2012/02/01(水) 04:13:45.79ID:LKAKhn/+
標準でM_PI,rad2deg(),deg2rad()ってマクロがある

mes M_PI
mes rad2deg(1.57)
mes rad2deg(atan(1,0))
mes deg2rad(90)
0016名前は開発中のものです。
垢版 |
2012/02/01(水) 05:02:10.29ID:LKAKhn/+
>>6
ん?
adddirは一度設定すれば常に加算される
弾なんかは発射時に設定すればいいだけ
addposは実行時だけだから毎回実行する必要がある

>>7
回転させれば良いだけじゃ?

>>2

fvaddはfv配列に対しての加算命令
addposはオブジャクト座標に対して直接加算する
単に使いどころが違うだけで計算結果は同じはず

fvdirは指定した座標を回転させる命令
#include "hgimg3.as"
fvset fv,0.0,deg2rad(45),0;fvにY軸を45度回転設定
fvdir fv,100,0,0;X方向100を回転してfvに代入

title "X="+fv+" Y="+fv.1+" Z="+fv.2+" 角度="+rad2deg(atan(fv.2,fv))

0017名前は開発中のものです。
垢版 |
2012/02/01(水) 11:05:07.92ID:fkrWUMU8
>>15>>16
ありがとうごさいます
adddirは弾の発射には使えますね
fv配列は未だによくわからないです
サンプルに入っているtest6.hspも何をやっているのかわかりませんね

if k&16 { ; リンゴ発射
regobj apple,mchr,OBJ_MOVE|OBJ_BORDER
getpos mychr,x,y,z
setpos apple,x,y,z
fvset fv,0,0,0.001*rnd(6282)
fvdir fv, 0, -4, 0
seldir apple:objsetfv fv
setevent apple,ev1 ; イベント設定
}
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況