Add initial prototype.
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
with
|
||||
"gel",
|
||||
"lace_shared";
|
||||
|
||||
project add_rid_Sprite_Test
|
||||
is
|
||||
for Object_Dir use "build";
|
||||
for Exec_Dir use ".";
|
||||
for Main use ("launch_add_rid_sprite_test.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;
|
||||
|
||||
package Linker is
|
||||
for Default_Switches ("ada") use ("-lGL", "-lX11", "-lexpat", "-g");
|
||||
end Linker;
|
||||
|
||||
end add_rid_Sprite_Test;
|
||||
@@ -0,0 +1,77 @@
|
||||
with
|
||||
gel.Forge,
|
||||
gel.Window.setup,
|
||||
gel.Applet.gui_world,
|
||||
gel.World,
|
||||
gel.Camera,
|
||||
gel.Sprite,
|
||||
|
||||
ada.Calendar;
|
||||
|
||||
pragma Unreferenced (gel.Window.setup);
|
||||
|
||||
|
||||
procedure launch_add_rid_sprite_Test
|
||||
--
|
||||
-- drops a ball onto a box terrain.
|
||||
--
|
||||
--
|
||||
is
|
||||
use ada.Calendar;
|
||||
|
||||
the_Applet : constant gel.Applet.gui_world.view
|
||||
:= gel.forge.new_gui_Applet ("Add/Rid Sprite Test", 500, 500);
|
||||
|
||||
the_Box : constant gel.Sprite.view
|
||||
:= gel.forge.new_box_Sprite (the_Applet.gui_World, mass => 0.0);
|
||||
|
||||
the_Balls : gel.Sprite.views (1 .. 1)
|
||||
:= [others => gel.forge.new_ball_Sprite (the_Applet.gui_World, mass => 1.0)];
|
||||
|
||||
next_render_Time : ada.calendar.Time;
|
||||
|
||||
begin
|
||||
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 mouse events.
|
||||
|
||||
|
||||
the_Applet.gui_World.add (the_Box); -- Add the ground box.
|
||||
the_Box.Site_is ([0.0, 0.0, 0.0]);
|
||||
|
||||
|
||||
for Each in the_Balls'range
|
||||
loop
|
||||
the_Applet.gui_World.add (the_Balls (Each)); -- Add ball.
|
||||
the_Balls (Each).Site_is ([0.0, 10.0, 0.0]);
|
||||
end loop;
|
||||
|
||||
for Each in 1 .. 100
|
||||
loop
|
||||
the_Applet.gui_World.evolve; -- Evolve the world.
|
||||
the_Applet.freshen; -- Handle any new events and update the screen.
|
||||
end loop;
|
||||
|
||||
for Each in the_Balls'range
|
||||
loop
|
||||
the_Applet.gui_World.rid (the_Balls (Each)); -- Rid ball.
|
||||
gel.Sprite.free (the_Balls (Each));
|
||||
end loop;
|
||||
|
||||
|
||||
|
||||
next_render_Time := ada.Calendar.clock;
|
||||
|
||||
while the_Applet.is_open
|
||||
loop
|
||||
the_Applet.gui_World.evolve; -- Evolve the world.
|
||||
the_Applet.freshen; -- Handle any new events and update the screen.
|
||||
|
||||
next_render_Time := next_render_Time + gel.World.evolve_Period;
|
||||
delay until next_render_Time;
|
||||
end loop;
|
||||
|
||||
|
||||
the_Applet.destroy;
|
||||
|
||||
end launch_add_rid_sprite_Test;
|
||||
Reference in New Issue
Block a user