Browse Source

Update demo07.lpr

Seenkao 3 years ago
parent
commit
e8e830709b
1 changed files with 35 additions and 15 deletions
  1. 35 15
      Zengl_SRC/demos/Android/07 - Sprites/jni/demo07.lpr

+ 35 - 15
Zengl_SRC/demos/Android/07 - Sprites/jni/demo07.lpr

@@ -1,6 +1,7 @@
 library demo07;
 
 {$I zglCustomConfig.cfg}
+{$I zgl_config.cfg}
 uses
   zgl_application,
   zgl_file,
@@ -19,6 +20,7 @@ uses
   zgl_text,
   zgl_types,
   zgl_log,
+  gegl_color,
   zgl_utils
   ;
 type
@@ -30,7 +32,7 @@ end;
 
 var
   dirRes      : UTF8String = 'assets/';
-  fntMain     : Byte;
+  fntMain     : LongWord;
   texLogo     : zglPTexture;
   texBack     : zglPTexture;
   texGround   : zglPTexture;
@@ -40,7 +42,10 @@ var
   time        : Integer;
   camMain     : zglTCamera2D;
 
-  TimeStart: Byte;
+  newColor    : LongWord;
+  correctColor: LongWord;
+
+  TimeStart: LongWord = 0;
 
 procedure Init;
   var
@@ -100,7 +105,13 @@ begin
 
   file_CloseArchive();
 
-  setTextScale(20, fntMain);
+  setFontTextScale(20, fntMain);
+  // Rus: задаём новый цвет. Это чёрный и немного прозрачный.
+  // Eng: set a new color. It is black and slightly transparent.
+  newColor := Color_FindOrAdd(200);
+  // Rus: задаём новый цвет без проверки на существование. Это чёрный не прозрачный.
+  // Eng: we set a new color, without checking for existence. It's black and not transparent.
+  correctColor := Color_UAdd(255);
 end;
 
 procedure Draw;
@@ -136,8 +147,8 @@ begin
             // RU: Рисуем надпись в "рамочке" над пингвином.
             // EN: Render the text in frame over penguins.
             t := text_GetWidth( fntMain, 'I''m so red...' ) * 0.75;
-            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - ScaleF + 4, t, ScaleF, $000000, 200, PR2D_FILL );
-            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - ScaleF + 3, t + 2, ScaleF + 2, $FFFFFF );
+            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - ScaleF + 4, t, ScaleF, {$IfDef OLD_METHODS}$000000, 200,{$Else}newColor,{$EndIf} PR2D_FILL );
+            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - ScaleF + 3, t + 2, ScaleF + 2, {$IfDef OLD_METHODS}$FFFFFF,{$Else}cl_White{$EndIf});
             text_DrawEx( fntMain, tux[ i ].Pos.X, tux[ i ].Pos.Y - ScaleF + 5, 1, 0, 'I''m so red...' );
             // RU: Рисуем красного пингвина используя fx2d-функцию и флаг FX_COLOR.
             // EN: Render red penguin using fx2d-function and flag FX_COLOR.
@@ -147,9 +158,9 @@ begin
             if i = 7 Then
               begin
                 t := text_GetWidth( fntMain, '???' )+ 4;
-                pr2d_Rect( tux[ i ].Pos.X + 32 - t / 2, tux[ i ].Pos.Y - ScaleF + 4, t, ScaleF, $000000, 200, PR2D_FILL );
-                pr2d_Rect( tux[ i ].Pos.X + 32 - t / 2 - 1, tux[ i ].Pos.Y - ScaleF + 3, t + 2, ScaleF + 2, $FFFFFF );
-                text_DrawEx( fntMain, tux[ i ].Pos.X + 32, tux[ i ].Pos.Y - ScaleF + 5, 1, 0, '???', 255, $FFFFFF, TEXT_HALIGN_CENTER );
+                pr2d_Rect( tux[ i ].Pos.X + 32 - t / 2, tux[ i ].Pos.Y - ScaleF + 4, t, ScaleF, {$IfDef OLD_METHODS}$000000, 200,{$Else}newColor,{$EndIf} PR2D_FILL );
+                pr2d_Rect( tux[ i ].Pos.X + 32 - t / 2 - 1, tux[ i ].Pos.Y - ScaleF + 3, t + 2, ScaleF + 2, {$IfDef OLD_METHODS}$FFFFFF,{$Else}cl_White{$EndIf});
+                text_DrawEx( fntMain, tux[ i ].Pos.X + 32, tux[ i ].Pos.Y - ScaleF + 5, 1, 0, '???', {$IfDef OLD_METHODS}255, $FFFFFF,{$Else}cl_White,{$EndIf} TEXT_HALIGN_CENTER );
                 // RU: Рисуем пингвина приведение используя флаг FX_COLOR установив режим в FX_COLOR_SET :)
                 // EN: Render penguin ghost using flag FX_COLOR and mode FX_COLOR_SET :)
                 fx_SetColorMode( FX_COLOR_SET );
@@ -167,8 +178,8 @@ begin
         if i = 13 Then
           begin
             t := text_GetWidth( fntMain, 'I''m so big...' ) * 0.75;
-            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - ScaleF - 10, t, ScaleF, $000000, 200, PR2D_FILL );
-            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - ScaleF - 11, t + 2, ScaleF + 2, $FFFFFF );
+            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - ScaleF - 10, t, ScaleF, {$IfDef OLD_METHODS}$000000, 200,{$Else}newColor,{$EndIf} PR2D_FILL );
+            pr2d_Rect( tux[ i ].Pos.X - 2, tux[ i ].Pos.Y - ScaleF - 11, t + 2, ScaleF + 2, {$IfDef OLD_METHODS}$FFFFFF,{$Else}cl_White{$EndIf});
             text_DrawEx( fntMain, tux[ i ].Pos.X, tux[ i ].Pos.Y - ScaleF - 9, 1, 0, 'I''m so big...' );
             // RU: Рисуем "большего" пингвина. Т.к. FX2D_SCALE увеличивает спрайт относительно центра, то пингвина следует немного "поднять".
             // EN: Render "big" penguin. It must be shifted up, because FX2D_SCALE scale sprite relative to the center.
@@ -195,9 +206,9 @@ begin
       asprite2d_Draw( texGround, 13 * 32, 300 - 16, 32, 32, 0, 3 );
 
       t := text_GetWidth( fntMain, 'o_O' ) * 0.75;
-      pr2d_Rect( tux[ 20 ].Pos.X + 32 - t / 2, tux[ 20 ].Pos.Y - ScaleF + 3, t + 2, ScaleF + 2, $000000, 200, PR2D_FILL );
-      pr2d_Rect( tux[ 20 ].Pos.X + 32 - t / 2, tux[ 20 ].Pos.Y - ScaleF + 2, t + 4, ScaleF + 4, $FFFFFF );
-      text_DrawEx( fntMain, tux[ 20 ].Pos.X + 32, tux[ 20 ].Pos.Y - ScaleF + 5, 1, 0, 'o_O', 255, $FFFFFF, TEXT_HALIGN_CENTER );
+      pr2d_Rect( tux[ 20 ].Pos.X + 32 - t / 2, tux[ 20 ].Pos.Y - ScaleF + 3, t + 2, ScaleF + 2, {$IfDef OLD_METHODS}$000000, 200,{$Else}newColor,{$EndIf} PR2D_FILL );
+      pr2d_Rect( tux[ 20 ].Pos.X + 32 - t / 2, tux[ 20 ].Pos.Y - ScaleF + 2, t + 4, ScaleF + 4, {$IfDef OLD_METHODS}$FFFFFF,{$Else}cl_White{$EndIf});
+      text_DrawEx( fntMain, tux[ 20 ].Pos.X + 32, tux[ 20 ].Pos.Y - ScaleF + 5, 1, 0, 'o_O', {$IfDef OLD_METHODS}255, $FFFFFF,{$Else}cl_White,{$EndIf} TEXT_HALIGN_CENTER );
       asprite2d_Draw( tux[ 20 ].Texture, tux[ 20 ].Pos.X, tux[ 20 ].Pos.Y, 64, 64, 0, tux[ 20 ].Frame div 2 );
     end;
 
@@ -206,7 +217,16 @@ begin
   else
     if time < 510 Then
       begin
-        pr2d_Rect( 0, 0, 800, 600, $000000, 510 - time, PR2D_FILL );
+        // Rus: получаем значение цвета.
+        // Eng: Get the color value.
+        i := Get_Color(correctColor);
+        pr2d_Rect( 0, 0, 800, 600, {$IfDef OLD_METHODS}$000000, 510 - time,{$Else} correctColor,{$EndIf} PR2D_FILL );
+        dec(i);
+        if i < 0 then
+          i := 0;
+        // Rus: корректируем значение цвета.
+        // Eng: adjusting the color value.
+        Correct_Color(correctColor, i);
         ssprite2d_Draw( texLogo, 400 - 256, 300 - 128, 512, 256, 0, 510 - time );
       end;
 
@@ -263,7 +283,7 @@ procedure Java_zengl_android_ZenGL_Main( var env; var thiz ); cdecl;
 begin
   randomize();
 
-  TimeStart := timer_Add( @Timer, 16, Start );
+  TimeStart := timer_Add( @Timer, 16, t_Start );
 
   zgl_Reg( SYS_LOAD, @Init );
   zgl_Reg( SYS_DRAW, @Draw );