Руководство к программе Construct 2 начального уровня

7

Index

Taggé

Contributeurs

Statistiques

663,681 visites, 816,414 vues

Outils

Partager

Traductions

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 17 May, 2017. Last updated 25 Feb, 2019

Добавление функций игре

Если мы будем объяснять каждое событие так же детально, как раньше, руководство будет очень большим. Давайте сократим описание следующих событий. Помните следующие шаги для добавления условия или действия:

1. Два клика, чтобы добавить новое событие или один клик для линка Add action, чтобы добавить действие.

2. Два клика по объекту, в котором находится условие/действие.

3. Два клика для условия/действия, которое вы хотите добавить.

4. Введите параметры, если есть необходимость.

Теперь события будут описываться как объект, за которым следует условие/действие, а потом параметры. Например, событие, которое мы только что добавили, можно написать так:

    Add condition [i]System[/i] -> [i]Every tick[/i]
    Add action [i]Player[/i] -> [i]Set angle towards position[/i] -> X: [i]Mouse.X[/i], Y: [i]Mouse.Y[/i]

Игрок стреляет

Когда игрок кликает мышкой, должна вылетать пуля. Этого можно достичь действием Spawn an object в объекте Player, что создает новую ситуацию объекта при тех же параметрах положения и угла. Добавленная ранее Bullet movement, позволит пуле лететь вперёд. Создайте следующее событие:

    Condition: [i]Mouse[/i] -> [i]On click[/i] -> Left clicked (the default)
    Action: [i]Player[/i] -> [i]Spawn another object[/i] -> For [i]Object[/i], choose the [i]Bullet[/i] object.      For [i]Layer[/i], put [b]1[/b] (the "Main" layer is layer 1 - remember Construct 2 counts from zero).  Leave [i]Image point[/i] as 0.
    

Ваше событие должно выглядеть так:

Если вы запустите игру, вы заметите, что пули стреляют из тела игрока, а не из пистолета. Давайте исправим это, поместив image point на конце пистолета. (Image point (точка изображения) – это точка на изображении, из которого вы можете выбрасывать объекты).

Кликните правой кнопкой мыши по игроку на проекте или панели объектов и выберите Edit animations.

Снова появится редактор изображения. Кликните по инструменту origin and image points (источник и точки изображения):

…и откроется диалоговое окно image points:

Обратите внимание, что центр объекта появляется в виде красной точки. Это «горячая точка» или «точка вращения» объекта. Если вы вращаете объект, он крутится вокруг центра. Мы хотим добавить еще одну точку для пистолета, поэтому кликните зеленую кнопку add. Появится синяя точка – это наша новая точка изображения. Кликните левой кнопкой мыши на краю пистолета, чтобы разместить там точку изображения:

Закройте редактор изображения. Кликните два раза по действию Spawn an object, которое мы добавили ранее и измените Image point на 1. (Центр всегда является первой точкой изображения. Помните, что Construct 2 начинает отсчет с нуля). Событие должно выглядеть так, как показано на рисунке ниже. Обратите внимание: теперь на нем написано Image point 1:

Запустите игру. Теперь пули вылетают с пистолета! Однако пока пули ничего не делают. Надеюсь, что, вы понимаете, что когда вы разберетесь с системой событий, вы легко сможете составить функции игры.

Давайте сделаем пули активными – которые могут убивать монстра. Добавьте следующее событие:

    Condition: [i]Bullet[/i] -> [i]On collision with another object[/i] -> pick [i]Monster[/i].
    Action: [i]Monster[/i] -> [i]Destroy[/i]
    Action: [i]Bullet[/i] -> [i]Spawn another object[/i] -> [i]Explosion[/i], layer [b]1[/b]
    Action: [i]Bullet[/i] -> [i]Destroy[/i]

Эффект взрыва

Запустите игру и попробуйте стрелять в монстра. Ой! Взрыв имеет большую черную границу!

Возможно, Вы предполагали, что так оно должно выглядеть и задумывались, останется ли этот эффект! Не беспокойтесь – нет. Кликните по Explosion object на Object bar (панели объектов) в нижнем правом углу или по Project bar (панели проектов) (которая была табулирована с layers bar (панель слоев). Слева появятся свойства на properties bar (панели свойств). Внизу установите настройки Blend mode в режим Additive*. Теперь попробуйте запустить игру снова.

Почему это работает? Если объяснить без деталей – простые изображения вставляются поверх экрана. С помощью эффекта Additive каждый пиксель добавляется (суммируется) с пикселем фона за ним. Черный – это нулевое значение пикселя, поэтому ничего не добавляется – вы не видите черный фон. Более яркие цвета добавляют больше, поэтому кажутся более сильными. Они отлично подходят для взрыва и световых эффектов.

Делаем монстра немного умнее

На данный момент монстры уходят с плана направо. Давайте сделаем их немного интересней. Вначале давайте запустим их под произвольным углом.

    Condition: [i]System[/i] -> [i]On start of Layout[/i]
    Action: [i]Monster[/i] -> [i]Set angle[/i] -> random(360)

Они все равно будут исчезать, когда покидают границы плана. Давайте оставим их в границах плана. Мы направим их обратно на игрока, когда они будут подходить к границе. Это имеет два эффекта: они всегда остаются в границе плана и, если игрок остается на месте, монстры идут прямо на него!

    Condition: [i]Monster[/i] -> [i]Is outside layout[/i]
    Action: [i]Monster[/i] -> [i]Set angle toward position[/i] -> For X, [b]Player.X[/b] - for Y, [b]Player.Y[/b].

Запустите игру. Если вы поиграете немного, вы заметите, что монстры так же, как игрок, остаются в рамках плана и движутся в разных направлениях. Это не AI, но сойдет и так!

Теперь, я думаю, мы хотим, чтобы монстра можно было убить с пяти выстрелов, а не с одного. Как мы это сделаем? Если у нас есть только один "Health counter" (счетчик здоровья), то когда мы выстрелим в одного монстра пять раз, умрут все монстры сразу. Нам необходимо, чтобы каждый монстр помнил собственный уровень здоровья. Мы можем сделать это с instance variables (переменные).

  • 0 Comments

Want to leave a comment? Login or Register an account!