Да. Попробуй удерживать клавишу <УС> в смысле <CTRL> при старте игры (это упоминается в FAQ). Вокала вообще не будет, и печать побежит быстрее. До кнопки <S> в игре уже добрался?
Как тебе обновлённое меню Options (цвет номер 20)?
Да. Попробуй удерживать клавишу <УС> в смысле <CTRL> при старте игры (это упоминается в FAQ). Вокала вообще не будет, и печать побежит быстрее. До кнопки <S> в игре уже добрался?
Как тебе обновлённое меню Options (цвет номер 20)?
Последний раз редактировалось PPC; 26.12.2018 в 13:47.
ivagor, это всё ещё сырая альфа, и робот там полупрозрачный, и NPC ещё нет пока. Планов громадьё, но сейчас я really хочу чуть-чуть отдохнуть Чуть офигевший от перетолмачивания графики. Сборка, которая пошла в 0.65a была собрана буквально сегодня. Буду несказанно рад, если походишь, побродишь, меня самого там несколько моментов достаёт: в частности - очень много труб на которые надо запрыгивать IMHO. В общем, игровой процесс там всё ещё далеко несбалансирован, потому, что весь мой пар пошёл на антураж и скорость рендеринга. Рано наверное запулять в ютубу. Но когда-то мы доберёмся до заветной версии 1.0b
С Наступающим тебя!
PS. Демо-режим сделаю
"... жизнь удалась, если найдётся кто-нибудь, кто заберёт с помойки твои книги и инструменты, когда ты умрёшь". (c) marta_ketro
Любой компьютер, в котором стоят резисторы, компьютером может называться с натяжкой. (с) Д. Михайлов
Ждем авторского демо-режима.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
PPC, а ты коллизии спрайтов с тайлами и с другими спрайтами по координатам определяешь?
ivagor, а там пока только координаты ГГ проверяются, а что? На самом деле, алгоритм (но не имплементация!!!) примерно такой (по памяти): берётся текущая ширина ГГ в тайлах (движок считает эту величину переменной), и определяется координата центра спрайта в пикселах. Может попасть либо на границу тайлов из которых сделан спрайт, либо - на центр тайла (когда количество тайлов в спрайте - нечётное). К вычисленному в "экранных" координатах центру, прибавляются "физические" толщины ГГ в пикселах от центра, заданные в специальном файле-описателе параметров ГГ, и полученные величины превращаются в координаты в тайлах с округлением в большую сторону. Затем на тайловой карте производится проверка на попадания "граничных" тайлов ГГ на свободное (тайлы с величинами 0-0x7F) или занятое (0x80-0xFF) место. На самом деле, всё ешё сложнее, потому, что многие вещи не вычисляются каждый раз, а предкомпилированы, и код гонится по заранее известным веткам в зависимости от нажатых клавиш. Но на самом деле, всё ещё сложнее, потому, что во время прыжка или бега, алгоритм задаёт не единичные входы, и обсчёт движения за одно обновления экрана может включать несколько итераций. Как-то так. Если у тебя остался сырок, то вся эта байда происходит в файле vp.mac. Единственно, о чём надо помнить, что кроме соударений с препятствиями, на ГГ могут действовать и другие силы и они тоже обсчитываются там-же. Так сделана гравитация и также сделан эффект движения на платформе лифта.
Подскажите, здесь приведён пример с прерыванием и выводом графики. Вроде бы разобрался, даже будет работать, если в этот момент не спрайты рисуются. Но возникает вопрос. Если стек SP был на одном адресе, то при переходе на прерывание он уменьшается. Здесь где выделено, он уже уменьшенный и imm_sp он присваивается, уменьшенный, а не каким он был изначально. Ведь выход не RET, а JP. Значит он не увеличится сам. Как это понять? Не должен ли быть он между PUSH и POP?Код:;hl адрес спрайта Код: ;вот это вешаем на прерывание ISR_sub di ex (sp),hl ;обмениваем вершину стека и содержимое HL ld (imm_jp),hl pop hl ;заменяем испорченное слово спрайта push bc ;на текущее слово находящееся в BC ld (imm_sp),sp ld sp,ISR_sp ;здесь идет обработка прерывания ; ... ;---------------------------------- ld sp,$ imm_sp equ $-2 ei jp $ imm_jp equ $-2
И ещё,
это то же, что иКод:ld (imm_jp),hl jp $ imm_jp equ $-2
?Код:ld (imm_jp+1),hl imm_jp jp $
unreal
здесь похоже на ошибку.
оно должно выглядеть так
Код:;hl адрес спрайта Код: ;вот это вешаем на прерывание ISR_sub di ex (sp),hl ;обмениваем вершину стека и содержимое HL ld (imm_jp),hl pop hl ld (imm_sp),sp ;заменяем испорченное слово спрайта push bc ;на текущее слово находящееся в BC ld sp,ISR_sp ;здесь идет обработка прерывания ; ... ;---------------------------------- ld sp,$ imm_sp equ $-2 ei jp $ imm_jp equ $-2
С уважением,
Jerri / Red Triangle.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)