вторник, 16 марта 2010 г.

GUI next Update - Fonts

самое главное исправил все глюки с отображением текста ! вобще пол системы GUIText переписал ) зато теперь текст рисуется мего четко и как надо ))) итак онотолле пришло время сказать что я доволен шрифтами !
итак начнемс
создаем текстуру заданного размера ( 0-8192*8192)
далее создаем шрифты ( но всегда есть базовый шрифт он создается автоматически ) например так
[gui createFont:"../Fonts/tahoma.ttf" fontSize:8 fontName:@"tahomaCur"];
[gui createFont:"../tahoma.ttf" fontSize:11 fontName:@"tahoma1Cur"];
[gui createFont:"../tahoma.ttf" fontSize:14 fontName:@"tahoma2Cur"];
[gui createFont:"../tahoma.ttf" fontSize:16 fontName:@"tahoma3Cur"];
[gui createFont:"../tahoma.ttf" fontSize:20 fontName:@"tahoma4Cur"];
[gui createFont:"../tahoma.ttf" fontSize:10 fontName:@"tahoma5Cur"];
[gui createFont:"../tahoma.ttf" fontSize:12 fontName:@"tahoma6Cur"];
[gui createFont:"../tahoma.ttf" fontSize:24 fontName:@"tahoma7Cur"];
[gui createFont:"../tahoma.ttf" fontSize:16 fontName:@"tahoma8Cur"];
[gui createFont:"../tahoma.ttf" fontSize:40 fontName:@"tahoma9Cur"];
[gui createFont:"../tahoma.ttf" fontSize:12 fontName:@"tahoma0Cur"];
и получим вот такую текстурку шрифта


нажми для увеличения
как видно из скрина, шрифты ложатся ровно и не важно в какой последовательности добавлены, всегда складываются экономя место в текстуре !

ну а теперь можно спокойно создать текстовое поле с любым шрифтом например так
Text*stringTest = [[Text alloc] init];
stringTest.width = 300;
stringTest.height = 50;
stringTest.x = 10;
stringTest.fontName = @"tahoma7Cur";
stringTest.color = 0xffffff;
stringTest.text = @"iArt Онотолле в аттаке ррр 1адин";
[settingOverlay addChild:stringTest];
и увидим

едем дальше подписываем на клик от мыши данное текстовое поле
[stringTest addEventListener:Event.MouseClick method:getMethod(self,@"changeFont:")];
и
-(void)changeFont:(MouseEvent)event
{
Text*target = event.target;

if (funText) {
target.color = 0x00ff00;
target.fontName = @"tahoma9Cur";
target.width = 900;
}else
{
target.color = 0xf0ff0f;
target.fontName = @"baseFont";
target.width = 300;
}
target.x+=50;
funText=!funText;
}
теперь при клике на него мы будем менять цвет/размер/шрифт
например при первом клике увидим

а при следующем клике

нажми для увеличения
ну и напоследок шрифтик из аватара



2014
а вот что то будет полезно и сейчас )

1 комментарий: