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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0908
NOM割り算の結果を小数点以下にしたいのですが、うまくいきません5解決


NOM

リンク

2008/9/8(Mon) 18:15:07|NO.19173

はじめまして

シューティングゲームを作っていて、敵機が自機の方向に弾を撃ってくるようにプログラムしようとしています。
敵が弾を撃った瞬間に、敵機の位置と自機の位置と角度(三角関数)を計算して敵が自機を狙う
プログラムが出来上がりました。確かに自機の方向に撃ってきますが、ときどきズレてしまう。
そこで調べてみると、割り算を行うと小数点以下が切り捨てられてしまうみたいなんですね。

例えば3.0/2.0とやれば切捨てはされないのですが、変数の場合はどうしたらよいのでしょうか?

弾の座標x,yに、先ほどの敵が弾を撃った瞬間の計算で求められた
「毎回弾の座標xには"この数値"を、yには"この数値"を代入すれば、自機がいた所に飛んでいくよ」
という変数なのですが、"この数値"が小数点以下切捨てされてしまうようで・・・



この記事に返信する


NOM

リンク

2008/9/8(Mon) 18:56:31|NO.19176

最後の行
「という変数なのですが」→「というプログラムなのですが」
にしてください



GENKI

リンク

2008/9/8(Mon) 20:50:00|NO.19182

変数の中身が実数だったり整数だったりしているんではないでしょうか。
「プログラミング・マニュアル」
 2.スクリプト記述の基本
  ・式
を読んでみてください。

対策としては実数を入れる変数には実数以外入れないようにする。
もしくは計算式を記述するときに、計算する最初の変数をdouble関数で実数に変換するようにしておくといいでしょう。


直接関係するわけではないですが、レス内容が参考になると思いますので関連スレをあげておきます。
http://hsp.tv/play/pforum.php?mode=all&num=18847



M

リンク

2008/9/8(Mon) 22:31:28|NO.19219

割られる変数をdoubleでくくるだ。

x1=double(x)/y



s

リンク

2008/9/9(Tue) 00:05:11|NO.19232

あとは

x = 5
y = 2
z = (0.0+x)/y とか。めんどいかなw



NOM

リンク

2008/9/9(Tue) 06:51:27|NO.19255

GENKIさんのおっしゃるように
プログラムを工夫して、変数に実数が代入されるようにしたら解決しました!
ありがとうございます。



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