gel.demos: Update code to use new openGL updates.

This commit is contained in:
Rod Kay
2025-09-14 10:11:21 +10:00
parent d357ce109b
commit 5afee0e2e4
41 changed files with 677 additions and 347 deletions

View File

@@ -6,7 +6,8 @@ with
gel.Joint,
Physics,
openGL.Palette;
openGL.Palette,
openGL.Light;
pragma unreferenced (gel.Window.sdl);
@@ -37,6 +38,15 @@ begin
the_Applet.Renderer .Background_is (Grey);
the_Applet.enable_simple_Dolly (in_World => gui_World.gui_world_Id);
-- Set the lights position.
--
declare
Light : openGL.Light.item := the_Applet.Renderer.new_Light;
begin
Light.Site_is ([0.0, 0.0, 15.0]);
the_Applet.Renderer.set (Light);
end;
the_Ground.Site_is ([0.0, -40.0, 0.0]);
the_Applet.gui_World.add (the_Ground, and_Children => False);
@@ -44,8 +54,13 @@ begin
--
declare
ball_Count : constant := 39;
the_root_Ball : constant gel.Sprite.view := new_circle_Sprite (the_Applet.gui_World, Name => "the_root_Ball", Mass => 0.0);
the_Balls : constant gel.Sprite.views := [1 .. ball_Count => new_circle_Sprite (the_Applet.gui_World, Name => "the_Balls", Mass => 1.0)];
the_root_Ball : constant gel.Sprite.view := new_circle_Sprite (in_World => the_Applet.gui_World,
Name => "the_root_Ball",
Mass => 0.0);
the_Balls : constant gel.Sprite.views := [1 .. ball_Count => new_circle_Sprite (in_World => the_Applet.gui_World,
Name => "the_Balls",
Color => (Green, openGL.Opaque),
Mass => 1.0)];
Parent : gel.Sprite.view := the_root_Ball;
new_Joint : gel.Joint .view;

View File

@@ -6,6 +6,9 @@ with
gel.World,
gel.Camera,
openGL.Light,
openGL.Palette,
Physics,
ada.Text_IO,
@@ -41,7 +44,8 @@ is
end gui_Camera;
the_Ball : constant gel.Sprite.view := gel.Forge.new_ball_Sprite (gui_World);
the_Ball : constant gel.Sprite.view := gel.Forge.new_ball_Sprite (in_World => gui_World,
Color => (openGL.Palette.Green, openGL.Opaque));
the_Box : constant gel.Sprite.view := gel.Forge.new_box_Sprite (gui_World,
Mass => 0.0,
Size => [20.0, 1.0, 20.0]);
@@ -59,6 +63,15 @@ begin
gui_World.add (the_Ball); -- Add ball.
gui_World.add (the_Box); -- Add box.
-- Set the lights position.
--
declare
Light : openGL.Light.item := the_Applet.Renderer.new_Light;
begin
Light.Site_is ([0.0, 15.0, 15.0]);
Light.ambient_Coefficient_is (0.5);
the_Applet.Renderer.set (Light);
end;
while the_Applet.is_open
loop

View File

@@ -41,11 +41,10 @@ is
half_Extents => [5.0, 0.25, 5.0]));
the_Ground : constant gel.Sprite.view
:= gel.Sprite.forge.new_Sprite ("demo.Ground",
gel.Sprite.World_view (the_Applet.gui_World),
math.Origin_3D,
the_ground_graphics_Model,
the_ground_physics_Model);
:= gel.Sprite.forge.new_Sprite (Name => "demo.Ground",
World => gel.Sprite.World_view (the_Applet.gui_World),
graphics_Model => the_ground_graphics_Model,
physics_Model => the_ground_physics_Model);
the_box_physics_Model : constant physics.Model.view
@@ -62,11 +61,10 @@ is
Left => (Colors => [others => (Cyan, Opaque)]),
Right => (Colors => [others => (Magenta, Opaque)])]);
the_Box : constant gel.Sprite.view
:= gel.Sprite.forge.new_Sprite ("demo.Box",
gel.Sprite.World_view (the_Applet.gui_World),
math.Origin_3D,
the_box_graphics_Model,
the_box_physics_Model);
:= gel.Sprite.forge.new_Sprite (Name => "demo.Box",
World => gel.Sprite.World_view (the_Applet.gui_World),
graphics_Model => the_box_graphics_Model,
physics_Model => the_box_physics_Model);
begin
new_Line;
put_Line ("Use arrow keys and PgUp/PgDn to move the camera.");
@@ -79,7 +77,7 @@ begin
the_Applet.gui_World.add (the_Ground, and_children => False); -- Add ground.
the_Ground.Site_is (math.Origin_3D);
the_Applet.gui_World.add (the_Box, and_Children => False); -- Add ball.
the_Applet.gui_World.add (the_Box, and_Children => False); -- Add ball.
the_Box.Site_is ([0.0, 10.0, 0.0]);
while the_Applet.is_open

View File

@@ -0,0 +1,18 @@
with
"gel_sdl",
"lace_shared";
project ghost_Sprite
is
for Object_Dir use "build";
for Exec_Dir use ".";
for Main use ("launch_ghost_sprite.adb");
for Languages use ("Ada");
package Ide renames Lace_shared.Ide;
package Builder renames Lace_shared.Builder;
package Compiler renames Lace_shared.Compiler;
package Binder renames Lace_shared.Binder;
end ghost_Sprite;

View File

@@ -0,0 +1,98 @@
with
gel.Forge,
gel.Window.sdl,
gel.Applet.gui_world,
gel.Camera,
gel.Sprite,
physics.Model,
openGL.Model.box.colored,
openGL.Palette,
ada.Text_IO,
ada.Exceptions;
pragma unreferenced (gel.window.sdl);
procedure launch_ghost_Sprite
--
-- Drops a box onto a box 'terrain'.
--
is
use openGL.Model.box,
openGL,
opengl.Palette,
ada.Text_IO;
the_Applet : constant gel.Applet.gui_World.view
:= gel.Forge.new_gui_Applet ("ghost Sprite");
the_ground_graphics_Model : constant openGL.Model.box.colored.view
:= openGL.Model.box.colored.new_Box (Size => [10.0, 0.5, 10.0],
Faces => [Front => (Colors => [others => (Red, Opaque)]),
Rear => (Colors => [others => (Blue, Opaque)]),
Upper => (Colors => [others => (Green, Opaque)]),
Lower => (Colors => [others => (Yellow, Opaque)]),
Left => (Colors => [others => (Cyan, Opaque)]),
Right => (Colors => [others => (Magenta, Opaque)])]);
the_ground_physics_Model : constant physics.Model.view
:= physics.Model.Forge.new_physics_Model (shape_Info => (Kind => physics.Model.cube,
half_Extents => [5.0, 0.25, 5.0]),
is_Tangible => False);
the_Ground : constant gel.Sprite.view
:= gel.Sprite.forge.new_Sprite (Name => "demo.Ground",
World => gel.Sprite.World_view (the_Applet.gui_World),
graphics_Model => the_ground_graphics_Model,
physics_Model => the_ground_physics_Model);
the_box_physics_Model : constant physics.Model.view
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.cube,
half_Extents => [1.0, 0.5, 1.0]),
Mass => 1.0);
the_box_graphics_Model : constant openGL.Model.box.colored.view
:= openGL.Model.box.colored.new_Box (Size => [1.0, 1.0, 1.0],
Faces => [Front => (Colors => [others => (Red, Opaque)]),
Rear => (Colors => [others => (Blue, Opaque)]),
Upper => (Colors => [others => (dark_Green, Opaque)]),
Lower => (Colors => [others => (Yellow, Opaque)]),
Left => (Colors => [others => (Cyan, Opaque)]),
Right => (Colors => [others => (Magenta, Opaque)])]);
the_Box : constant gel.Sprite.view
:= gel.Sprite.forge.new_Sprite (Name => "demo.Box",
World => gel.Sprite.World_view (the_Applet.gui_World),
graphics_Model => the_box_graphics_Model,
physics_Model => the_box_physics_Model);
begin
new_Line;
put_Line ("Use arrow keys and PgUp/PgDn to move the camera.");
new_Line;
the_Applet.gui_Camera.Site_is ([0.0, 5.0, 15.0]); -- Position the camera.
the_Applet.enable_simple_Dolly (1); -- Enable user camera control via keyboards.
the_Applet.enable_Mouse (detect_Motion => False); -- Enable the mouse.
the_Applet.gui_World.add (the_Ground, and_children => False); -- Add ground.
the_Ground.Site_is (math.Origin_3D);
the_Applet.gui_World.add (the_Box, and_Children => False); -- Add ball.
the_Box.Site_is ([0.0, 10.0, 0.0]);
while the_Applet.is_open
loop
the_Applet.freshen; -- Handle any new events and update the screen.
end loop;
the_Applet.destroy;
exception
when E : others =>
new_Line;
put_Line ("Unhandled exception in main thread ...");
put_Line (ada.Exceptions.exception_Information (E));
new_Line;
end launch_ghost_Sprite;

View File

@@ -62,31 +62,28 @@ begin
half_Extents => box_Size / 2.0),
Mass => 1.0);
the_Box_1 : constant gel.Sprite.view
:= gel.Sprite.forge.new_Sprite ("demo.Box.static.1",
the_Applet.gui_World.all'Access,
math.Origin_3d,
the_box_Model.all'Access,
the_static_box_physics_Model,
owns_Graphics => False,
owns_Physics => True);
:= gel.Sprite.forge.new_Sprite (Name => "demo.Box.static.1",
World => the_Applet.gui_World.all'Access,
graphics_Model => the_box_Model.all'Access,
physics_Model => the_static_box_physics_Model,
owns_Graphics => False,
owns_Physics => True);
the_Box_2 : constant gel.Sprite.view
:= gel.Sprite.forge.new_Sprite ("demo.Box.dynamic.2",
the_Applet.gui_World.all'Access,
math.Origin_3d,
the_box_Model.all'Access,
the_dynamic_box_physics_Model,
owns_Graphics => False,
owns_Physics => False);
:= gel.Sprite.forge.new_Sprite (Name => "demo.Box.dynamic.2",
World => the_Applet.gui_World.all'Access,
graphics_Model => the_box_Model.all'Access,
physics_Model => the_dynamic_box_physics_Model,
owns_Graphics => False,
owns_Physics => False);
the_Box_3 : constant gel.Sprite.view
:= gel.Sprite.forge.new_Sprite ("demo.Box.dynamic.3",
the_Applet.gui_World.all'Access,
math.Origin_3d,
the_box_Model.all'Access,
the_dynamic_box_physics_Model,
owns_Graphics => True,
owns_Physics => True);
:= gel.Sprite.forge.new_Sprite (Name => "demo.Box.dynamic.3",
World => the_Applet.gui_World.all'Access,
graphics_Model => the_box_Model.all'Access,
physics_Model => the_dynamic_box_physics_Model,
owns_Graphics => True,
owns_Physics => True);
the_Joint_1 : constant gel.hinge_Joint.view := new gel.hinge_Joint.item;
the_Joint_2 : constant gel.hinge_Joint.view := new gel.hinge_Joint.item;
@@ -101,7 +98,6 @@ begin
the_Box_1.Site_is ([ 0.0, 0.0, 0.0]);
the_Box_2.Site_is ([ -1.0, 2.0, 0.0]);
the_Box_3.Site_is ([ 10.0, 10.0, 0.0]);
-- the_Box_3.Site_is (( 10.0, 10.0, 0.0));
declare
use math.Algebra.linear.d3;

View File

@@ -47,26 +47,49 @@ begin
-- Hinge
--
declare
the_hinge_Box_1 : constant gel.Sprite.view := new_circle_Sprite (the_Applet.gui_World, Name => "the_hinge_Box_1", mass => 0.0);
the_hinge_Box_2 : constant gel.Sprite.view := new_circle_Sprite (the_Applet.gui_World, Name => "the_hinge_Box_2", mass => 1.0);
the_hinge_Box_1 : constant gel.Sprite.view := new_circle_Sprite (in_World => the_Applet.gui_World,
Name => "the_hinge_Box_1",
Mass => 0.0,
Color => (openGL.Palette.Green, openGL.Opaque),
Fill => False);
the_hinge_Box_2 : constant gel.Sprite.view := new_circle_Sprite (in_World => the_Applet.gui_World,
Name => "the_hinge_Box_2",
Mass => 1.0,
Color => (openGL.Palette.Green, openGL.Opaque),
Fill => False);
new_Joint : gel. Joint .view;
Frame_A : constant math.Matrix_4x4 := math.Identity_4x4;
Frame_B : constant math.Matrix_4x4 := math.Identity_4x4;
-- Frame_A : constant math.Matrix_4x4 := math.Identity_4x4;
-- Frame_B : constant math.Matrix_4x4 := math.Identity_4x4;
begin
the_hinge_Box_1.Site_is ([ 0.0, 0.0, 0.0]);
the_hinge_Box_2.Site_is ([-10.0, 0.0, 0.0]);
the_Applet.gui_World.add (the_hinge_Box_1);
the_Applet.gui_World.add (the_hinge_Box_2);
-- the_hinge_Box_1.attach_via_Hinge (the_Child => the_hinge_Box_2,
-- Frame_in_parent => Frame_A,
-- Frame_in_child => Frame_B,
-- Limits => (0.0, to_Radians (355.0)),
-- collide_Connected => False,
-- new_joint => new_Joint);
the_hinge_Box_1.attach_via_Hinge
(the_Child => the_hinge_Box_2,
pivot_Axis => [0.0, 0.0, 1.0], -- Unused.
pivot_Anchor => [-0.0, 0.0, 0.0],
low_Limit => to_Radians (-355.0),
high_Limit => to_Radians ( 355.0),
new_joint => new_Joint);
the_hinge_Box_1.attach_via_Hinge (the_Child => the_hinge_Box_2,
Frame_in_parent => Frame_A,
Frame_in_child => Frame_B,
Limits => (0.0, to_Radians (355.0)),
collide_Connected => False,
new_joint => new_Joint);
-- the_hinge_Joint := gel.hinge_Joint .view (new_Joint);
the_Applet.gui_World.add (the_hinge_Box_1, and_children => True);
-- the_Applet.gui_World.add (the_hinge_Box_1, and_children => True);
the_Applet.gui_World.add (new_Joint);
end;
-- -- DoF6

View File

@@ -10,8 +10,10 @@ with
openGL.Model.box.colored,
openGL.Model.sphere.lit_colored_textured,
openGL.Model.capsule.lit_colored_textured,
openGL.Model.capsule.textured,
openGL.Model.any,
openGL.Model.terrain,
openGL.texture_Set,
openGL.IO,
openGL.Light,
openGL.Palette;
@@ -90,13 +92,14 @@ is
Scale => 2.0);
the_heightfield_Model : constant openGL.Model.terrain.view
:= openGL.Model.terrain.new_Terrain (heights_Asset => terrain_Heights,
Row => 1,
Col => 1,
Heights => openGL.Model.terrain.height_Map_view (gl_Heights),
color_Map => terrain_Texture,
Tiling => (s => (0.0, 1.0),
t => (0.0, 1.0)));
:= openGL.Model.terrain.new_Terrain (heights_Asset => terrain_Heights,
Row => 1,
Col => 1,
Heights => openGL.Model.terrain.height_Map_view (gl_Heights),
color_Map => terrain_Texture,
texture_Details => texture_Set.to_Details ([1 => terrain_Texture]),
Tiling => (s => (0.0, 1.0),
t => (0.0, 1.0)));
the_heightfield_physics_Model : constant physics.Model.view
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.heightfield,
@@ -104,11 +107,10 @@ is
height_Range => [0.0, 200.0]),
Scale => [hs, 1.0, hs]);
the_Heightfield : constant gel.Sprite.view
:= gel.Sprite.forge.new_Sprite ("demo.Hull",
the_Applet.gui_World.all'Access,
Origin_3D,
the_Heightfield_Model,
the_Heightfield_physics_Model);
:= gel.Sprite.forge.new_Sprite (Name => "demo.Heightfield",
World => the_Applet.gui_World.all'Access,
graphics_Model => the_Heightfield_Model,
physics_Model => the_Heightfield_physics_Model);
begin
-- Applet.
--
@@ -153,11 +155,10 @@ begin
Mass => 1.0);
the_Box : constant gel.Sprite.view
:= gel.Sprite.forge.new_Sprite ("demo.Box",
the_Applet.gui_World.all'Access,
Origin_3D,
the_box_Model.all'Access,
the_box_physics_Model);
:= gel.Sprite.forge.new_Sprite (Name => "demo.Box",
World => the_Applet.gui_World.all'Access,
graphics_Model => the_box_Model.all'Access,
physics_Model => the_box_physics_Model);
-- Ball
--
@@ -167,36 +168,37 @@ begin
Mass => 1.0);
the_ball_Model : constant openGL.Model.sphere.lit_colored_textured.view
:= openGL.Model.sphere.lit_colored_textured.new_Sphere (Radius => 1.0,
Image => openGL.to_Asset ("assets/gel/golf_green-16x16.tga"));
:= openGL.Model.sphere.lit_colored_textured.new_Sphere (Radius => 1.0,
Image => openGL.to_Asset ("assets/gel/golf_green-16x16.tga"),
texture_Details => texture_Set.to_Details ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]));
the_Ball : constant gel.Sprite.view
:= gel.Sprite.forge.new_Sprite ("demo.Ball",
the_Applet.gui_World.all'Access,
Origin_3D,
the_ball_Model,
the_ball_physics_Model);
:= gel.Sprite.forge.new_Sprite (Name => "demo.Ball",
World => the_Applet.gui_World.all'Access,
graphics_Model => the_ball_Model,
physics_Model => the_ball_physics_Model);
-- Cone
--
the_cone_Model : constant openGL.Model.any.view
:= openGL.Model.any.new_Model (Model => openGL.to_Asset ("assets/gel/model/unit_cone.obj"),
Texture => openGL.null_Asset,
Texture => openGL.to_Asset ("assets/gel/Face1.bmp"),
texture_Details => texture_Set.to_Details ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]),
Texture_is_lucid => False);
the_cone_physics_Model : constant physics.Model.view
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.cone),
Mass => 1.0);
the_Cone : constant gel.Sprite.view
:= gel.Sprite.forge.new_Sprite ("demo.Cone",
the_Applet.gui_World.all'Access,
Origin_3D,
the_cone_Model.all'Access,
the_cone_physics_Model);
:= gel.Sprite.forge.new_Sprite (Name => "demo.Cone",
World => the_Applet.gui_World.all'Access,
graphics_Model => the_cone_Model.all'Access,
physics_Model => the_cone_physics_Model);
-- Cylinder
--
the_cylinder_Model : constant openGL.Model.any.view
:= openGL.Model.any.new_Model (Model => openGL.to_Asset ("assets/gel/model/unit_cylinder.obj"),
Texture => openGL.null_Asset,
Texture => openGL.to_Asset ("assets/gel/Face1.bmp"),
texture_Details => texture_Set.to_Details ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]),
Texture_is_lucid => False);
the_cylinder_physics_Model : constant physics.Model.view
@@ -205,17 +207,18 @@ begin
Mass => 1.0);
the_Cylinder : constant gel.Sprite.view
:= gel.Sprite.forge.new_Sprite ("demo.Cylinder",
the_Applet.gui_World.all'Access,
Origin_3D,
the_cylinder_Model.all'Access,
the_cylinder_physics_Model);
:= gel.Sprite.forge.new_Sprite (Name => "demo.Cylinder",
World => the_Applet.gui_World.all'Access,
graphics_Model => the_cylinder_Model.all'Access,
physics_Model => the_cylinder_physics_Model);
-- Capsule
--
the_capsule_Model : constant openGL.Model.capsule.lit_colored_textured.view
:= openGL.Model.capsule.lit_colored_textured.new_Capsule (Radius => 0.5,
Height => 0.0,
Color => (palette.Green, Opaque));
the_capsule_Model : constant openGL.Model.capsule.textured.view
:= openGL.Model.capsule.textured.new_Capsule (Radius => 0.5,
Height => 2.0,
texture_Details => texture_Set.to_Details ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]),
Image => openGL.to_Asset ("assets/gel/Face1.bmp"));
the_capsule_physics_Model : constant physics.Model.view
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.a_Capsule,
@@ -224,34 +227,33 @@ begin
Height => 1.0),
Mass => 1.0);
the_Capsule : constant gel.Sprite.view
:= gel.Sprite.forge.new_Sprite ("demo.Capsule",
the_Applet.gui_World.all'Access,
Origin_3D,
the_capsule_Model.all'Access,
the_capsule_physics_Model);
:= gel.Sprite.forge.new_Sprite (Name => "demo.Capsule",
World => the_Applet.gui_World.all'Access,
graphics_Model => the_capsule_Model.all'Access,
physics_Model => the_capsule_physics_Model);
-- multi_Sphere
--
the_multi_Sphere_Model : constant openGL.Model.capsule.lit_colored_textured.view
:= openGL.Model.capsule.lit_colored_textured.new_Capsule (Radius => 0.5,
Height => 0.0,
Color => (palette.Green, Opaque),
Image => openGL.to_Asset ("assets/gel/golf_green-16x16.tga"));
the_multi_Sphere_physics_Model : constant physics.Model.view
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.multi_Sphere,
Sites => new physics.Vector_3_array' ([-0.5, 0.0, 0.0],
[ 0.5, 0.0, 0.0]),
Radii => new gel.math.Vector' (1 => 0.5,
2 => 0.5)),
Mass => 1.0);
the_multi_Sphere : constant gel.Sprite.view
:= gel.Sprite.forge.new_Sprite ("demo.multi_Sphere",
the_Applet.gui_World.all'Access,
Origin_3D,
the_multi_Sphere_Model.all'Access,
the_multi_Sphere_physics_Model);
-- the_multi_Sphere_Model : constant openGL.Model.capsule.lit_colored_textured.view
-- := openGL.Model.capsule.lit_colored_textured.new_Capsule (Radius => 0.5,
-- Height => 0.0,
-- Color => (palette.Green, Opaque),
-- Image => openGL.to_Asset ("assets/gel/golf_green-16x16.tga"));
--
-- the_multi_Sphere_physics_Model : constant physics.Model.view
-- := physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.multi_Sphere,
-- Sites => new physics.Vector_3_array' ([-0.5, 0.0, 0.0],
-- [ 0.5, 0.0, 0.0]),
-- Radii => new gel.math.Vector' (1 => 0.5,
-- 2 => 0.5)),
-- Mass => 1.0);
--
-- the_multi_Sphere : constant gel.Sprite.view
-- := gel.Sprite.forge.new_Sprite ("demo.multi_Sphere",
-- the_Applet.gui_World.all'Access,
-- Origin_3D,
-- the_multi_Sphere_Model.all'Access,
-- the_multi_Sphere_physics_Model);
-- Hull
--
@@ -277,18 +279,17 @@ begin
[-s, s, -s])),
Mass => 1.0);
the_Hull : constant gel.Sprite.view
:= gel.Sprite.forge.new_Sprite ("demo.Hull",
the_Applet.gui_World.all'Access,
Origin_3D,
the_hull_Model.all'Access,
the_hull_physics_Model);
:= gel.Sprite.forge.new_Sprite (Name => "demo.Hull",
World => the_Applet.gui_World.all'Access,
graphics_Model => the_hull_Model.all'Access,
physics_Model => the_hull_physics_Model);
begin
the_Applet.gui_World.add (the_Ball);
the_Applet.gui_World.add (the_Box);
the_Applet.gui_World.add (the_Cone);
the_Applet.gui_World.add (the_Cylinder);
the_Applet.gui_World.add (the_Capsule);
the_Applet.gui_World.add (the_multi_Sphere);
-- the_Applet.gui_World.add (the_multi_Sphere);
the_Applet.gui_World.add (the_Hull);
the_Ball .Site_is ([ x, y, 0.0]);
@@ -297,7 +298,7 @@ begin
the_Capsule .Site_is ([ 0.0 + X, y, 0.0 + x]);
the_Cylinder .Site_is ([ 0.0, y, 4.4]);
the_Hull .Site_is ([ 4.0, y, 4.4]);
the_multi_Sphere.Site_is ([-4.0, y, 4.4]);
-- the_multi_Sphere.Site_is ([-4.0, y, 4.4]);
x := x + 2.0;
y := y + 2.0;

View File

@@ -20,22 +20,20 @@ is
use gel.Math,
openGL.Palette;
the_Applet : constant gel.Applet.gui_World.view := gel.forge.new_gui_Applet ("text sprite Demo",
the_Applet : constant gel.Applet.gui_World.view := gel.Forge.new_gui_Applet ("text sprite Demo",
space_Kind => physics.Bullet);
the_Text_1 : constant gel.Sprite.view := gel.forge.new_text_Sprite (the_Applet.gui_World,
Origin_3D,
"Howdy",
the_Applet.Font,
Green);
the_Text_1 : constant gel.Sprite.view := gel.Forge.new_text_Sprite (in_World => the_Applet.gui_World,
Text => "Howdy",
Font => the_Applet.Font,
Color => dark_Green);
the_Text_2 : constant gel.Sprite.view := gel.forge.new_text_Sprite (the_Applet.gui_World,
Origin_3D,
"Doody",
the_Applet.Font,
Green);
text_1_Model : constant openGL.Model.text.lit_colored.view
:= openGL.Model.text.lit_colored.view (the_Text_1.graphics_Model);
the_Text_2 : constant gel.Sprite.view := gel.Forge.new_text_Sprite (in_World => the_Applet.gui_World,
Text => "Doody",
Font => the_Applet.Font,
Color => dark_Green);
text_2_Model : constant openGL.Model.text.lit_colored.view
:= openGL.Model.text.lit_colored.view (the_Text_2.graphics_Model);
begin
the_Applet.gui_Camera.Site_is ([0.0, 0.0, 50.0]); -- Position the camera.
the_Applet.enable_simple_Dolly (1); -- Enable user camera control via keyboards.
@@ -43,15 +41,15 @@ begin
the_Applet.gui_World.add (the_Text_1);
the_Applet.gui_World.add (the_Text_2);
the_Text_2.Site_is ([0.0, 10.0, 0.0]);
the_Text_2.Site_is ([0.0, -10.0, 0.0]);
while the_Applet.is_open
loop
if text_1_Model.Text = "Yay"
if text_2_Model.Text = "Yay"
then
text_1_Model.Text_is ("Howdy");
text_2_Model.Text_is ("Doody");
else
text_1_Model.Text_is ("Yay");
text_2_Model.Text_is ("Yay");
end if;
the_Applet.gui_World.evolve;