2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

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

HSPで3Dゲーム 【hgimg3編】

1 :名前は開発中のものです。:2012/01/28(土) 17:15:55.46 ID:Khp0Nc8u.net
隠蔽がきつい
情報あつめましょう

2 :名前は開発中のものです。:2012/01/28(土) 20:06:50.77 ID:Khp0Nc8u.net
hgimg3を触っててわからないのがベクトル関連の命令
fvaddやfvdirなんだけど
fvaddとaddposはどう違うんでしょう?

3 :名前は開発中のものです。:2012/01/28(土) 20:22:29.83 ID:Khp0Nc8u.net
hgimg3製レースゲームあり
http://sakura.hippy.jp/meta/

4 :名前は開発中のものです。:2012/01/29(日) 02:53:12.93 ID:lnzgPTRJ.net
あっちでhgimg3の話題禁止ってワケじゃないんだから
わざわざスレ立てる必要なかったんでは?

5 :名前は開発中のものです。:2012/01/30(月) 09:46:59.89 ID:eW4XGt0k.net
ただでさえ情報少ないんだから、絞り込むのも悪くないのでは

あっちは割と関係ない話ばっかりになっちゃってるし

6 :名前は開発中のものです。:2012/01/30(月) 18:19:42.59 ID:RgdOj4ba.net
adddirってregobjでOBJ_MOVEモードを指定しないと反応しないよね
addposは何も指定しなくても反応するが…


7 :名前は開発中のものです。:2012/01/30(月) 18:47:08.35 ID:RgdOj4ba.net
addplateで地面をつくろうと思ったら垂直なプレートしか表示できないみたいだ
水平につくりたいならモデリングするべきか

8 :名前は開発中のものです。:2012/01/30(月) 19:42:39.16 ID:n/Br4+xO.net
回転行列指定できないのか


9 :名前は開発中のものです。:2012/01/30(月) 20:18:42.51 ID:RgdOj4ba.net
x…右が正
y…下が正
z…手前が正

この座標系なんか変だなw なんでyは上が正でないのか?

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

getang HGOBJ_CAMERA,x,y,z
addpos HGOBJ_CAMERA,sin(y+90.0),,cos(y+90.0)

11 :名前は開発中のものです。:2012/01/31(火) 13:31:40.40 ID:hSEGJqW5.net
sin,cosには角度をラジアンで指定しなくちゃいけないからじゃないかな?

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

13 :名前は開発中のものです。:2012/01/31(火) 16:41:36.45 ID:gI3L3Jlu.net
3.14 * 2

14 :名前は開発中のものです。:2012/01/31(火) 16:47:35.75 ID:yeuM2bWt.net
90度はπ/2ラジアンだからだいたい1.57ラジアンということで
addpos HGOBJ_CAMERA,sin(y+1.57),,cos(y+1.57)
とするとうまくいきました

しかしこれで正しいかどうかは疑問

15 :名前は開発中のものです。:2012/02/01(水) 04:13:45.79 ID:LKAKhn/+.net
標準でM_PI,rad2deg(),deg2rad()ってマクロがある

mes M_PI
mes rad2deg(1.57)
mes rad2deg(atan(1,0))
mes deg2rad(90)

16 :名前は開発中のものです。:2012/02/01(水) 05:02:10.29 ID:LKAKhn/+.net
>>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))



17 :名前は開発中のものです。:2012/02/01(水) 11:05:07.92 ID:fkrWUMU8.net
>>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 ; イベント設定
}


18 :名前は開発中のものです。:2012/02/01(水) 14:21:16.01 ID:LKAKhn/+.net
>>17
regobj apple,mchr,OBJ_MOVE|OBJ_BORDER;リンゴオブジェ作成、自動移動ON | クリップ範囲有効(setborderで設定した範囲より外れると自動削除)
getpos mychr,x,y,z;プレイヤーキャラから座標を収得
setpos apple,x,y,z;作成したリンゴオブジェにプレイヤーキャラの座標をセット
fvset fv,0,0,0.001*rnd(6282);z軸に0.001*rnd(6282)度(ラジアン単位)セット
//fv=0.0, 0.0, 0.001*rnd(6282) ;と同じ事(実際置き換えても動く)だがHSPは64ビット浮動小数点でDirectx8は32ビット浮動小数点」
//後fv系命令で使われる配列は0〜2じゃなく0〜3の4要素( fv(3)には1.0が強制的に代入される )

fvdir fv, 0, -4, 0;Y方向に-4セット(早い話ベクトル)(Z軸が回転させられたX,Y方向がセットされる)
seldir apple:objsetfv fv;リンゴオブジェのdir設定を選択:fv(上で回転させたベクトルをリンゴオブジェのdirにセット)
//setdir apple, fv.0, fv.1 ,fv.2 ;と同等、実際置き換(ry

setevent apple,ev1 ; イベント設定(ev1にはevent_命令で80フレーム後に透明度0%、Z角度を0.2づつ加算する、80フレーム待つが設定されてる)



>adddirは弾の発射には使えますね
ちょっと言い足りないところがあった
adddirは現在オブジェクトのdirに設定されてる値に加算させる命令だから
重ねて使えば加速してく形になる

総レス数 68
19 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200