Author Topic: Движущийся текст (по вертикали): титры и т.д.  (Read 763 times)

0 Members and 1 Guest are viewing this topic.

Offline Alec - WS3D Developer

  • Producer
  • Administrator
  • Marquess
  • *
  • Posts: 911
  • Reputation 36
  • Game making is my hobby for life!
Как сделать движущийся текст, типа титров и т.д.?
В этом примере текст плавно двигается по вертикали (по оси Y), как титры в фильмах или играх.
Это достигается за счёт изменения верхней координаты поля текста по оси Y.
Упрощённый пример смотрите здесь.

Украшайте ваши игры титрами и прочими подобными штучками!

Code: [Select]
'' ----------------------------------------------------------------------------
'' Пример сделал Alec (WorldSim3D developer)
'' ----------------------------------------------------------------------------
'' Пример: Движущийся текст (титры и т.д.)
'' Текст двигается снизу вверх за счёт изменения координат поля текста по оси Y
'' ----------------------------------------------------------------------------

'' Includes for extension libraries
#Include "WorldSim3D.bi"

'' global variables
' переменные для каждого из 6 титров
' a - координата верхнего поля текста, b координата нижнего поля текста
Dim As Integer a = 580, b = 595
Dim As Integer a2 = 620, b2 = 635
Dim As Integer a3 = 660, b3 = 675
Dim As Integer a4 = 700, b4 = 715
Dim As Integer a5 = 740, b5 = 755
Dim As Integer a6 = 780, b6 = 795

' WorldSim3D objects

Dim BitmapFont as wFont

' -----------------------------------------------------------------------------
' start the WorldSim3D interface
wStart( wDT_OPENGL, 800, 600, wBITS_PER_PIXEL_32,_
          wWINDOWED, wNO_SHADOWS, wCAPTURE_EVENTS,_
          wVERTICAL_SYNC_ON )
wSetWindowCaption( "Example: Credit titles" )

BitmapFont = wGetFont ( "../media/Fonts/2.png" )

' -----------------------------------------------------------------------------
' while the WorldSim3D environment is still running
WHILE wRunning
    ' begin the scene, erasing the canvas with grey before rendering
    wBeginScene( 15,25,15 )
   
    ' отрисовка текста титров
    w2DFontDraw ( BitmapFont, "Senior Producer: Alexander Petrov", 200, a, 400, b )
    w2DFontDraw ( BitmapFont, "Game Designer: Vasiliy Ivanov", 200, a2, 400, b2 )
    w2DFontDraw ( BitmapFont, "Level Designer: Gennadiy Bykov", 200, a3, 400, b3 )
    w2DFontDraw ( BitmapFont, "3D Artist: Elena Zaitseva", 200, a4, 400, b4 )
    w2DFontDraw ( BitmapFont, "Senior Programmer: Vladislav Okunev", 200, a5, 400, b5 )
    w2DFontDraw ( BitmapFont, "Gameplay Engineer: Boris Galkin", 200, a6, 400, b6 )
   
    ' с каждым кадром меняется положение титров по оси Y
    ' чтобы титры двигались быстрее, вместо значения 1 ставьте 2, 3 и т.д.
    ' достаточно двигать верх текстового поля (значение a)
    a = a - 1
    a2 = a2 - 1
    a3 = a3 - 1
    a4 = a4 - 1
    a5 = a5 - 1
    a6 = a6 - 1
   
    ' когда титры выходят за рамки верха экрана, установить их первоначальное положение
    If a < -200 then a = 580: If b < -185 then b = 595
    If a2 < -160 then a2 = 620: If b2 < -145 then b2 = 635
    If a3 < -120 then a3 = 660: If b3 < -105 then b3 = 675
    If a4 < -80 then a4 = 700: If b4 < -65 then b4 = 715
    If a5 < -40 then a5 = 740: If b5 < -25 then b5 = 755
    If a6 < 0 then a6 = 780: If b6 < 15 then b6 = 795

    wEndScene
    ' чтобы титры двигались медленнее, в функции wSetFPS поставьте в скобках значение меньше 60,
    ' например, wSetFPS (20)
    wSetFPS
    wCloseESC()
Wend

' -----------------------------------------------------------------------------
' Stop the WorldSim3D engine and release resources
wStop
« Last Edit: November 30, 2014, 04:43:19 PM by Alec - WS3D Developer »
WorldSim3D = 3D + FreeBasic. Программируй в удовольствие, а не "в тягость"! Make your project with pleasure, not with strain!

Offline Alec - WS3D Developer

  • Producer
  • Administrator
  • Marquess
  • *
  • Posts: 911
  • Reputation 36
  • Game making is my hobby for life!
Кстати, код этого примера можно было сделать, конечо и компактнее, используя циклы и массивы, но я сделал просто, чтобы было понятно начинающим, даже тем, кто только начал осваивать Фрибейсик.
WorldSim3D = 3D + FreeBasic. Программируй в удовольствие, а не "в тягость"! Make your project with pleasure, not with strain!