CAST II Game Engine Community

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Как использовать TScreen/TC2Screen  (Read 256 times)

0 Members and 1 Guest are viewing this topic.

admin

  • Administrator
  • Full Member
  • *****
  • Posts: 172
    • CAST II Engine
Re: Как использовать TScreen/TC2Screen
« Reply #2 on: March 08, 2010, 09:37:30 AM »

Чтобы выводить примитивы посредством C2Screen надо:
1. Прописать в uses модуль C22D - переменная Screen нужного класса будет автоматически создана
2. Указать ядро движка:
Code: [Select]
TC2Screen(Screen).SetCore(Core);
Собственно, все. Можно рисовать, только сперва Screen.Clear() нужно вызывать. Желательно, каждый кадр.
Screen только отрисовывает на экране, но не гарантирует, что отрисованное останется там навсегда. Т.е. в общем случае, надо пересовывать каждый кадр, т.к. при очистке экрана все стирается.

Вот типичный пример того, что должно быть в цикле:
Code: [Select]
  Screen.Clear;
  Screen.Color.C := $40000080;
  Screen.Bar(100, 100, 200, 200);
  Screen.Color.C := $FFFF0000;
  Screen.Bar(300, 300, 400, 500);

В деме Water есть процедура DrawPerfHUD, где используется Screen.
Техника для примитивов создается автоматически.

С текстом сложнее. Пока что технику для текста и шрифт надо создавать вручную, либо извлекать из сцены.
« Last Edit: March 08, 2010, 09:41:07 AM by admin »
Logged

Luarvic

  • Newbie
  • *
  • Posts: 32
Как использовать TScreen/TC2Screen
« Reply #1 on: March 08, 2010, 02:59:35 AM »

Мне надо вывести на экран текст и двухмерные примитивы, вот что я делаю:
  mScreen:=TC2Screen.Create;
  mScreen.SetCore(core);
  tech:=core.Root.GetChildByname('landt',true) as TTechnique;
  mScreen.SetTechnique(pkText,tech);
  mscreen.SetTechnique(pkSolid,tec);
  mScreen.PutTextXY(150,150,'test text');
  mScreen.bar(1,1,100,100);
Ну и ничего не происходит.
Вопрос что я делаю нетак?
Logged
 

+ Quick Reply

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.

Name: Email:
Verification:
Please enter the number: 222: