Help-Site Computer Manuals
Software
Hardware
Programming
Networking
  Algorithms & Data Structures   Programming Languages   Revision Control
  Protocols
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

Games::3D::World
contains all things in the game world

Games::3D::World - contains all things in the game world



NAME

Games::3D::World - contains all things in the game world


SYNOPSIS


        use Games::3D::World;

        # construct world from templates file and level file

        my $level = Games::3D::World->new( $templates, $file);

        # load the same level again

        $level->reload();

        # create a new world from sratch:

        my $world = Games::3D::World->new();

        $world->load_templates( $templates_file );

        # add some thing directly

        $world->create ( $thing_class );

        # create another one

        my $thing = Games::3D::Thingy->new( ... );

        $thing->visible(1);

        $thing->think_time(100);

        # and make our world contain it

        $world->register($thing);

        

        # save the world

        $world->save_to_file();

        # foreach frame to render:

        while ($not_quit)

          {

          # other code like user input handling here

          ...

          # update the world with the current frame time:

          $world->update( $now );

          ...

          # then let world call $callback for each visible object

          $world->render( $now, $callback );

          # other drawing code here

          ...

          }


EXPORTS

Exports nothing on default.


DESCRIPTION

This class represents the entire in-game object system. It contains Templates, e.g. the blue-prints for objects, as well as the objects itself.


METHODS

new()

        my $world = Games::3D::World->new( templates => $file );

Creates a new game world/level and reads in the templates from $file.

load_from_file()

        $world->load_from_file( $file );

Load the game world/level from a file, replacing all existing data.

load_templates()

        $world->load_templates( $templates_file );

Loads the templates from a file. Alternatively, if given a scalar ref, will load the templates from the contents of the scalar.

save_to_file()

        my $rc = $world->save_to_file( $file );

Save game world/level to a file, returns undef for success, otherwise ref to error message.

save_templates()

        my $rc = $world->save_templates( $file );

Save game world/level to a file, returns undef for success, otherwise ref to error message.

templates()

        print "I have ", $world->templates(), " templates\n";

Returns the number of templates the world currently knows about.

render()

        $world->render();

Calls the method render() on all things that want to be rendered.

update()

        $world->update( $now );

Let's all objects that want to think regulary think, and then updates objects that need updating. After this call, each object represents the the state if has at the time $now.

time()

        $world->time( );

Return the current time. Usefull for objects that want to know the time, because update() might cause some object to send a signal to another object, and the second one needs to know when the signal arrives.

create()



        my $object = $world->create($class);

Create an object based on a template (class name) and populate it's settings with the default values.

find_template()

        my $template_object = $world->find_template($class);

Given a class name, return the template object for it..

id()

        my $id = $world->id();

Return the ID of this world, which is always 0.

register()

        $self->register($thingy);

Register an object with the world.

unregister()
This method is automatically called to unregister objects with the world upon their death.

reload()

        $world->reload();

Loads the world from the file again, thus resetting it to its initial state again.

things()

        my $things = $world->things();

Returns the count of things in this world.

thinkers()

        my $thinkers = $world->thinkers();

Get the count of thinking things this world has.


AUTHORS

(c) 2003, 2004, 2006 Tels <http://bloodgate.com/>


SEE ALSO

the Games::3D::Thingy manpage, the Games::3D::Link manpage, the Games::Irrlicht manpage.

Programminig
Wy
Wy
yW
Wy
Programming
Wy
Wy
Wy
Wy