Створити розраховану на багато користувачів гру.
Гра є полем з квадратних шахових клітин.
Розмір поля може встановлюватись у налаштуваннях.
Приклад налаштувань гри
{
fps: 25,
width: 20,
height: 20,
size: 50,
}
fps - кількість кадрів у с.
width, height - кількість клітин по вертикалі та горизонталі
size – розмір клітини в пікселях.
Формат масиву.
scene = [
[
[ x: number,
y: number,
color: string,
borderColor: string,
border: number,
power: number[0-100]
actor: object
],
[x: number, y: number, ...],
[]
...
],
[],
...
]
При підключенні користувача на сцені розставити для нього фігури у шаховому порядку білі зверху праворуч, чорні внизу ліворуч (у кутах) для першого та другого користувача.
Якщо користувачів більше 3 нічого не робимо.
Формат об’єкта фігури.
actor = {
color: string[black|white],
name: [pone|rook|quin|king|bishop|knight],
power: number[0-100],
strenght: number[0-100],
position: {x,y},
image: string
}
Вхідні дані.
{
action: 'move',
from: {
x: number,
y: number,
},
to: {
x: number,
y: number,
}
}
Події переміщати фігуру.
З частотою fps передавати на клієнт по вебсокет цей об’єкт сцени.
{ data: scene, action: ‘render’ }
З’єднається із сервером.
Реалізувати функцію малювання клітин на полотні canvas.
Реалізувати малювання об’єктів фігур.
Реалізувати переміщення фігури з надсиланням повідомлення на сервер.
На сцену додати нового актора – танк замість ферзя.
Додати в сцену масив із кульками.
{ data: scene, action: ‘render’, tanks: [{color: string, image: string position: {x,y}},…], bullets: [{color: string, image: string position: {x,y}},…] }
Реалізувати подію повороту танка на 45 градусів.
Реалізувати подію пересування танка у 8 напрямах.
Реалізувати подію пострілу.
Переміщення кульки з видаленням поля при досягненні краю.
Відображення танка
Відображення куль.
Відпрацювати колізію кульки з фігурою.
Відпрацювати колізію танка із фігурою.