|
-16 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 226
|
||||||||||||||||
Адреса указателей31.03.2023, 04:05. Показов 2905. Ответов 42
Все здравствуйте. У меня такой вопрос, объявляю переменную, глобально(в классе)
из другой функции, этого-же класса, получаю адрес (&) этой-же переменной
Т.е. один и тот же адрес получается разный из разных функций. Так и должно быть?
0
|
||||||||||||||||
| 31.03.2023, 04:05 | |
|
Ответы с готовыми решениями:
42
Почему в сортировке указателей на объекты в вызове функции используются адреса объектов, а не указателей?
|
|
99 / 74 / 28
Регистрация: 30.03.2023
Сообщений: 206
|
|||||||
| 31.03.2023, 10:46 | |||||||
Ну, считай дифф
0
|
|||||||
|
-16 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 226
|
|
| 31.03.2023, 10:52 [ТС] | |
|
Но это внутри функции, я его передаю по ссылке в функцию поворота башни, проблем нет и все работает.
Пушка это другая функция, в которую я не могу передать, не позволяет SetThink (подобие updater или timer в Pawn'е) Вот и получаю головняк. Добавлено через 1 минуту Ща, погодь, обмозгую. Пока не соображу.
0
|
|
|
99 / 74 / 28
Регистрация: 30.03.2023
Сообщений: 206
|
|
| 31.03.2023, 10:54 | |
|
Блин, дружище, ты чего?
m_vVictimPos ты же умудрился, как ты выражаешься, "передать"? В чем проблема по аналогии сделать еще одно поле? Я же все в коде написал. Посмотри на строчку 43 и дальше ищи использование поля с таким именем.
0
|
|
|
-16 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 226
|
|
| 31.03.2023, 10:56 [ТС] | |
|
Все, вижу. Ты его в конструктор запихал.
А почему в защищенном? Координаты это хорошо конечно, но сам противник, полностью, куда лучше, я с него могу получить все что мне нужно, в том числе и координаты.
0
|
|
|
99 / 74 / 28
Регистрация: 30.03.2023
Сообщений: 206
|
|||
| 31.03.2023, 11:00 | |||
|
0
|
|||
|
-16 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 226
|
||||||
| 31.03.2023, 14:31 [ТС] | ||||||
|
leproza,
Спасибо огромное, я домой приеду, посмотрю что получится, тебе напишу. В любом случае спасибо за то, что вник в суть вопроса хоть немного. Редко такое бывает. Добавлено через 3 часа 28 минут leproza, Посмотрел, нет, не то, игра просто вылетает на раб. стол без ошибок. Я, кстати, с этого и начинал, так же игра вылетала, поэтому и переключился на указатели, а дальше пошло-поехало..... У меня появилась такая мысль, может быть ну его на... эти родные, хайфловские функции, сделать простую рекрусию своей функции CameraVision и тогда точно не должно быть проблем. Правда возникает вопрос, как на плюсах правильно запустить функцией саму себя, главное с передачей переменных в саму себя, интересно, возможно такое или нет. Такая конструкция будет работать или нет? Как её правильно соорудить?
0
|
||||||
|
99 / 74 / 28
Регистрация: 30.03.2023
Сообщений: 206
|
|||||||
| 31.03.2023, 14:42 | |||||||
|
Ну, рекурсию-то можно:
0
|
|||||||
|
-16 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 226
|
|
| 31.03.2023, 16:26 [ТС] | |
|
leproza, Это же, как-бы, шаблон рекрусии.
Внутри будет то же самое что и в основной ф-ии. Что там загонится, сделаю обнуление, это не есть проблема, главное чтобы заработала. Рекрусии это как независимый вариант.
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 31.03.2023, 17:29 | |
|
tonline_kms65, кажется мне, что вы лечите симптомы.
Вы говорили что работали с неким игровым движком ? В нем игровые объекты имели собственный ID (идентификатор). Если вы пишите в том же архитектурном стиле, то логично создать регистратор таких объектов. И через него и получать доступ к ним. Это не будет разрушать привычный вам способ программирования игрового процесса, а другие приемы можно освоить по ходу. На самом деле это не так сложно, как вам кажется.
0
|
|
|
-16 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 226
|
|||||||||||||
| 01.04.2023, 06:59 [ТС] | |||||||||||||
|
Вот что я точно заметил, сама ошибка с вылетом игры случается только в тот момент, когда я пытаюсь обратиться к переменной
Такое чувство что не прекешены файлы модели, точно так же вылетает, но при отсутствии прекеша хоть сообщение есть. А здесь молчком. Кстати, к моему стыду, я не могу вывести ошибку в логи, никогда этого не делал, не было такой необходимости, я никогда так не зависал, как сейчас в этих плюсах. Добавлено через 19 минут SmallEvil, По большому счету, проблема возникает только в таком случае как этот, запись и получение данных из "глобальной переменной"(не знаю как её правильно назвать), все остальное работает отлично и без проблем, принцип программирования один и тот-же, везде. Мне нужно понять как можно создать доступную переменную, которая доступна из всех нужных мне функций, хоть и слышу что это не лучший вариант, но пока, для себя, я вижу проблему именно в этом. В самом движке, HL2, управление моделью построено на контроллерах 3d модели(не нужно внутри класса создавать подклассы что бы потом думать как ими управлять, то что у меня сейчас и получилось ), но меня такой вариант мало устраивает, это сложность в компилировании самой 3D модели(создании контроллеров), ограниченность в использовании анимаций(нужно постоянно что-то с чем-то блендить), я уже давно пошел по пути разделения модели на независимые части, склеить их в коде можно либо на аттачах, либо просто слиянием костей, управляемость намного лучше, анимации самостоятельны.Но это только то, что не касается "характеров", с ними уже отдельная тема, если делать по моему варианту - получится "смех и грех". Добавлено через 1 час 20 минут А может быть переменная CBaseEntity* m_pNearestEnemy; просто "затирается" из какой то другой ф-ии? Такое же может быть?
0
|
|||||||||||||
|
-16 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 226
|
|
| 05.04.2023, 16:34 [ТС] | |
|
Прошла масса времени но я так и не разобрался, точно, как решить эту проблему.
Зато я узнал для себя, какие возникают ошибки. - Сначала я думал, что создавая башню танка я создаю класс, создавая пушку тоже самое, но сейчас я практически уверен, что создавая башню я создаю не класс а обект, то же самое с пушкой, создаю не класс а объект объекта башня(наверно подобект). - Из объекта башня видно все перенные, так как я их передаю по ссылке. А вот из объекта пушка не видно вообще никаких переменных, возвращает нули, пушка существует сама по себе, просто держится на аатаче к башне. Что бы я ни делал результат нулевой, прихожу к уверенности что что то неверно с созданием пушки.
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 05.04.2023, 16:54 | |
|
tonline_kms65,
Может нарушено правило Трех ? Это зависит от структуры вашего класса и то как он создается и используется.
0
|
|
|
-16 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 226
|
||
| 11.04.2023, 08:59 [ТС] | ||
|
Прошло еще больше времени, нигде ни ответа ни привета, странно, ездил в наш политен - никто, ничего не понял. Тишина.
Я, пока, все нужные мне параметры передаю через глобальные переменные. Понимаю что это ни есть хорошо, но мне нужно дальше идти, делать свой npc_танк, а так я могу сидеть над этой проблемой как кащей еще год. Всё больше прихожу к убеждению - насколько лучше, надежнее и понятнее передача значений из функций в функции по ссылкам. Пока буду делать так как мне понятно, по ходу что нибудь да родится, возможно и понимание придёт, от чего такая проблема возникла. Я думаю что проблема возникла именно из-за дерева приаттачивания, "родитель"->"ребенок"->"внук"(как-то так). У меня на Pawn'е такая проблема в начале появлялась, но как-то я её решил, давно это было, уже и не вспомню. Сейчас же ситуация такая - "родитель" отлично управляем, "ребенок" так-же всё без проблем, а вот с "внуком" проблема есть, он ничего не видит, вообще ничего, кроме глобальных. У меня есть еще сомнения насчет самой 3d модели "внука"(пушки), может быть что-то не так с углами(костями), будет время я проверю эту версию, обязательно, потому что сейчас дельту я получаю неточную, соответственно пушка наводится либо чуть выше, либо чуть ниже цели. Если вектора направлений не нормализовать - там вообще, получается, туши свет.
0
|
||
|
Комп_Оратор)
|
|||||||
| 11.04.2023, 12:04 | |||||||
|
tonline_kms65, я включился независимо и в самом конце. Я не политеновец но тоже не пойму. А они будучи:
Я попробую разобрать, но вообще, это вряд ли поможет так как вы пишете кучу кода не имея понятия о языке. Это общиц подход и его нужно менять. Но к теме. Вот объект, адрес которого вы определяете:
CNPC_t80u. Однако метода Msg (const char*, const Vector &) [или около того] я не нашёл. Где он, - покажите как вы его объявили.И ещё. Это высокоуровневый вопрос. Он не по С++, но может оказаться существеннее. Почему не отслеживать объект врага захваченный прицелом? Зачем отрывать координаты и хранить и обрабатывать их отдельно, создавая параллельные сущности, которые проблемно будет синхронизировать?
0
|
|||||||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||||
| 11.04.2023, 14:51 | ||||
|
Кроме того что каждый класс может владеть своими ресурсами, а функции нет.
Начинайте сначала. Вы пытаетесь использовать ООП не зная что это такое. И наконец, каждый класс, модуль, нужно тестировать отдельно. Если есть такая возможность. Или с минимальным набором необходимых классов. Вы это делали ?
0
|
||||
|
-16 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 226
|
|||||||||||||
| 13.04.2023, 05:10 [ТС] | |||||||||||||
|
Вроде разобрался с тем что мне нужно. Пока оставлю глобальные переменные, а там "будет день - будет пища".
https://youtu.be/Xg9S0nZAM6g IGPIGP, SmallEvil, Большое спасибо за ответы по сути, без балабольства. IGPIGP, Я это и пытаюсь делать - но не могу, сам объект найден(pNearestEnemy, в глобале он же Victime), но как его использовать - непонятно. Хоть я и слабо знаком с плюсами, но я прекрасно понимаю цель которая мне нужна. Согласен что мой начальный язык меня здесь сильно путает. Сейчас я остановился на самом начальном варианте(понимаю, что может быть и тупо, но это работает и работает отлично), это глобальная переменная - противник(Victime): до описания класса
Вот это то, что мне и нужно было. Кстати, я же не зря создал тему в этом разделе. Я очень даже неплохо знаком с игростроем(всем что с этим связано), но разница в знании языков вынуждает создавать тему здесь. Это как приехать в другую страну, с другим языком - говорим, вроде, об одном и том же, но не понимаем друг друга. Добавлено через 7 минут Бесполезное и в данный момент, для меня, бессмысленное занятие, я и так почти 2 недели потерял, вот если бы я занимался изучением этого языка всерьёз, тогда конечно, но сейчас мне это не нужно, не получится так - сделаю по другому. А по ходу будет видно что мне нужно а что нет. Насчет ООП - мне это очень и очень не нравится, но это моё, личное мнение.
0
|
|||||||||||||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||||
| 13.04.2023, 08:36 | |||||
|
Будете в пустую отлаживать нерабочие программы. Как вы себе представляете программирование без тестирования ? "Написали и оно сразу работает ?" Так бывает лишь в простых задачах, и даже в них есть ошибки. Без тестирования ничего не будет работать, никогда. Добавлено через 2 минуты Есть же другие концепции (в игрострое в том числе). Один из них ECS, Entity component system Есть неплохие статьи по нем. Добавлено через 1 минуту
0
|
|||||
|
-16 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 226
|
|
| 13.04.2023, 12:11 [ТС] | |
|
Все коды давным давно мною отработаны, это же всё мои функции, причем тестировал их в мультиплеере, в сингле намного проще, а это сингл.
Родные, хайфловские я так и не понял как работают, поэтому отказался от них. Те задачи, которые мне сейчас нужны, в них возможны какие то ошибки в перспективе, как например глобальные переменные, но пока я не вижу повод для особого беспокойства. Насчёт ООП - мне все равно в чем работать, есть задача, есть движек, если движек на c++ буду работать в нем, вообще по барабану, будет Шарп, lua(главное что бы сидобный язык был) - буду в них. Если реально нужно будет изучить что то для этой задачи - придется изучать, хотя нет никого желания ковыряться во всяких API - жизни не хватит. Добавлено через 2 часа 26 минут Между прочим, никто не заметил вероятной ошибки, касаемо этой переменной(Victime) в глобале. До меня только дошло, это хорошо сейчас работает, пока танк один, но если этих танков будет 2 или больше, они все будут использовать одну и ту же(т.е. одного и того же противника). Надо будет проверить, хотя мне уже и так видно. Придется как то привязать эту переменную к создаваемому классу. Если это будет так, то получится замкнутый круг, я опять вернулся туда же.
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||
| 13.04.2023, 16:34 | |||
|
Не верю я что вы с опытом по геймдеву (не знаю на чем), вообще без понятия что все это значит и как оно работает. Может вы и сделаете то что хотите, но это займет слишком много времени, а кодить на С++ и освоить используемый движок у вас так и не получится. Это кривая дорога в темный лес. Но раз ТС так хочет, кто мы что бы ему мешать. Счастливого пути. Добавлено через 14 минут tonline_kms65, Вообще, я так и не понял задачи. Сути проблемы. Не работает, ошибка, крешится - это все ни о чем. Вы должны, как разработчик, уметь выделять проблему, только после этого с ней можно справится, когда ее четко видно. Вот дальше ничего не могу посоветовать. Потому как проблема на ясна. Не ясно также окружение и концепт в котором все это должно крутиться. Но даже если бы было, как вам можно что-то посоветовать, если вы не знаете ЯП С++ ? Скажете : "слишком сложно", как раньше и на этом все.
0
|
|||
|
-16 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 226
|
|
| 13.04.2023, 17:13 [ТС] | |
|
0
|
|
| 13.04.2023, 17:13 | |
|
Как создать массив указателей на объекты базового класса, которым присвоить адреса объектов производных классов? Создать массив указателей базового класса и присвоить ему адреса каждого из екземпляров класса Объяснить различия в работе указателей на целое число и указателей на const char (строки в стиле Си) Создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
|
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
|
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения.
https:/ / habr. com/ ru/ sandbox/ 295048/
начало и оглавление
-
Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
|
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
|
|
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
|
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
|
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0)
Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона
Уважаемые коллеги!
В продолжение. . .
|
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии
Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
|