Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

(ShootBullet) Создание пули при выстреле #12

Open
mchernigin opened this issue Apr 1, 2024 · 0 comments
Open
Assignees

Comments

@mchernigin
Copy link
Member

Данная функция вызывается при нажатии игроком на кнопку выстрела. Необходимо создать новый объект bullet = Object() и установить у него некоторые из полей. Так как снаряды запускает игрок, то начальная позиция пули bullet.position должна совпадать с позицией игрока. Картинка пули должна считываться из файла Assets/bullet.png. Для добавления её к объекту необходимо сконструировать новый объект Render и присвоить его полю bullet.render. Для создания физического тела пули необходимо сконструировать объект Collider и присвоить его полю bullet.collider. Для автоматического определения размеров тела по графике, конструктору нужно передать bullet.render. Чтобы игрок не сталкивался с пулей конструктору также нужно передать тип физического тела - ColliderType::EVENT.

Далее необходимо указать параметры самой пули. Для этого можно использовать конструктор класса Bullet, в котором указать скорость пули и длительность её жизни. Так как пуля должна выпускаться в том же направлении, в которое смотрит игрок, скорость по оси x будет отрицательной, если player.player.direction равна Direction::LEFT, и положительной, если равна Direction::RIGHT. Время жизни пули необходимо указывать для того, чтобы она уничтожилась в функции UpdateBullet через указанное количество секунд, а не летела вечно.

Сконструированный объект Bullet необходимо записать в поле bullet.bullet. Далее, добавить этот объект в сцену можно с помощью функции Spawn.

При реализации данного задания у вас есть возможность добавить свою
текстуру пули Assets/bullet.png.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
Status: Todo
Development

No branches or pull requests

2 participants