Навигация
Поддержать материально
Steam Greenlight

Логотипы
Медальки
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Темы форума
158 - Пошаговые игры
Вчера, 14:49
 Kaps
The Great tribes - […
5.12.2018
 Zemlaynin
ria pc game
24.11.2018
 megainformatic
Халявные игры (The H…
23.11.2018
 Mefistofel
Гейм дизайнер казуал…
21.11.2018
 Vlada
158 !
16.11.2018
 Mefistofel
3д художник локации…
15.11.2018
 Vlada
Гейм дизайнер
15.11.2018
 Vlada
157 - Snake II
9.11.2018
 Mefistofel
Free Fall :: Vulkan…
1.11.2018
 Dan
Сейчас на сайте
Гостей: 4
На сайте нет зарегистрированных пользователей

Пользователей: 1,702
новичок: ZosephbumSU
Обсуждение «Помогите! деже не знаю где спросить»
Страница 1 из 8 1 2 3 4 > >>
spokoiniy
Avatar пользователя

Опубликовано 28.09.2011 21:16 (7 лет назад)    #
скачал уроки nehe, точнее их вариант на дельфи, и получил вот это в виде коментариев:
// Struktura hvмzdy
// Vzdбlenost od stшedu, Ъhel natoиenн
// Privбtnн GDI Device Context
// Zabezpeиenн proti dмlenн nulou

пробовал декодить штирлицом, безрезультатно(
Turn by turn III:Не участвую.
ra1n
Avatar пользователя

Опубликовано 29.09.2011 05:15 (7 лет назад)    #
это польский или подобный или подобный язык
Turn by turn III:Не участвую.
spokoiniy
Avatar пользователя

Опубликовано 29.09.2011 07:52 (7 лет назад)    #
вообще это английский только с битой кодировкой, там буквы разные, а кое где даже символы посередине слова
Turn by turn III:Не участвую.
magician
Avatar пользователя

Опубликовано 29.09.2011 11:50 (7 лет назад)    #
Это чешский.

// Struktura hvězdy
// Vzdálenost od středu, Ъhel natočení
// Privátní GDI Device Context
// Zabezpečení proti dělení nulou

Не нагуглил только как заменить Ъ в слове Ъhel.

UPD: нашел Ъhel. Не сразу дошло, что там написано "угол" - úhel

редакция от magician, 29.09.2011 12:32

Turn by turn III:Не участвую.
spokoiniy
Avatar пользователя

Опубликовано 29.09.2011 12:33 (7 лет назад)    #
проблема в том что все комментарии такие во всех уроках, есть способ перевести весь текст?

редакция от spokoiniy, 29.09.2011 12:34

Turn by turn III:Не участвую.
magician
Avatar пользователя

Опубликовано 29.09.2011 13:11 (7 лет назад)    #
Способы конечно есть:
1.) Вручную во всех файлах автозаменой исправить символы;
2.) Написать скрипт, который сам поправит символы;
3.) Поискать уроки с правильными символами;
4.) Поискать софт для массовой замены символов.
Может кто-то предложит способы попроще :)
Из приведенного текста видно, что символы с "закарлючками" заменены русскими:
ě - м
á - б
ř - ш
ú - Ъ
č - и
í - н
Turn by turn III:Не участвую.
Doj
Avatar пользователя

Опубликовано 29.09.2011 15:40 (7 лет назад)    #
5.) Открыть текстовым редактором, который поддерживает различные кодировки, и выбрать кодировку cp1250. В крайнем случае, если нет такого текстового редактора, то можно в браузере открыть на чтение.

редакция от Doj, 29.09.2011 15:40

Turn by turn III:Не участвую.
spokoiniy
Avatar пользователя

Опубликовано 29.09.2011 16:24 (7 лет назад)    #
Спасибо вам за помощь, обычный блокнот заменять умеет, пробовал, как оказалось зря. нашел переведённые уроки на pmg.org.ru хоть и на СИ зато с коментами на руском

З.Ы. извините если напряг
Turn by turn III:Не участвую.
MysticCoder
Avatar пользователя

Опубликовано 05.09.2013 12:24 (5 лет назад)    #
Дабы не плодить темы, спрошу здесь...
Пишу простое опенгл приложение. По задумке, цепочка прямоугольников(стоят на земле как ящики) продвигается в левую сторону. При этом визуально все не очень хорошо. Возникает эффект лестницы на боковых краях прямоугольников. Дергается в общем, неприятно на глаз. Причем двойная буфферизация включена. Эффект наблюдается при перспективной проекции glFrustrum и при ортографической glOrtho. Что я делаю не так? Здесь код инициализации и отрисовки - http://pastebin.com/0RU8njMN

редакция от MysticCoder, 05.09.2013 12:25

Turn by turn III:Не участвую.
DRON
Avatar пользователя

Опубликовано 05.09.2013 13:15 (5 лет назад)    #
1) ты используешь похоже целые числа вместо дробных
2) похоже ты привязываешься к фпс а не ко времени delta time
Turn by turn III:Не участвую.
MysticCoder
Avatar пользователя

Опубликовано 05.09.2013 15:09 (5 лет назад)    #
DRON написал:
1) ты используешь похоже целые числа вместо дробных
2) похоже ты привязываешься к фпс а не ко времени delta time


Сами прямоугольники неподвижные, движется камера относительно них, координаты у нее дробные, каждую итерацию прибавляется скорость*дельта-тайм. dt:single = 1/Updates per second;

про второе не понял... у меня 50 раз в секунду вызывается функция обновления, все остальное время - отрисовка.

Bloov написал:

Если я правильно понял, то это обычный алиасинг, тебе поможет антиалиасинг. Ты всё делал правильно скорее всего, просто это особенность отрисовки)

Антиалиасинг как то сложно.... Эффект лестницы конечно не шибко большой, но мелькание видно, думаю если текстуру наложить будет не так заметно, а может это у меня видюха глючит :D Хотя другие в других приложениях такого не замечал...

редакция от MysticCoder, 05.09.2013 15:13

Turn by turn III:Не участвую.
DRON
Avatar пользователя

Опубликовано 05.09.2013 21:20 (5 лет назад)    #
Я к сожалению не имею возможности скомпилить твой проект чтобы точно сказать в чем дело. Видимо мои предположения были мимо.
Turn by turn III:Не участвую.
FedeX
Avatar пользователя

Опубликовано 06.09.2013 08:45 (5 лет назад)    #
Может VSYNC (вертикальная синхронизация) ? Попробуй если у тебя есть в настройках видеокарты отключить/включить его глобально и при этом запускать свое приложение.
Turn by turn III:Не участвую.
MysticCoder
Avatar пользователя

Опубликовано 08.10.2013 09:55 (5 лет назад)    #
Возникла проблемка с кодировкой... Хочу отрисовывать шрифты... Готовлю текстуру с символами шрифтов... Соответственно объявил строковую константу с используемыми символами(английские, русские), и пытаюсь её вывести в канву битмапа. Проблема в том, что английские символы выводятся нормально, а вместо русских фигня какая то. До этого с юникодом и widestring не работал, поэтому не могу сам разобраться как правильно делать. Использую Lazarus, кодировка исходников в UTF-8, системная кодировка UTF-8.
Код:
var
MagicString:AnsiString = 'ЙЦУКЕН!!=.,":;[]\/-= ()*&?^%$#@QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnmЙЦУКЕНГШЩЗХЪФЫВАПРО
ЛДЖЭЯЧСМИТЬБЮЁйцукенгшщзхъфывапролджэячсмитьбю';
implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
var
bmp : TBitmap;
i,j : integer;
begin
bmp := TBitmap.Create;
bmp.PixelFormat := pf32bit;
bmp.Width := 512;
bmp.Height:= 512;
bmp.Canvas.Font.Name:='Ubuntu Mono';

for i:=0 to 16-1 do
for j:=0 to 16-1 do
if i*16+j<=Length(MagicString) then
if I*16+j>0 then
begin
bmp.Canvas.TextOut(i*32,j*32,MagicString[i*16+j]);
end;
bmp.SaveToFile('font.bmp');
bmp.Free;
Image1.Picture.LoadFromFile('font.bmp');
end;

Понятно, что в UTF-8 используются 2 символа и более, при выводе 2х символов подряд русские буквы нормально рисуются, но это как то неудобно. Пробовал использовать WideString и WideChar, но ничего хорошего из этого не выходит. Подскажите, как правильно работать с юникодом?=)
Turn by turn III:Не участвую.
Darthman
Древний организм
Avatar пользователя

Опубликовано 08.10.2013 10:51 (5 лет назад)    #
Для начала разобраться как работает bmp.Canvas.TextOut.
Узнать какие строки твоя система использует как нативные (не знаю как в лазарусе, в делфях для этого достаточно не типизировать в большинстве случаев явно. Писать просто String, а не Widestring или Ansistring. Особенно если ты не знаешь зачем).
Кодировка исходников роли не играет. Если в ней есть спецсимволы, она уже по любому будет в юникоде.
Если это windows, то есть методы вроде TextOutW, TextOutA, которые работают с wide и ansi соотвественно. В противном случае нужен просто string.
Turn by turn III:Не участвую.
FedeX
Avatar пользователя

Опубликовано 08.10.2013 11:53 (5 лет назад)    #
Давно не писал в лазарусе, но насколько помню там string (и вроде даже AnsiString) по умолчанию использует кодировку utf8. В ней символы могут задаваться одно, двух и более байтовыми последовательностями. Тоесть обращаться к строке как к однородному массиву символов некорректно. WideString насколько помню не очень хорошо поддерживается библиотекой LCL так что лучше все-таки использовать string(utf8). Функции для получения размера символов в таких строках и прочих данных лежат в модуле lazutf8. Вот тут глянь как ими пользоваться: http://wiki.freepascal.org/LCL_Unicode_Support/ru
Turn by turn III:Не участвую.
MysticCoder
Avatar пользователя

Опубликовано 08.10.2013 12:01 (5 лет назад)    #
Разобрался.... Объявил константу как AnsiString, потом строке WideString присвоил Utf8ToAnsi(MagicString), после этого нормально по индексам этого WideString'а можно обращаться и рисует их правильно. Непонятно только почему если объявить строку как WideString и присвоить ей MagicString := Utf8ToAnsi(MagicString) отображает левые символы.
Turn by turn III:Не участвую.
Darthman
Древний организм
Avatar пользователя

Опубликовано 08.10.2013 12:20 (5 лет назад)    #
Ну вот опять приехали. AnsiString это массив AnsiChar. AnsiChar это 1 байт. Никакого юникода там нет. Соотвестенно utf8 <> AnsiString

CoderInTank:
ты очевидно имел ввиду AnsiToUtf8?
Иначе ты пишешь откровенный бред. Берем НЕЮНИКОД строку, трансформируем ее из ЮНИКОДА в НЕюникод и присваиваем в переменную типа ЮНИКОД. Тебя ничего не смущает в твоем описании? :)

Объяви переменную просто String и выкинь ты уже из кода эти Ansi и Wide.
Turn by turn III:Не участвую.
MysticCoder
Avatar пользователя

Опубликовано 08.10.2013 13:21 (5 лет назад)    #
Нет, я имел ввиду именно Utf8ToAnsi. Я понимаю что AnsiString это не значит юникод, AnsiString это всего лишь способ хранения, в данном случае в виде массива байтов. Юникод же можно хранить и в AnsiString.
У меня в сорцах кодировка Utf-8, поэтому получается берем ЮНИКОД строку и трасформируем её из ЮНИКОДа в ANSI(которая определяется как текущая системная кодировка, в моем случае UTF-8), и присваиваем её переменной которая у которой по 2 байта на символ. Т.е. если до конвертации символы шли подряд все, то после конвертации они выровнялись по 2 байта(насколько я понял).
Utf8ToAnsi converts an utf8-encode unicode string to an ansistring. It converts the string to a widestring and then converts the widestring to an ansistring.

Вот.... вроде все правильно. По крайней мере работает. Или я опять что то упустил?
Turn by turn III:Не участвую.
Darthman
Древний организм
Avatar пользователя

Опубликовано 08.10.2013 13:53 (5 лет назад)    #
Как все сложно у вас в этом фрипаскале... жуть :)
Turn by turn III:Не участвую.
Страница 1 из 8 1 2 3 4 > >>
Перейти на форум:
Конкурсы
Открытые конкурсы:
Turn by turn III
Подведение результатов...

Старт: 17 ноября 2018г.
Финиш: 10 декабря 2018г.

Участники: 3
Недавние конкурсы:
 157 - Snake II
 156 - Race IV
 155 - Text Quest
 154 - Point & Click
 153 - Collab Contest
 Все конкурсы
Случайная игра
Мини-чат
Вам необходимо залогиниться.

Архив чата

13,931,454 уникальных посетителей

Создано на базе русской версии PHP-Fusion copyright © 2003-2006 by Nick Jones.
Released as free software under the terms of the GNU/GPL license.