Ответ: The Maze
ещё неброльшая оптимизация в MIDletPascal, дальше только реализация алгоритма в java. ....ну так как? какие у кого идеи? у меня сейчас логику делать - нету времени...
Код:
procedure drawMap; |
Ответ: The Maze
Я сейчас сильно занят, когда освобожусь, попытаюсь сделать движок типа Wolfenstein 3D с использованием рэй-кастинга.
|
Ответ: The Maze
спасибо Ром, твой арканойд с классной, интересной логикой!
(по разработке wolf-3D) В виду ограниченной скорости Z-buffer реализовать не получится, только его частный случай, вот некоторые приемы отображения спрайтов в псевдо-3D: после прорисовки всех стен остается массив размером в ширину экрана, и для каждого вертикального столбца в одну точку шириной записывается дистанция до стены. После расчета положения всех спрайтов, расстояния до них, и, соответственно, масштабирования, при их выводе, если линия пикселей из картинки ближе чем отрезок стены, то выводим его, иначе она за стеной, и мы его не выводим |
Ответ: The Maze
Вложений: 1
Sorry I don't speak much Russian
-------------------------------------- Basic Raycaster - Good - it works (mostly) Bad - Buggy, ugly, no textures and incomplete. Features - Basic collision detection, movement, sprites, variable depth, full-screen rendering. Needed: Everything fixed - I don't have time - Look forward to seeing what you come up with. Thanks. |
Ответ: The Maze
Что ж, будем стараться сделать :)
|
Ответ: The Maze
Классные движки), молодцы парни. В двиге от Fishy движение относительно камеры под -135 градусов(так выглядит). А в Vox'ельном карта клеится из сгенеренной картинки?
|
Ответ: The Maze
Вложений: 1
FISHY -
I have made correct 3D algorithm and imposing of the images. Now it is necessary to make logic and opponents. _____ Сделал текстурирование стен и корректное 3D-изображение. Необходимо добавить спрайты и логику противников. Работает довольно быстро. Выдрал и немножко оптимизировал библиотеку MIDletPascal работы с типом Real (fixed point) числа с фиксированной точкой.. Возможны ошибки.. тестировать было мало времени, просьба оттестировать путем сравнения результатов вычисления в цикле, с оригинальной библиотекой. _____ Программу легко переделать под java, Ром (Romanzes) пропробуй сделать логику.. |
Ответ: The Maze
Abcdef, а можешь дать скомпиленный lib_mathmp?
|
Ответ: The Maze
abcdef... Офигенно!!!
Примерно так я это и представлял... Реально круто. Теперь постараюсь в свободное время поработать с твоим движком. |
Ответ: The Maze
спасибо Рома.
Cliffe Snake - распакуй jar файлик и получишь компиленный class-файл. ___ p.s.: т.к. библиотека работает с типом integer, то необходимо внимательно проводить вычисления, т.е.: все константы и переменные integer-типа переводить в fixed-real через специализированную функцию fIntToReal. Числа с точкой лучше вводить через функцию fStrToReal. Все арифметические действия, кроме суммы и разности также проводить через функции библиотеки fixed-real |
Ответ: The Maze
Вложений: 1
Оптимизировал алгоритм 3D-текстурирования.
Проверил функции fixed-point library, немного оптимизировал, некоторые функции возвращают более точные значения, убрал некоторые ошибки стандартной библиотеки. Деление на ноль не вешает java-машину, а возвращает ноль. Переписал финкцию fStrToReal, теперь запись можно разделять пробелами напр: ' - 123 . 4567', ' + 98765 . 4321' |
Ответ: The Maze
Тестил пример на эмуле. Когда стенки находятся далеко от камеры, то довольно шустро, а когда близко, очень сильно тормозит, примерно 1fps, а то и 0.5. То есть когда тектура стены во весь экран и таким образом двигаешься, то очень медленно видимо рассчёт большой картинки происходит.Может попробовать картинку раза в четыре меньше взять? И её просто растягивать будет, не на столько чётко будет, но зато будет быстрее рассчитывать наклон в перспективе. Или я не прав?
|
Ответ: The Maze
тормозит из-за процедуры plot, чем больше рисовать тем больше plot. Уменьшение текстур не приведет к снижению четкости, просто точки станут больше. Писал программу под легкую переделку в java, если перенести скорость повысится на 50% и более
|
Ответ: The Maze
Вложений: 1
На Microemulator'е работает почти без тормозов. На sjboy и NHAL(MidpX) тормоза конкретные, особенно на первом.
Добавил в двиг радар, и ещё по мелочи. (см. ReadMe) |
Ответ: The Maze
молодец Cliffe Snake, движёк начинает быть похожим на игру.. я старательно избугаю внешних java-библиотек, чтобы показать реализацию программ более простыми (но не всегда эффективными) методами. Если продолжать проект в MIDletPascal, то нужно добавить drawRGB вместо plot(x,y), создать массив спрайтов примерно следующего вида:
Код:
TSprite = Record {Параметры спрайта} Логика отображения: после прохождения массива спрайтов мы расчитывает положение и размеры каждого из них, а затем при выводе на экран проверяем попадает ли он в угол зрения игрока, и при выводе каждой вертикальной его линии следим чтобы она была больше, т.е. ближе чем линия стены. |
Часовой пояс GMT +4, время: 12:46. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot