Я хотел бы иметь возможность имитировать терминал на моем iPhone, чтобы играть в такие игры, как Nethack, используя примитивную графику, которая мне нравилась на реальном терминале DEC.Nethack позволяет выбирать DECgraphics для vt-совместимых терминалов или IBMGraphics для поддержки кодовой страницы 437.
Я знаю, что эти специальные графические символы генерируются строками, посылаемыми на терминал (vt100.net содержит огромное количество информации, включая руководства для терминала и тестовые программы).Я могу получать и интерпретировать эти строки, но мне нужно иметь возможность воспроизводить и отображать эти символы в UIView.
Похоже, что kCFStringEncodingMacVT100 и kCFStringEncodingDOSLatinUS являются ключами к головоломке.Вот небольшой частичный код, показывающий, что я пытался сделать, чтобы получить символы «специальных символов» на UILabel:
UInt8 c = some value...
NSStringEncoding stringEncoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingMacVT100);
NSData *charData = [NSData dataWithBytes:&c length:1];
NSString *charString = [[NSString alloc] initWithData:charData encoding:stringEncoding];
label.font = [UIFont fontWithName:@"Courier New" size:20.f];
label.text = charString;
Я пробовал значения c от 0 до 255. Я могу отображать символы из пробела в '~ 'со всеми ожидаемыми вещами между использованием этого кода, но нет углов или других символов строки вообще.Когда нет символов для отображения, charString равен nil.
Теперь я почти уверен, что в TTF Courier New есть эти символы - на моем Mac я могу играть в Nethack с установленным в Courier New шрифтом терминала и могуустановите DECgraphics и дисплей в порядке.
Итак, вопросы:
- что не так с кодом выше?
- какие свободно доступные моноширинные шрифты TrueType поддерживаютспециальные символы DEC и / или кодовая страница 437?
- как можно проверить TTF, как только он у вас есть, чтобы убедиться, что эти глифы есть?
- как вы можете отобразить эти глифы в UILabel илипохожи?
(Я не хочу использовать какой-либо из доступных графических наборов плиток, они мне не нравятся. Я знаю, что уже есть как минимум два Nethacks, доступных бесплатно, но ни у одного нет простогоИнтерфейс клавиатуры Я хочу, я нахожу всплывающее окно для всего подхода очень медленным и разочаровывающим. Я знаю, что это не легкий проект. И я мог бы хотеть Angband одиндень.)