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

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

Пароль



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

Забыли пароль?
Запросите новый здесь.
Темы форума
187 - ?
30.10.2024
 Mefistofel
Galactic Showdown -…
21.10.2024
 KregHek
Новый IGDC
5.08.2024
 rimush
186 - Strategy!
15.07.2024
 VoroneTZ
WoL
3.07.2024
 Darthman
Привет выжившие
21.05.2024
 GeePee
185 - RPG
9.02.2024
 Vaskrol
В каком банке открыт…
24.01.2024
 Darthman
185 - ?
30.12.2023
 Mefistofel
TESTAMENT - Тактичес…
15.11.2023
 KregHek
Сейчас на сайте
Гостей: 47
На сайте нет зарегистрированных пользователей

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

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

пробовал декодить штирлицом, безрезультатно(
ra1n
Avatar пользователя

Опубликовано 29.09.2011 05:15 (13 лет назад)    #
это польский или подобный или подобный язык
spokoiniy
Avatar пользователя

Опубликовано 29.09.2011 07:52 (13 лет назад)    #
вообще это английский только с битой кодировкой, там буквы разные, а кое где даже символы посередине слова
magician
Avatar пользователя

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

// 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

spokoiniy
Avatar пользователя

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

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

magician
Avatar пользователя

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

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

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

spokoiniy
Avatar пользователя

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

З.Ы. извините если напряг
MysticCoder
Avatar пользователя

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

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

DRON
Avatar пользователя

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

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


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

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

Bloov написал:

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

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

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

DRON
Avatar пользователя

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

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

Опубликовано 08.10.2013 09:55 (11 лет назад)    #
Возникла проблемка с кодировкой... Хочу отрисовывать шрифты... Готовлю текстуру с символами шрифтов... Соответственно объявил строковую константу с используемыми символами(английские, русские), и пытаюсь её вывести в канву битмапа. Проблема в том, что английские символы выводятся нормально, а вместо русских фигня какая то. До этого с юникодом и 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, но ничего хорошего из этого не выходит. Подскажите, как правильно работать с юникодом?=)
Darthman
Древний организм
Avatar пользователя

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

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

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

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

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

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

Опубликовано 08.10.2013 13:21 (11 лет назад)    #
Нет, я имел ввиду именно 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.

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

Опубликовано 08.10.2013 13:53 (11 лет назад)    #
Как все сложно у вас в этом фрипаскале... жуть :)
Страница 1 из 8 1 2 3 4 > >>
Перейти на форум:
Конкурсы
Открытые конкурсы:
Активных нет
Недавние конкурсы:
 186 - Strategy
 185 - RPG XII
 184 - Arcade II
 183 - Novel
 182 - RPG XI
 Все конкурсы
Случайная игра
Мини-чат
Вам необходимо залогиниться.

Архив чата

26,158,500 уникальных посетителей

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