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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0619
Quietフィールドが進めません。5解決


Quiet

リンク

2008/6/19(Thu) 21:14:13|NO.16836


#define tx0 tx.cnt #define ty0 ty.cnt buffer 1,700,700 screen 0,200,200 randomize oo=100 dim tx,oo dim ty,oo repeat oo tx.cnt=rnd(700) ty.cnt=rnd(700) loop r=0.0 zx=100:zy=100 *main gsel 1 color 156,90,60:boxf color 100,80,50 stick ky,15 repeat oo boxf tx0-2,ty0-2 , tx0+2,ty0+2 if ky&2:ty0+ if ky&8:ty0- loop gsel 0 pos 100,100:gmode 0,700,700:grotate 1,0,0,r if ky&1:r+=0.07 if ky&4:r-=0.07 color 0,0,0:boxf zx-5,zy-5 , zx+5,zy+5 redraw 1:await 1:redraw 0 goto *main
上のスクリプトは、真上からみたフィールド(地面)で、
ど真ん中の黒い点は主人公なんです。
カーソルキー横でフィールドを回転(主人公の向きを変える)できるんですが
↑を押したらタイトルバーの向きに進まず、なんか変な向きに移動してしまうんです。
サンプルスクリプトなど見て頑張ってみたんですが・・・
どうすればいいでしょうか。



この記事に返信する


たこ

リンク

2008/6/19(Thu) 22:00:40|NO.16838

角度のある移動は三角関数が必要になってきますので

if ky&2:ty0+ if ky&8:ty0-
の部分を

if ky&2 { tx0 += sin(r) ty0 += cos(r) } if ky&8 { tx0 -= sin(r) ty0 -= cos(r) }
と直したらうまくいきます
三角関数についてよくわからなかったら、ググってください



Quiet

リンク

2008/6/19(Thu) 22:13:17|NO.16839

変えましたが、
角度を変えて↑を押しても動かなくなりました・・・



たこ

リンク

2008/6/19(Thu) 22:40:08|NO.16841

あっすいません
txとtyを実数型配列変数にする必要がありました

dimをddimに

tx.cnt=rnd(700)
ty.cnt=rnd(700)

tx.cnt=1.0*rnd(700)
ty.cnt=1.0*rnd(700)
にしてください



Quiet

リンク

2008/6/19(Thu) 22:58:57|NO.16842

おおっ!すごい!
ありがとうございます。参考になりました。

なにせ、まだ三角法とか三角関数などは習っていないもので・・・
理解できるようがんばってみます。



Quiet

リンク

2008/6/19(Thu) 22:59:15|NO.16843

   



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