数値

数値は、コンピュータプログラムにおいて重要なデータ型です。GDScriptでは、整数と浮動小数点数をサポートしており、どちらも正または負の値を取ることができます。

数値は変数に代入できます。この値はプログラム内で利用され、変更されることがあります。しかし、変更されるべきでない場合は定数に代入するべきです。

以下は数値を変数や定数に代入する例です。コメントは # 記号で始まります。
# 整数
var a = 1
var b = -23
var c = 0
var d = 0xA1Fe316 # 16進数

# 浮動小数点数
var x = 1.0
var y = -43.01
var z = 1.3e6

# 定数
const THE_ANSWER = 42
あらかじめ定義された定数には次のようなものがあります: PI, TAU, INF(無限大)

練習 コードを書いて、エディタの出力ウィンドウに数値を表示してみましょう。

遊び心のあるアイデア:
定数の値を変更しようとするとどうなるか?
指数表記を使った浮動小数点数(例: 3e6(300万))を試してみる
とてつもなく大きな数値を入力したらどうなるか?
16進数の数字で大文字と小文字を使い分けた場合はどうなるか?
組み込みの定数を使ってその出力値を確認する
以下のコードテンプレートを使って始めてみましょう:
extends Node2D

const SPEED = 75
var number = SPEED

# ノードがシーンツリーに初めて入るときに呼び出される。
func _ready():
# エディタの出力ウィンドウに値を表示
print(number)
number = 86
print(number)


列挙型(Enums) 列挙型は、エンジンによって自動的に割り当てられる値を気にせず、関連する複数の定数を定義するのに便利です。例: enum {COLD, WARM, HOT}


数値のバイナリ表現 コンピュータチップは、1と0の列としてデータをバイナリで保存します。各値はビット(bit)です。整数は64ビットとして保存され、このため整数値の範囲に制限があります。
整数に1を加え続けると、最大の正の値(63ビットの1)に達します。その後、さらに1を加えると符号ビット(64ビット目)が反転し、新たな1がバイナリ演算で前のすべての1を繰り上げ、最小の負の値になります。そして、0に戻り、再び最大の正の値までカウントが進みます。
このように数値は「ラップアラウンド」します。エラーが発生するよりは、このような動作の方が良いと思いますか?


数値のラップアラウンド ゲームでは、数値がラップアラウンドするのが便利な場合があります。たとえば、繰り返す地形上の位置座標などです。x座標が整数でラップアラウンドする場合、ゲームがどれだけ続いても、エラーが発生する心配はありません。


浮動小数点数 浮動小数点数は、量、角度、長さなどに多用されます。ただし、整数と比べて精度に誤差があるため、「Aがゼロに等しい」といった正確な比較には向いていません。たとえば、0.0001 はゼロに非常に近いですが、コード上ではゼロより大きい値です。


まとめ 計算や代入で異なる型の数値を混在させると、キャスト(型変換)が行われます。これにより予期しない結果が生じる場合があるので、注意が必要です。この興味深いトピックについては、今後のチュートリアルでさらに掘り下げていきます。
最終更新日: 2024/12/27 01:36

コメント