Перейти к содержанию

Лидеры

Популярный контент

Показан контент с высокой репутацией 21.03.2015 во всех областях

  1. Обсуждать личку на всеобщем обозрении - не очень прилично.
    1 балл
  2. Выведет, если одна и та же функция используется и для врагов и для твоего персонажа. Во-вторых, если поставить брейкпоинт на значение патронов. Третий вариант - немножко изучить, как работают игры в целом. Скажем, для работы с клавиатурой есть WinAPI-функции. А еще есть DirectInput - библиотека для устройств ввода-вывода в составе DirectX. И еще есть всякое разное. Туда тоже можно ставить брейкпоинты и отлаживать.
    1 балл
  3. Привет! Когда ты отлаживаешь игру и в отладчике ставишь брейкпоинт на, скажем, адрес координаты по оси X персонажа, то отладчик тебя отправляет в эту самую функцию. Просто на уровне ассемблера там возникает достаточно глубокая вложенность функций одна в другую (т.к. в ассемблере по факту функций нет) и внешне это выглядит примерно так: Инстанс класса игрока -> Указатель на таблицу его методов -> Указатель на функцию "походить" -> Функция "походить" (ось1, ось2, ось3) -> Подфункция "поменять значение оси в свойствах персонажа" В последней ты и приземляешься, когда отлаживаешь игру. Что делать? Внимательно прочитать написанное на экране (чаще всего функции самого низкого уровня очень короткие - в 1-2 экрана), а дальше выполнить код до первого возврата (ret) и читать опять. И потом еще. В конце концов ты наткнешься на что-нибудь в духе: PUSH EAXPUSH EAX + 0x4PUSH EAX + 0x8CALL 0x123456 Это и будет та самая функция. Скажем, что в EAX хранится массив координат персонажа, тогда 0x123456 - адрес функции "походить". Как-то так.
    1 балл
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.