В этом уроке вы узнаете, как сделать Arcanoid игру.
Нам понадобятся вот эти спрайты:

Игрок

Мячик

Блок 1

Блок 2

Бонус 1

Бонус 2

Фон

Пуля
Названия объектов:
Сначала вставим все эти объекты в игру. Фон вставьте как объект TiledBackground, а все остальные спрайты как Sprite. Дадим имена нашим объектам:
Фон- TiledBackground(пусть так и останется)
Игрок- Player;
Мячик- Ball;
Блок 1-Block1;
Блок 2-Block2;
Пуля- Bullet;
Бонус 1- Bonus1;
Бонус 2- Bonus2.
Фон:
Сделаем размер нашей игры 800x600 пикселей:
А затем нажмите кнопку
Properties.
Давайте создадим 3 слоя, и назовём их вот так:
На самый первый слой «Background» переместим наш фон и поставим ему вот такие настройки:
Прозрачность (Opacity) ставим на 50%, что бы фон был красивее.
Расстановка объектов:
Для удобства размещения объектов надо включить и настроить сетку. Поставьте галочку на Snap-to moving.
Нажмите на кнопку Edit grid.
Разместите блоки, как хотите, но для примера я разместил так:
Разместите спрайты игрока и мяч примерно вот так:
Настройки игрока:
Настройки мяча:
Конечно, не обязательно мяч, ставить именно под такими позициями. Так как потом мы «привяжем» его к игроку.
Мяч:
Давайте назначим нашему мячу, поведение Ball(второе поведение):
И сделаем вот такие настройки:
Игрок:
Давайте добавим игроку image point «ball».
К этой точке будет крепиться наш мяч, до запуска.
А теперь добавим игроку приватную переменную «start», которая будет отвечать за запуск мяча, то есть, если переменная «start» равна 0, то мяч не запущен, если 1, то он в воздухе (запущен).
Давайте создадим событие, которое будет отвечать за то, что бы герой всегда принимал позицию X равной мышке, но при этом сам герой не должен заходить за экран, а для этого поставим два ограничителя по бокам уровня на слое «Og»:
Настройки ограничителей:
А теперь создадим событие:
Mouse and keyword-> Mouse is over object, объект Sprite5 (инвертируйте его

).
И второе событие:
Mouse and keyword-> Mouse is over object, объект TiledBackground.
Должно получиться вот так:
Действие:
Player-> Set X, X =mousex.
Блоки:
У нас есть 2 блока(Block1 и Block2). Давайте объединим их в одну семью «Blue». Для этого выделим один Block1 и один Block2. После того как вы их выделили, вы увидите вот такие настройки:
Заходим во вкладку Groups, а в ней во вкладку Families
Нажмите кнопку Add, и выберите семью Blue. Для чего мы это сделали, вы узнаете позже.
Бонус 1,2:
1 бонус- это добавление двух мячей. То есть после подбора этого бонуса наш мяч должен расстроиться.
2 бонус- это пистолет. То есть после подбора этого бонуса, мы сможем стрелять.
Сделаем так, что бы всегда бонусы падали вниз:
System-> Always,
Действие:
Bonus1-> Set y, y= Bonus1.Y +4(это число можете сделать любым, чем больше число, тем с большей скоростью будет падать бонус).
Действие 2:
Bonus2-> Set y, y= Bonus2.Y +4
Для первого бонуса, нам понадобится дополнительный, фальшивый мяч. Для этого копируем наш мяч(Ctrl + C), и вставляем его клон:
Настройте фальшивый мяч вот так:
Filter можете поставить любым. Он нужен для того, что бы различать настоящий и поддельный мяч.
Событие:
Player-> on collision with another object, объект Bonus1
Действия:
System -> Create object relative to object.
Действие 2:
FBall-> Set angle, angle= random (360)
Теперь скопируйте 1 и 2 действия и вставьте их.
Действие 5:
Bonus1> Destroy.
Событие уничтожение фальшивого мяча:
FBall-> Object is outside layout
Действие:
FBall-> Destroy
Теперь объединим Fball и Ball в семью Friendly.
Вернёмся к блокам.
Блоки:
Давайте добавим к блокам приватную переменную «bonus».
Создаём вот такие событие:
Friendly-> on collision with another object, объект Block1
Действие:
Block-> Set value, value= random (100)
Теперь добавим объект Particles с такими настройками:
Texture:
Действие 2:
Block1-> spawn another object, объект Particles, Layer= game (слово game возьмите в двойные кавычки)
Создайте глобальную переменную «score».
Действие 3:
System-> add to value, score, value=50
Действие 4:
Block1-> Destroy.
Подсобытия и действия к ним попробуйте сделать вот так:
После того как это сделаете, клонируйте 5 событие и вставьте, а затем замените Block1 на Block2, и замените 3 действие 8 события как показано на картинке:
Текст:
Добавьте текст на слое Text. Добавьте 2 глобальные переменные: «life» и «bullet».
Теперь ко второму действию(Always), добавьте действие:
Text-> Set text, text="Жизни: " & global('life') &newline& "Очки: " & global('score') &newline& "Патроны: " & global('bullet')
Запуск и пропуск мяча:
Сейчас мы сделаем запуск мяча.
Событие:
Player1-> Compare private variable, переменная «start», равна 0.
Действие:
Ball-> Set position to another object, объект игрока, а image point= ball (возьмите в двойные скобки)
Действие 2:
Ball-> Set speed (вкладка ball), speed=0
И вот такое подсобытие с такими действиями:
Постарайтесь сделать вот это событие:
Событие:
Ball-> Object is outside layout?
Действия:
System-> Subtract, переменная life, значение 1
Ball-> Set position to another object, объект игрока, а image point= ball (возьмите в двойные скобки)
Player-> Set value, start, value=0
Fball-> Destroy
Бонус 2:
Создаем 2 image point’а игроку:
Теперь вам предстоит использовать то, чему вы научились в этом уроке. Это будет несложно:
Переход на следующий уровень:
Создаем событие:
System-> Compare. Value1= Blue. count, Comparison= lower or equal, Value2=0.
Действие:
System-> Next layout.
Выключение игры:
Событие:
System-> Compare global variable, life, less or equal 0.
Действие:
System-> Close.
Скачать исходник