HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0419
axobjd3moduleでシューティング6解決


axobj

リンク

2009/4/19(Sun) 21:02:21|NO.24711

d3moduleを使ってシューティングゲームを作っているのですが、機体のスピードが速くなったり
遅くなったりと、安定しません。
処理速度は一定のようなので、計算に問題があるのだと思うのですが、どうすればよいか分からず・・・・・・
どなたかお教え頂ければ幸いです。


#include "d3m.hsp" *MAINLOOP redraw 0 await 30 color 255,255,255 boxf getkey RK,39 getkey LK,37 getkey TK,40 getkey BK,38 getkey PU,90 getkey PD,88 getkey AK,32 getkey WC,67 getkey PZ,9 if RK :DEG-=2 if LK :DEG+=2 if TK :ZDEG-=2 if BK :ZDEG+=2 if PU :PW- if PD :PW+ if PZ :PW=0 PW=limit(PW,-175,50) d3rotate TX,TY,16384,16384,0.017453292519943295769*(DEG*64)/128 d3rotate TMPX,TZ,16384,16384,0.017453292519943295769*(ZDEG*64)/128 D=sqrt((MX-TX)*(MX-TX)+(MY-EY)*(MY-EY)+(MZ-TZ)*(MZ-TZ)) if D!0.0 { MDX=int(double(MX-TX)/D*(PW/2)) MDY=int(double(MY-TY)/D*(PW/2)) MDZ=int(double(MZ-TZ)/D*(PW/2)) } MX+=MDX :MY+=MDY :MZ+=MDZ MX=limit(MX,-8192,16384) :MY=limit(MY,-8192,16384) :MZ=limit(MZ,0,16384) d3setcam MX,MY,MZ,TX,TY,TZ color 0 d3mes "512,512,512",512,512,512 d3mes "0,0,0",0,0,0 d3mes "256,256,768",256,256,768 d3mes "512,512,512",512,512,512 d3mes "256,-1024,256",256,-1024,256 d3mes "0,-768,0",0,-768,0 d3mes "-1024,128,128",-1024,128,128 d3mes "-512,0,0",-512,0,0 d3mes "-8192,-8192,0",-8192,-8192,0 d3mes "16384,-8192,0",16384,-8192,0 d3mes "16384,16384,0",16384,16384,0 d3mes "-8192,16384,0",-8192,16384,0 d3box -8192,-8192,16384,16384,16384,0 color 128,0,128 ; ―――――――――――――┐ A0_X=0,0,0,0 ;┐ | A0_Y=0,512,512,0 ;|面0 | A0_Z=512,512,0,0 ;| | d3square A0_X,A0_Y,A0_Z ;┘ | ; | A1_X=0,0,512,512 ;┐ | A1_Y=512,0,0,512 ;|面1 | A1_Z=512,512,512,512 ;| | d3square A1_X,A1_Y,A1_Z ;┘ | ; | A2_X=0,512,512,0 ;┐ | A2_Y=512,512,512,512 ;|面2 | A2_Z=512,512,0,0 ;| |ボックスA d3square A2_X,A2_Y,A2_Z ;┘ | ; | A3_X=512,512,512,512 ;┐ | A3_Y=0,512,512,0 ;|面3 | A3_Z=512,512,0,0 ;| | d3square A3_X,A3_Y,A3_Z ;┘ | ; | A4_X=0,512,512,0 ;┐ | A4_Y=0,0,0,0 ;|面4 | A4_Z=512,512,0,0 ;| | d3square A4_X,A4_Y,A4_Z ;┘ | ; ―――――――――――――┘ color 0,128,128 ; ―――――――――――――┐ B0_X=0,256,256,0 ;┐ | B0_Y=-1024,-1024,-768,-768 ;|面0 | B0_Z=256,256,256,256 ;| | d3square B0_X,B0_Y,B0_Z ;┘ | ; | B1_X=256,256,256,256 ;┐ | B1_Y=-1024,-1024,-768,-768 ;|面1 | B1_Z=256,0,0,256 ;| | d3square B1_X,B1_Y,B1_Z ;┘ | ; | B2_X=0,0,0,0 ;┐ | B2_Y=-1024,-1024,-768,-768 ;|面2 |ボックスB B2_Z=256,0,0,256 ;| | d3square B2_X,B2_Y,B2_Z ;┘ | ; | B3_X=0,256,256,0 ;┐ | B3_Y=-768,-768,-768,-768 ;|面3 | B3_Z=256,256,0,0 ;| | d3square B3_X,B3_Y,B3_Z ;┘ | ; | B4_X=0,256,256,0 ;┐ | B4_Y=-1024,-1024,-1024,-1024 ;|面4 | B4_Z=256,256,0,0 ;| | d3square B4_X,B4_Y,B4_Z ;┘ | ; ―――――――――――――┘ color 128,128,0 ; ―――――――――――――┐ C0_X=512,256,256,512 ;┐ | C0_Y=256,256,256,256 ;|面0 | C0_Z=768,768,512,512 ;| | d3square C0_X,C0_Y,C0_Z ;┘ | ; | C1_X=512,512,256,256 ;┐ | C1_Y=512,256,256,512 ;|面1 | C1_Z=768,768,768,768 ;| | d3square C1_X,C1_Y,C1_Z ;┘ | ; | C2_X=512,256,256,512 ;┐ | C2_Y=512,512,512,512 ;|面2 | C2_Z=768,768,512,512 ;| | d3square C2_X,C2_Y,C2_Z ;┘ | ; | C3_X=256,256,256,256 ;┐ | C3_Y=256,512,512,256 ;|面3 | C3_Z=768,768,512,512 ;| | d3square C3_X,C3_Y,C3_Z ;┘ | ; | C4_X=512,512,512,512 ;┐ | C4_Y=256,512,512,256 ;|面4 | C4_Z=768,768,512,512 ;| | d3square C4_X,C4_Y,C4_Z ;┘ | ;―――――――――――――┘ color 0 d3box 512,512,512,0,0,0 d3box 256,256,768,512,512,512 d3box 256,-1024,256,0,-768,0 d3box -1024,128,128,-512,0,0 SP=int(sqrt(MDX*MDX+MDY*MDY+MDZ*MDZ)) pos 0,0 color 255,64,64 mes -PW color 64,255,64 mes MZ/25 color 64,64,255 mes SP redraw goto *MAINLOOP



この記事に返信する


ORZ

リンク

2009/4/19(Sun) 23:16:24|NO.24716

いきなりこれをバーンと貼られてまず唖然。実行してみて機体?スピード?意味不明。
操作方法はセルフサービス。

>>どうすればよいか分からず・・・・・・
>>どなたかお教え頂ければ幸いです。

まずコレを回答者に教えなさいよ。



ORZ

リンク

2009/4/19(Sun) 23:18:47|NO.24717

Zボタンと方向キーを押して初めて、ああ、一人称なのかと。



KIMU

リンク

2009/4/20(Mon) 01:18:49|NO.24718


D=sqrt((MX-TX)*(MX-TX)+(MY-EY)*(MY-EY)+(MZ-TZ)*(MZ-TZ))
とりあえずEYって何?
これは人に聞くような物じゃないし
人に見てもらうなら変数や定数が何に使われてるとか
どう言う処理をしてるかのコメントぐらい入れないとダメだと思う
それが無いと間違いなのかどうかも分からない



axobj

リンク

2009/4/20(Mon) 16:02:08|NO.24723

すみません、自分では分かりきっている事だけに書くことを全く考えませんでした。以後気を付けます。

操作方法:
方向キー  方向コントロール
Z     スピードアップ
Y     スピードダウン/バック
TABキー  スピードを0に

変数MX、MY、MZは自機の座標、
MDX、MDY、MDZは自機の各方向の移動量、
TX、TY、TZはカメラの注視点、
DEGはX、Y方向(平面方向)の角度、
ZDEGはZ方向(縦方向)の角度、
TMPXは縦方向の角度を計算する際にX方向の数値を出力する変数(用途なし)です。

注視点との距離を求めて、そこから各方向への移動量を求めています。

EYはタイプミスのようです。
今HSPを使えない場所なので確認できませんが、これが原因かも知れません。もしそうだったら非常に申し訳ありません。



氷牙

リンク

2009/4/21(Tue) 23:17:23|NO.24751

await をgoto の前におけばいいと思います



axobj

リンク

2009/4/23(Thu) 19:49:41|NO.24773

どうやらTYをEYとしてたのが原因のようでした。
くだらない事で質問してしまい申し訳ありませんでした。



ONION software Copyright 1997-2023(c) All rights reserved.