Field

new Field(options, style)

Конструктор полей карт (Card).
Производит размещение карт на экране. Контролирует позицию карт при наведении курсора. Отвечает за подсветку пространства под картами и самих карт.
Основные компоненты: Field#area, Field#cards.
Карты добавляются в поле двумя методами:

Field#queueCards -> Field#placeQueuedCards
Field#addCards

Использование второго метода до финализации первого добавляет карты в очередь и запускает очередь
.queueCards(c1) -> .addCards(c2) => .queueCards(c1) -> .queueCards(c2) -> .placeQueuedCards()

Source:
Parameters:
Name Type Description
options object

Настройки поля. Field#options. Будут пересохранены в this, изменения объекта options не повлияют на поле.

Name Type Default Description
id string null

Field#id

type string 'GENERIC'

Field#type

name string null

Field#name

moveTime number cardManager.defaultMoveTime

Field#moveTime

delayTime number 100

Field#delayTime

debug boolean false

Field#inDebugMode

specialId number null

Field#specialId

style object

Внешний вид поля. Field#style

Name Type Default Description
x number 0

Field#x позиция по горизонтали

y number 0

Field#y позиция по вертикали

width number 0

Field#area ширина поверхности

height number 0

Field#area высота поверхности

margin number 0

Отступ от края поля до видимого края поля.

padding number 10

Отступ от видимого края поля до карт внутри.

spacing number 10

Отступ между картами.

minActiveSpace number fieldManager.builder.minActiveSpace

Минимальная ширина\высота для расположения карт.

raisedOffset number skinManager.skin.height/2

На сколько поднимать карты с raised == true

forcedSpace boolean | number false

Нужно ли рассчитывать сдвиг карт по отношению друг к другу или использовать заданное значение.

scaleDiff number 0.025

На сколько увеличивается масштаб карты при наведении.

focusable boolean false

Нужно ли сдвигать карты при наведении

sortable boolean false

Нужно ли сортировать карты

draggable boolean false

Можно ли перетаскивать карты в этом поле

horizontalAlign string 'center'

Горизонтальное выравнивание поля.
Значения: 'left', 'center', 'right', 'centerLeft'

verticalAlign string 'middle'

Вертикальное выравнивание поля.
Значения: 'top', 'middle', 'bottom'

axis string 'horizontal'

Ориентация поля. Меняет местами horizontalAlign и verticalAlign (right станет bottom и т.д.), не влияет на width и height.
Значения: 'vertical', 'horizontal'

direction string 'forward'

Направление поля.
Значения: 'forward', 'backward'

addTo string 'front'

В какой конец поля добавляются карты.
Значения: 'front', 'back'

flipped boolean false

Карты располагаются повернутыми на 180 градусов

randomAngle boolean | string false

Нужно ли класть карты в поле под случайным углом.
Значения: false, 'uni', 'bi'
'uni' - карты поворачиваются по направлению поля
'bi' - карты поворачиваются в случайную сторону

adjust boolean true

Нужно ли пытаться двигать карты, которые уже находятся в поле, при добавлении новых.

alpha number 0.35

Прозрачность поля.

corner number 5

Радиус закругленного угла.

border number 4

Ширина рамки.

animateAppearance boolean | string

Нужно ли анимировать появление поля и откуда это делать.
Значения: false, 'left', 'right', 'top', 'bottom'

Extends

Classes

BadgeField
IconField
PlayerField
PopupField
TableField

Members

(private) _angles :Object.<number>

Углы карт по id карт.

Source:

(private) _bitmapArea :Phaser.BitmapData

BitmapData поверхности поля.

Source:

(private) _cardSpacing :Number

Расчитанное расстояние между картами для Field#cardIsInside

Source:

(private) _debugActiveSpace :Phaser.Rectangle

Размер активного места поля для дебага.

Source:

(private) _delays :object.<string>

Задержки карт по id карт.

Source:

(private) _entranceTween :Phaser.Tween

Твин появления поля.

Source:

(private) _expectedDelay :Number

Ожидаемая задержка для установки Field#_uninteractibleTimer

Source:

(private) _queuedCards :Array.<Card>

Карты в очереди на добавление.

Source:

(private) _uninteractibleTimer

Source:

alpha :number

Прозрачность.

Inherited From:
Source:

angle :number

Поворот в градусах.

Inherited From:
Source:

area :Phaser.Image

Поверхность поля.

Source:

cards :Array.<Card>

Карты поля.

Source:

cardsToRemove :Array.<Card>

Карты на удаление.

Source:
See:

children :Array.<DisplayObject>

Элементы, входящие в группу.

Inherited From:
Source:

delayTime :number

Задержка между движением карт.

Source:

focusedCard :Card

Выделенная карта.

Source:

highlighted :Boolean

Подсвечено ли поле.

Default Value:
  • false
Source:

id :string

id поля

Source:

inDebugMode :boolean

Находится ли поле в дебаг режиме

Source:

interactible :Boolean

Интерактивно ли поле.

Default Value:
  • true
Source:

(readonly) length :number

Кол-во элементов, входящих в группу.

Inherited From:
Source:

linkedField :Field

Связанное поле.

Source:
See:

moveTime :number

Время движения карт.

Source:

name :string

Имя поля.

Overrides:
Source:

options :object

Настройки поля. Изменения не повлияют на само поле, т.к. все свойства сохранены в this.

Source:

playable :string|boolean

Можно ли играть карты на это поле и тип действия.

Default Value:
  • false
Source:

poppedOut :Boolean

Увеличен ли масштаб поля

Default Value:
  • false
Source:

rotation :number

Поворот в радианах.

Inherited From:
Source:

savedPosition :object

Запомненная позиция поля (FieldManager#swapFields).

Source:

specialId :number

Специальное id поля для полей, пренадлежащих одной группе.

Source:

style :object

Внешний вид поля.

Source:

type :string

Тип поля

Source:

validCards :Array.<Card>

Карты, которые могут быть сыграны на это поле.

Source:
See:
  • highlightPossibleActions

visible :boolean

Отрисовывается ли элемент игрой.

Inherited From:
Source:

x :number

Позиция по горизонтали.

Overrides:
Source:

y :number

Позиция по вертикали.

Overrides:
Source:

Methods

(private) _appendCards(cards)

Добавляет карты в Field#cards. Вычисляет и сохраняет угол карты в Field#_angles, если указан Field#randomAngle.

Source:
Parameters:
Name Type Description
cards Array.<Card>

карты для добавления

(private) _applyOptions(optionsopt, styleopt)

Совмещает переданные опции со стандартными и сохраняет их, как свойства объекта.

Source:
Parameters:
Name Type Attributes Description
options object <optional>

Настройки поля.

style object <optional>

Внешний вид поля.

(private) _calculateCardSpacing(activeWidth) → {number}

Считает отступ между картами.

Source:
Parameters:
Name Type Description
activeWidth number

Активная ширина поля.

Returns:
Type:
number

Возвращает отступ между картами.

(private) _calculateCircleCenter(a, b, c) → {Phaser.Point}

Считает центр круга по трем точкам. Взято со stackoverflow.

Source:
Parameters:
Name Type Description
a object

точка a {x, y}

b object

точка b {x, y}

c object

точка c {x, y}

Returns:
Type:
Phaser.Point

Возвращает центр круга.

(private) _calculateMargin(requiredActiveWidth, areaActiveWidth, areaWidth, areaHeight, cardWidth, cardHeight) → {object}

Считает отступы сверху и слева

Source:
Parameters:
Name Type Description
requiredActiveWidth number

необходимая ширина для размещения карт

areaActiveWidth number

реальная ширина для размещения карт

areaWidth number

ширина поля

areaHeight number

высота поля

cardWidth number

ширина карты

cardHeight number

высота карты

Returns:
Type:
object

Возвращает отступы {top, left}

(private) _compareCards()

Компаратор для сортировки.

Source:
See:

(private) _createArea(width, height)

Запоминает размеры поля и рисует прямоугольник с закругленными углами.

Source:
Parameters:
Name Type Description
width number

ширина поля

height number

высота поля

(private) _createDelayArray(noDelay) → {array}

Создает массив задержек.

Source:
Parameters:
Name Type Description
noDelay boolean

все задержки равны нулю

Returns:
Type:
array

Возращает массив задержек.

(private) _fixCardDraggability(card)

Выставляет перетаскиваемость карты для тех случаев, когда карта была перемещена без использования presetField метода.

Source:
Parameters:
Name Type Description
card Card

(private) _getLastAngle() → {number|null}

Возвращает угол последней карты в поле.

Source:
Returns:
Type:
number | null

Угол последней карты или null.

(private) _moveCard(card, index, topMargin, leftMargin, cardSpacing, angle, shift, focusedIndex, delayArray, delayIndex, bringToTopOn)

Рассчитывает позицию для карты в соотвествии с индексом и перемещает карту в эту позицию.

Source:
Parameters:
Name Type Description
card Card

карта

index number

индекс карты в поле

topMargin number

отступ сверху

leftMargin number

отступ слева

cardSpacing number

отступ от предыдущей карты

angle number

угол поворота

shift number

сдвиг от выделенной карты

focusedIndex number

индекс выделенной карты в поле

delayArray Array.<number>

массив задержек карт

delayIndex number

индекс задержки карты

bringToTopOn BRING_TO_TOP_ON

когда поднимать карту на передний план

(private) _rotateCard(card, angle, x, y, delay) → {number}

Поворачивает карту и считает корректированную позицию по оси y.

Source:
Parameters:
Name Type Description
card Card

карта

angle number

угол

x number

позиция по x

y number

позиция по y

delay number

время задержки

Returns:
Type:
number

Возвращает откорректированную позицию по оси y.

(private) _setDebugActiveSpace(activeWidth, cardHeight, leftMargin, topMargin, shift)

Сохраняет размеры активного места для отображения.

Source:
Parameters:
Name Type Description
activeWidth number

ширина активного места

cardHeight number

высота карт

leftMargin number

отступ слева

topMargin number

отступ сверху

shift number

отступ от выделенной карты

(private) _setUninteractibleTimer(time)

Запускает таймер, во время которого карты не реагируют на курсор.

Source:
Parameters:
Name Type Description
time number

время таймера

(private) _startCardMovers(card, angle, x, y, margin, delay, bringToTopOn)

Запускает твины карты.

Source:
Parameters:
Name Type Description
card Card
angle number
x number
y number
margin number
delay number
bringToTopOn BRING_TO_TOP_ON

add()

Добавляет элемент в группу.

Inherited From:
Source:

addCards(newCards, bringToTopOnopt, noDelayopt) → {number}

Добавляет карты в поле.

Source:
Parameters:
Name Type Attributes Default Description
newCards Array.<Card>

добавляемые карты

bringToTopOn BRING_TO_TOP_ON <optional>
BRING_TO_TOP_ON.START

когда поднимать карты на передний план

noDelay boolean <optional>
false

убирает время ожидания перед добавлением карт

Returns:
Type:
number

Время добавления

animateAppearance(delay)

Запускает твин появления поля.

Source:
Parameters:
Name Type Description
delay number

задержка до запуска твина

bringToTop()

Поднимает элемент группы наверх.

Inherited From:
Source:

cardIsInside(card, includeSpacingopt, includeWholeCardopt) → {boolean}

Проверяет нахождение карты внутри поля (по координатам).

Source:
Parameters:
Name Type Attributes Default Description
card Card

проверяемая карта

includeSpacing boolean <optional>
true

нужно ли учитывать сдвиг карт друг от друга

includeWholeCard boolean <optional>
false

любая часть карты

Returns:
Type:
boolean

Находится ли карта в поле.

destroy()

Полностью уничтожает поле, убирает все карты предварительно.

Overrides:
Source:

endAnimation()

Завершает твин появления поля.

Source:

focusOffCard(card, forcedopt)

Убирает выделение карты.

Source:
Parameters:
Name Type Attributes Description
card Card

выделенная карта

forced boolean <optional>

заставляет поле убрать выделение карты, даже если поле не стало бы этого делать

focusOnCard(card, pointer, forcedopt)

Выделяет карту, над которой находится курсор.

Source:
Parameters:
Name Type Attributes Description
card Card

выделенная карта

pointer Phaser.Pointer

курсор

forced boolean <optional>

заставляет поле выделить карту, даже если она не находится в пределах поля или поле не выделяет карты при наведении

forEach()

Выполняет callback для каждого элемента группы.

Inherited From:
Source:

getByName()

Возвращает элемент группы с указанным именем.

Inherited From:
Source:

getDefaultOptions()

Возвращает опции по умолчанию

Source:

placeCards(newCardsopt, bringToTopOnopt, noDelayopt) → {number}

Размещает карты в поле.

Source:
Parameters:
Name Type Attributes Default Description
newCards Array.<Card> <optional>
null

только что добавленные карты, они будут перемещены в поле по очереди

bringToTopOn BRING_TO_TOP_ON <optional>

когда поднимать карту на передний план

noDelay boolean <optional>
false

все карты будут перемещены без задержки

Returns:
Type:
number

Возвращает задержку следующей карты.

placeQueuedCards(bringToTopOnopt, noDelayopt)

Размещает карты из очереди.

Source:
See:
Parameters:
Name Type Attributes Default Description
bringToTopOn BRING_TO_TOP_ON <optional>
BRING_TO_TOP_ON.START

когда поднимать карты на передний план

noDelay boolean <optional>
false

убирает время ожидания перед добавлением карт

queueCards(newCards, delay) → {number}

Добавляет карты в очередь на добавление.

Source:
See:
Parameters:
Name Type Description
newCards Array.<Card>

добавляемые карты

delay number

задержка, добавляемая к первой карте в очереди

Returns:
Type:
number

Планируемое время добавления

remove()

Убирает элемент из группы.

Inherited From:
Source:

removeAll()

Удаляет все элементы из группы, опционально уничтожая их.

Inherited From:
Source:

removeAllCards()

Удаляет все карты из поля.

Source:
See:

removeCards(cardsToRemove)

Удаляет карты из поля.

Source:
Parameters:
Name Type Description
cardsToRemove Array.<Card>

карты для удаления

removeMarkedCards()

Удаляет карты из Field#cardsToRemove.

Source:

reset()

Ресет поля. Убирает все карты из поля и очереди.

Source:

resetQueue()

Очищает очередь на добавление.

Source:
See:

rotateCards()

Поворачивает все карты.

Source:

setBase(xopt, yopt, shouldPlaceopt)

Устанавливает позицию поля.

Source:
Parameters:
Name Type Attributes Default Description
x number <optional>
this.style.x

по горизонтали

y number <optional>
this.style.y

по вертикали

shouldPlace boolean <optional>
false

нужно ли размещать карты после установки

setCardsHighlight(highlight)

Устанавливает подсветку всех карт в поле.

Source:
Parameters:
Name Type Description
highlight boolean

подсветка карт

setCardsPlayability(playable)

Устанавливает играбильность всех карт в поле.

Source:
Parameters:
Name Type Description
playable boolean

играбильность карт

setChildIndex()

Устанавливает индекс элемента группы по вертикали.

Inherited From:
Source:

setOwnHighlight(onopt, tintopt)

Устанавливает подсветку поля. По умолчанию зависит от того, включен ли дебаг поля.

Source:
Parameters:
Name Type Attributes Default Description
on boolean <optional>
Field#inDebugMode

подствечивать ли поле

tint number <optional>
ui.colors.lightBlue

цвет подсветки

setOwnPlayability(playable, linkedFieldIdopt)

Устанавливает возможность играть карты на поле и подсветку.

Source:
Parameters:
Name Type Attributes Default Description
playable string | boolean

играбильность и тип применимого действия

linkedFieldId string <optional>
null

связанное поле, используется CardControl#cardMoveToField

setPopOut(popped)

Увеличивает или восстанавливает масштаб последней карты в поле.

Source:
Parameters:
Name Type Description
popped boolean

нужно ли увеличить или восстановить масштаб

setSize(widthopt, heightopt, shouldPlaceopt)

Устанавливает размер поля.

Source:
Parameters:
Name Type Attributes Default Description
width number <optional>
this.style.width

ширина

height number <optional>
this.style.height

высота

shouldPlace boolean <optional>
false

нужно ли размещать карты после установки

setupAnimatedAppearance()

Создает твин анимации появления поля.

Source:

setVisibility(visible)

Устанавливает видимость подсветки поля.

Source:
Parameters:
Name Type Description
visible boolean

видимость

sortCards()

Сортирует карты в Field#cards по значению.

Source:

toggleDebugMode()

Переключает режим дебага

Source:

update()

Обновляет все элементы, входящие в группу.

Inherited From:
Source:

updateDebug()

Обновляет дебаг

Source:

zAlignCards(checkDelayopt, forcedCardopt)

Устанавливает z-index карт.

Source:
Parameters:
Name Type Attributes Description
checkDelay boolean <optional>

если true, то будут подняты только карты, которые не ожидают перемещения.

forcedCard Card <optional>

Карта, которая поднимается, даже если checkDelay == true и она движется