Числа в GDScript

Числа являются важным типом данных в любой компьютерной программе. GDScript поддерживает целые числа и числа с плавающей запятой. Оба типа могут быть как положительными, так и отрицательными.

Мы можем присваивать числа переменным. Затем значение может передаваться и изменяться. Если важно, чтобы значение не изменялось, его следует присвоить константе.

Вот несколько примеров присвоения чисел. Комментарии начинаются с символа #.

# Integers
var a = 1
var b = -23
var c = 0
var d = 0xA1Fe316 # hexadecimal

# Floats
var x = 1.0
var y = -43.01
var z = 1.3e6

# Constant
const THE_ANSWER = 42

Заранее определенные константы включают: PI (число Пи), TAU (двойное число Пи), INF (бесконечность).

Для упражнения напишите код для вывода чисел в окно Output редактора.

Идеи для экспериментов:

  • Что произойдет, если вы попытаетесь изменить значение константы?
  • Попробуйте ввести число с плавающей запятой с экспонентой, например, 3e6 (3 миллиона).
  • Что произойдет, если вы введете чрезвычайно большие числа?
  • Важно ли, какие буквы использовать для шестнадцатеричных цифр?
  • Используйте встроенные константы, чтобы увидеть их выходные значения.

Вот шаблон кода для начала:

extends Node2D

const SPEED = 75
var number = SPEED

# Called when the node enters the scene tree for the first time.
func _ready():
	# Print the value to the Output window of the editor
	print(number)
	number = 86
	print(number)

Перечисления (Enums)

Перечисления полезны для определения нескольких связанных констант, где не важно значение, автоматически присваиваемое движком, например: enum {COLD (ХОЛОДНО), WARM (ТЕПЛО), HOT (ЖАРКО)}.

Немного подробнее о числах, хранящихся в компьютере

Компьютерные чипы хранят данные в виде последовательностей 1 и 0 в двоичной системе. Каждое значение представляет собой бит. Целые числа хранятся как 64 бита. Это ограничивает диапазон значений целых чисел.

Если к целому числу постоянно добавлять 1, оно достигнет максимального положительного значения (63 единицы), а затем, добавив еще одну 1, бит знака (64-й бит) изменится, так как все предшествующие единицы переносят новую единицу (в двоичной арифметике), давая максимальное отрицательное значение. Затем начинается подсчет обратно к нулю и вверх до максимального положительного значения снова.

Таким образом, число заворачивается. Думаете, что это лучше, чем получение ошибки переполнения, приводящей к остановке (сбою)?

Оборачивание чисел (Number Wrapping)

В игре может быть полезным, чтобы числа заворачивались. Например, координата позиции вдоль повторяющегося ландшафта. Возможно, координата x ландшафта отображается как целое число, и высота ландшафта рисуется вверх и вниз по мере движения по нему как функция x?

Но вы, возможно, хотите, чтобы ваш воин проходил по местности столько, сколько продлится игра. Так что, если x — это целое число, заворачивающееся, вам не нужно беспокоиться о возникновении ошибки при достижении максимального значения x в конечных стадиях турнира по киберспорту.

Целые числа

Целые числа идеальны для счетчиков, индексов и идентификационных номеров, где требуются целые числа. Даже самая популярная многопользовательская игра, вероятно, не исчерпает уникальные идентификационные номера для игроков, используя целые числа. Но будьте осторожны с ботами!

Числа с плавающей запятой

Числа с плавающей запятой широко используются для всего остального, такого как суммы, углы, длины и т. д. Они не так хороши, как целые числа, для точных сравнений, таких как A равно нулю, так как нужно учитывать ошибки точности. Например: 0.0001 выглядит как достаточно близкое приближение к нулю, но на самом деле оно больше нуля в коде.

Вывод

При смешивании чисел в вычислениях и присваиваниях происходит приведение типов, что может привести к неожиданным результатам, если не предпринять предосторожности. Ожидайте более подробного изучения этой интересной темы в будущем уроке.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

семнадцать − четыре =

Прокрутить вверх