Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт мар 05, 2024 15:44

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 36 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Чт дек 08, 2022 09:28 
Не в сети

Зарегистрирован: Сб ноя 20, 2021 06:51
Сообщения: 41
Откуда: Южный Урал
Благодарил (а): 1 раз.
Поблагодарили: 2 раз.
Быть может, глупый вопрос, но он терзает меня довольно долго. Так и задумано, чтобы спрайт при движении оставлял за собою цветной след? В документации к Ирбису вроде ничего подобного о спрайтах не нет, или это я не вижу такового?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Чт дек 08, 2022 13:50 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
В том смысле, что он не стирает за собой? В принципе так и задумано, точнее - не задумано отдельного скрытого управления спрайтами. Если он двигается - сначала надо стереть. А если визуально шлейф, то это скорее всего эффект от встроенных в Lazarus графических библиотек. У них никакого ускорения нет.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Чт дек 08, 2022 16:19 
Не в сети

Зарегистрирован: Сб ноя 20, 2021 06:51
Сообщения: 41
Откуда: Южный Урал
Благодарил (а): 1 раз.
Поблагодарили: 2 раз.
В том смысле, что когда спрайт двигается, то он закрашивает свой путь таким цветом, каким у него края. Если я правильно понял Вас, необходимо через каждый "шаг" спрайта нужно очищать его прошлое местоположение? Тогда уж, как по мне, лучше просто картинке координаты менять. А, быть может, я неправильно Вас понял...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Чт дек 08, 2022 23:22 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Код:
   cmdSPRITE_DRAW : begin // sprite, x, y --
                      FImage[SpriteImage].Canvas.Draw(Dstack[Depth - 2], Dstack[Depth - 1], FSprite[Dstack[Depth - 3]].Picture.Graphic);
                      Dec(Depth, 3);
                    end;


Собственно, вот. Там никакого специального управления спрайтами сейчас нет, это просто заготовка с картинками внутри.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Сб дек 10, 2022 07:21 
Не в сети

Зарегистрирован: Сб ноя 20, 2021 06:51
Сообщения: 41
Откуда: Южный Урал
Благодарил (а): 1 раз.
Поблагодарили: 2 раз.
Тогда это, как по мне, уже не полноценный спрайт.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Сб дек 10, 2022 12:23 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Это не вполне спрайты, это сейчас "картинка на картинке".


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Сб дек 10, 2022 15:09 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 460
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 22 раз.
pk-fr-76-2 писал(а):
спрайты
А, кстати, зачем, если не секрет? Какая-то игра планируется? :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Сб дек 10, 2022 15:51 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Игры вполне можно на таком движке делать. Он в 2D-графике совсем не быстрый, но на уровне статического фона и десятка спрайтов вполне можно что-то развлекательное соорудить.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Сб дек 10, 2022 17:02 
Не в сети

Зарегистрирован: Сб ноя 20, 2021 06:51
Сообщения: 41
Откуда: Южный Урал
Благодарил (а): 1 раз.
Поблагодарили: 2 раз.
Как я понял из документации, есть только три слова, используемых для работы со спрайтами: SPRITE.LOAD, SPRITE.DRAW, SPRITE.IMAGE. А нет ли какого-нибудь слова, чтобы стереть или просто "спрятать" спрайт? Только лишь перезаписать спрайт с белым фоном в уже существующий индекс, что ли, хотя, наверное, так нельзя.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Сб дек 10, 2022 17:10 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Тогда надо делать много вспомогательных вещей. Для начала придется запоминать картинку, которая была под спрайтом. Потом могут возникать ситуации, когда один спрайт закрыт вторым, а надо спрятать первый. Тогда, пряча второй спрайт, придется восстанавливать исходный фон, а не то, что было запомнено. Сейчас можно просто оперировать виджетами, накладывая одну картинку на другую, они там сами справятся. "Спрайт" сейчас - это просто копирование пикселов.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Сб дек 10, 2022 19:03 
Не в сети

Зарегистрирован: Сб ноя 20, 2021 06:51
Сообщения: 41
Откуда: Южный Урал
Благодарил (а): 1 раз.
Поблагодарили: 2 раз.
Hishnik писал(а):
они там сами справятся

Я, наверное, чего-то недопонимаю, но как они сами-то справятся, если спрайты сейчас реализованы, как копирование пикселов?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Сб дек 10, 2022 19:36 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Если иметь возможность считывания произвольной области памяти уже выведенной картинки, то пеpемещаяя свой спрайт, до момента вывода его на новое место можно восстановить область предварительно считанной ранее области, куда он выводился ранее.

А, если нет, то придётся хранить образ в памяти уже выведенного изображения и возможно с историей "поведения" спрайтов на ней. :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Сб дек 10, 2022 20:32 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 460
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 22 раз.
Тут зависит от ситуации. Где-то быстрее и проще будет вариант с выводом на каждом кадре в буфер сначала фона, а затем спрайтов поверх него. Ну а потом отрисовка этого буфера. Так называемый дублирующий буфер. Кроме того, на каждом кадре можно обновлять не весь буфер, а только ту часть экрана, которая меняется, т.к. мы знаем, откуда спрайты уходят и куда должны попасть.


Последний раз редактировалось Total Vacuum Сб дек 10, 2022 21:30, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Сб дек 10, 2022 21:30 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Со спрайтами надо, конечно, отдельно работать. Но если просто рисовать заново, получается довольно быстро.


Вложения:
irbis_sprite.png
irbis_sprite.png [ 29.9 Кб | Просмотров: 2719 ]
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Irbis Forth
СообщениеДобавлено: Пн янв 30, 2023 21:18 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Придумалось слово ->.
Работает так:
x -> y - пересылает ячейку с адреса x в ячейку с адресом y. То же, что x @ y !


Вложения:
irbis_assign.png
irbis_assign.png [ 6.33 Кб | Просмотров: 2173 ]
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 36 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB