Скорость движения менять не получится, т.к. в движке один тик - один ход, а не интервал времени. Можно только сделать передвижение с той же скоростью. И тогда боковое движение при натыкании на стену есть ли смысл делать? Прямое смысл есть делать.
Скорость движения менять не получится, т.к. в движке один тик - один ход, а не интервал времени. Можно только сделать передвижение с той же скоростью. И тогда боковое движение при натыкании на стену есть ли смысл делать? Прямое смысл есть делать.
Башку при этом поворачиваешь в соответствии с движением или смотришь туда же, как до натыкания на стену?
Если башку поворачиваешь, то весь лабиринт спокойно обходится по правилу правой руки (только на прямых углах придется вручную поворачивать на 45 градусов). А это противоречит правилам игры - самому найти выход вручную, а не просто тупо пробежавшись по всем коридорам от одной нажатой кнопки. В оригинальном Doom так невозможно было, потому что скорость сильно падала, а здесь она не падает, так что...
Если башку не поворачиваешь, то получается, тупо дрочишься об стенку с небольшим движением вперед (так в Doom по-моему). Но т.к. у нас нет изменения скорости, то тебя просто с прежней скоростью несет вдоль стены, глядя при этом куда-то вбок. Смех, короче, и еще больше запутает.
---------- Post added at 13:02 ---------- Previous post was at 12:54 ----------
В общем, я бы сделал только автоматический поворот и дальнейшее обычное движение вдоль стены, если движешься вперед и натыкаешься на стену под углом 45 градусов. В остальных случаях просто встаешь.
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
В DOOM'е прекрасно скользишь вдоль стены со скоростью пропорциональной углу движения. И во всех абсолютно играх - точно так же! Поэтому - делай!
---------- Post added at 13:11 ---------- Previous post was at 13:08 ----------
Нахрен! Andrew771, ну ты в стрелялки когда нить играл? Какое главное правило? - К противнику находиться всегда лицом!!! Поэтому двигаешься как угодно - боком, задом, но лицом к противнику!!!!!!! А не боком и не задом!
Это будет выглядеть так:
Поэтому, лучше не делать. А сделать только:
---
Ну так ты и можешь находиться всегда лицом, поворачиваясь соответственно, откуда стреляют. Не будет же за тебя программа поворачивать сразу лицом к противнику - это не реалистично, да и какой смысл тогда играть, если всегда будешь попадать сразу. В реальной жизни ты не знаешь, откуда могут стрельнуть в любой момент, так что продвигаешься осторожно.
---------- Post added at 13:47 ---------- Previous post was at 13:43 ----------
У нас нету плавных поворотов, прицеливания и попадания в зависимости от угла поворота, нет таймера. Сделать это перечисленное не представляется возможным. Поэтому мы не можем регулировать скорость при поворотах. Не можем всегда лицом к противнику стоять, иначе попадать будем сразу, что не интересно.
Andrew771, не надо делать порнографию! Никаких автоматических доворотов не может быть! Делай как надо, и не ищи лёгких решений, они никому не нужны!
---------- Post added at 14:03 ---------- Previous post was at 13:50 ----------
не надо делать то, что тебя не просят. Сделай нормальное скольжение вдоль стен - всё, больше от тебя ничего не требуется!
Last edited by Black_Cat; 6th May 2011 at 13:52.
Andrew771, плюсую ребят. на самом деле, скольжение есть везде.
и ни на какие вектора раскладывать не надо.
если у тебя чел ходит дискретно и не разгоняется, к примеру, со временем, то код предельно прост:
где dx, dy - текущие приращения по x и y.Code:prev_x = x x = x + dx if is_wall(x, y) x = prev_x prev_y = y y = y + dy if is_wall(x, y) y = prev_y
похожий код используется в моём 3D шутере для Android, так что в работоспособности не сомневайся, всё проверено и перепроверено тысячами человек.
Andrew771, ещё одна новаторская функция движка, которая никогда не реализовывалась на Спектруме, но которая в 3d шутере архиважна - пространственное распределение звуков. В нашем случае это пока только выстрелы. Как это делается:
D3 #FE - правый канал
D4 #FE - левый канал.
Andrew771, пожалуйста не говори что этого нет на фирменном Спектруме, поэтому не надо! Достаточно того, что это есть (а где нет - легко делается припаиванием 2х проводков к разъёму) на отечественных клонах.
There are currently 1 users browsing this thread. (0 members and 1 guests)