Показаны сообщения с ярлыком дополнения. Показать все сообщения
Показаны сообщения с ярлыком дополнения. Показать все сообщения

Индексный доступ к элементам строки для записи

Стандартно Blitzmax не позволяет записывать в строку, используя индексный доступ. Но с помощью небольшого трюка это можно забороть.
Вот исходник, показывающий подробно, как это делается:
Local str$ = "Hello"
Print str

Local
p:IntPtr = IntPtr(Varptr(str))
Local
pchar:ShortPtr = ShortPtr(p[0])
pchar :+ 6
'this offset depends on String structure

pchar[0]=
Asc("H")
pchar[1]=
Asc("e")
pchar[2]=
Asc(" ")
pchar[3]=
Asc("h")
pchar[4]=
Asc("e")

Print str
Или вот так в одну строку можно получить указатель на первый символ:
Local pchar:Short Ptr = Short Ptr(Int Ptr(Varptr(str))[0]) + 6
Как видно из примера, мы просто получаем указатель на первый элемент строки во внутренней структуре строкового типа языка.
Ссылка на статью с другими советами: http://blitzmax.3dn.ru/publ/3-1-0-8

Обновления

Добавлен еще один совет.
Исправлены кое-какие неприятности Blitzmax с библиотеками. А именно: удален бывший п.2.14 - Нет команд для временной передачи лишнего времени системе. Такие команды есть (о отсутсвие вменяемой документации)! Найдены были широко известным и необычайно успешным (правда зачастую и опасным) методом "научного тыка". Подробности в той-же статье.

Реальный счетчик ФПС

Трудные времена выдались нынче. Времени почти нет. Но я выкроил его для блогомарания и выложил код реального счетчика ФПС. Это был мужественный поступок, надеюсь это оценят, так как я вообще-то собирался отмазаться просто еще одним советом.

Новости 25-06-2006

Я таки решил не откладывать переход к сайту и сегодня попытался поработать с юкозом. Кое-что получилось. Правда с утра все жутко тормозило. Сначала админка, потом сам сайт. Так что пол дня я просто тупо провтыкал, наблюдая разные ошибки 505 и прочие и ожидая сообщений сервера. Правда после обеда вроде все наладилось. И я передумал забить на него сразу. Я добавил первую статью про главный игровой цикл, как обещал в предыдущем посте. Подправил недостатки в связи с комментом к предыдущему посту.
Теперь про новый сайт. Адрес: http://blitzmax.3dn.ru
Я сделал опрос, чтобы не занимать много вашего времени. Просто проголосуйте насколько хорошо работает юкоз. Если все нормально, то я продолжу на нем. Поскольку там возможностей и удобностей больше. От рейтинга и пользовательских аккаутнов, до новостей, файлов и форума. Если нет - буду продолжать здесь. Но, наверное, изменю формат постов или еще как-то извернусь. Я заметил, некоторые добавили блог в РСС, на юкозе не спешите - я подумаю как это лучше организовать. Скорее через ленту новостей - я постараюсь в ней отражать все изменения. Поскольку там несколько лент для каждой категории. Если есть еще какие пожелания - прошу высказываться. Также если не сильно лень - прошу зарегистрироваться на сайте, посмотреть возможности и отписаться с комментами и пожеланиями.
зы: если с юкозом все будет норм, то в течении недели я туда перенесу материалы.
ззы: тут пара людей спрашивала насчет партиклов. Я несколько морозился, сейчас скажу поточнее: старая система сильно интегрирована в двиг, вырезать ее оттуда нет ни времени, ни желания. Новая еще в стадии проектирования. Когда я ее допишу до приемлимого вида, то скажу как ее можно получить.

Изменения и дополнения

Добавил по пункту в приятное/неприятное. Все про звук. Из приятного, то что, звук 3Д. Из неприятного, то что нет простой команды для проигрывания звука в цикле.
Сейчас вожусь с главным игровым циклом - экспериментирую с использованием особенностей языка. Как закончу - выложу.
Еще есть такая мысль - может перенести блог на юкоз - там просто можно новости отдельно делать. А то это и постом то называть стыдно. И тормознуто сильно блоггер работает. - Как нибудь попоробую, потом сделаю или зеркало или перенесу совсем, если на юкозе понравится.