|
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485
|
|||||||||||
Создание пули без создания её обьекта - Новый способ10.07.2018, 21:43. Показов 2598. Ответов 21
Метки нет (Все метки)
Короче начал начал расписывать ее как для обьекта, но функцию
с библиотекой создал для вектора и совсем запутался. Помогите кто врубается как можно запехать ее в вектор - без запихивания ее в массив ? Так, это ==== bullet.h ======
0
|
|||||||||||
| 10.07.2018, 21:43 | |
|
Ответы с готовыми решениями:
21
Достать ИД после создания обьекта Создание пули |
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
|
| 10.07.2018, 22:27 | |
|
0
|
|
|
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485
|
|||||||||||||||||||||
| 11.07.2018, 00:09 [ТС] | |||||||||||||||||||||
|
Ну хорошо, есть предельно простой код стрельбы, который запихали в вектор, но с ним
возникают проблемы, когда я начинаю применять скроллинг на карту, уже даже со стрельбой на любой угол разобрался Конечно было бы идеально контролить каждую пулю в отдельности, в учебнике видел туториал реализации через Array массив типа дали [100] в обойму и пошли вычитать, но код был по весу даже больше, чем это делать через обьект ![]() И снова вернулся к элементарному работающему массиву ![]()
Короче вот у нас есть созданная пуля в теле среляющего обьекта ( Игрока )
чтобы он имела свою траекторию полета например x+=dx*time; почему запись создания как для обьекта не катит ? Тут же просто текстура вместо обьекта, а так все то же самое
Нужно как то в функции update задать другую позицию пули, например
Придется получать координаты окна и к ним привязывать да ? Добавлено через 36 секунд Я боюсь тогда что у меня опять из за этого скроллинг накроется
0
|
|||||||||||||||||||||
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
|
| 11.07.2018, 04:44 | |
|
ты же по этому уроку делал?
http://kychka-pc.ru/sfml/urok-... -puli.html
0
|
|
|
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485
|
||||||
| 11.07.2018, 15:48 [ТС] | ||||||
|
Нет не по этому, у тринли хороший пример по обьектному способу https://www.youtube.com/watch?v=T6o5OlgsCew
Есть гемморой с файлами анимаций они оба используют Тайл мап едитор и SpriteDecomposer - обе программы конечно что то рисуют, но обе глючные - проще самому делать редактор для своих карт. Если в игру поставить другую кату, или карту с другим размером тайлов все перестанет работать . А то что там по умолчанию 32*32 это галименькое качество. Норма начинается от 50*50 Добавлено через 5 часов 37 минут Впринципе если всех врагов, пули и игрока распихивать по векторам, а не обьектам это же существенно облегчит код да ? Сократит написание сразу трёх библиотек. Вот нашел такой рабочий код вообще без классов игрока и врагов , но по идее их все равно придется создать
0
|
||||||
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
|
| 11.07.2018, 20:16 | |
|
0
|
|
|
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485
|
|
| 11.07.2018, 22:07 [ТС] | |
|
Уничтожение прыжком это тупо, Пашка Кучка прав, что уничтожение стрельбой самый популярный метод
![]() Хотя рубить или стучать большим молотком по голове - тоже неплохо Добавлено через 6 минут Я не нашел альтернативных редакторов анимаций XML кроме этой бадяги, которую они советовали Это не есть гууд
0
|
|
|
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485
|
||||||
| 12.07.2018, 01:45 [ТС] | ||||||
|
Версия _008
Почти что выстрелил ![]() с переводом в координаты
0
|
||||||
|
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485
|
||||||
| 12.07.2018, 11:53 [ТС] | ||||||
|
Версия 009 Почему не стреляет где ошибка ?
0
|
||||||
|
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485
|
||||||
| 12.07.2018, 14:41 [ТС] | ||||||
|
Ну осталось только еминема соеденить с пулей
![]() ВЕРСИЯ _010
0
|
||||||
|
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485
|
||||||
| 12.07.2018, 15:19 [ТС] | ||||||
|
Есть небольшие глюки с дэтектом collision
но работает ![]() почему то дэтект зависает _ВЕРСИЯ_011
0
|
||||||
|
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485
|
|
| 12.07.2018, 15:28 [ТС] | |
|
Ну хорошо,возможно просто не в том цикле детект, остается
только добавить здоровья обьекту и произвести уничтожение емнема с экрана не могу врубиться пока как это сделать. Может просто отрисовку запретить ![]() Хотелось бы как то конечно вектор удалить
0
|
|
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
||
| 12.07.2018, 20:46 | ||
|
shrink_to_fit позволяющая уменьшить количество используемой памяти. c.erase(c.begin(), c.end()); Удаляет указанные элементы из контейнера надо помнить что есть деструктор в vectore то что он и так все очищает
0
|
||
|
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485
|
||||||
| 12.07.2018, 22:25 [ТС] | ||||||
|
Antikl, напиши плз как конкретно удалить вот этот вектор пл3
я даже похожего не нашел как это делается
0
|
||||||
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
||||||||||||
| 12.07.2018, 23:18 | ||||||||||||
координаты окна узнать легко: sf::Vector2u size = window.getSize(); unsigned int width = size.x; unsigned int height = size.y; //если спрайт за окном то не отрисовываем его, поработайте с условием
1
|
||||||||||||
|
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485
|
|
| 12.07.2018, 23:28 [ТС] | |
|
Ну не спрайт, а спрайт в векторе он же не удалится из памяти если просто
позишан сменить. Ладно все равно спс за идею.
0
|
|
|
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485
|
||||||
| 12.07.2018, 23:31 [ТС] | ||||||
|
ИТОГО:
ВЕРСИЯ_012
0
|
||||||
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
||
| 12.07.2018, 23:32 | ||
|
1)вариант функции setPosition (float x, float y) 2)вариант функции setPosition (const Vector2f & position)
0
|
||
|
14 / 20 / 14
Регистрация: 20.03.2018
Сообщений: 485
|
|||||||||||
| 12.07.2018, 23:53 [ТС] | |||||||||||
|
Ну как я понял вектор из первой схемы например,
где пули задавали через текстуру
Из за этого у меня скроллинг накрывался ? как тогда тот вариант вектора удалить ? видел такой пример удаления
0
|
|||||||||||
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
||
| 13.07.2018, 00:47 | ||
|
Слева от окна, когда x = 0 В верхней части окна находится y = 0 Правило окна - это когда x = window.getSize().x Нижняя часть окна - это когда y = window.getSize().y В SFML все происхождение автоматически устанавливается в верхнем левом углу прямоугольника / спрайта. У каждого прямоугольника есть метод getLocalBounds(), который возвращаетsf::Rect Итак, предполагая, что «спрайт» - это имя вашего прямоугольника / спрайта, с которым вы хотите проверить столкновение окон с ... ... для проверки столкновения с левой частью окна: if ( sprite.getPosition().x <= 0 ) { } ... для проверки столкновения с верхней частью окна if ( sprite.getPosition().y <= 0 ) { } ... для проверки столкновения с правом окна if ( sprite.getPosition().x + sprite.getLocalBounds().width >= window.getSize().x ) { } ... для проверки столкновения с нижней частью окна if ( sprite.getPosition().y + sprite.getLocalBounds().height >= window.getSize().y ) { } Добавлено через 18 минут я бы использовал так vector<tempObject> tempVector; tempVector.clear();
0
|
||
| 13.07.2018, 00:47 | |
|
Помогаю со студенческими работами здесь
20
Создание летящей пули
Определение методов интерфейса в точке создания обьекта - поясните синтаксис Способ создания ТИЦ 10... Выбор БД и способ создания Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|