Skip to content

Commit

Permalink
added paintable demo
Browse files Browse the repository at this point in the history
  • Loading branch information
eilara committed Dec 5, 2011
1 parent 37b3f08 commit 9edb83e
Show file tree
Hide file tree
Showing 10 changed files with 59 additions and 21 deletions.
3 changes: 2 additions & 1 deletion dist.ini
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ aliased = 0.30
EV = 4.03
Coro = 6.07
AnyEvent = 6.11

Math::Vector::Real = 0.06
Imager = 0.86



Expand Down
33 changes: 33 additions & 0 deletions eg/04-positionable.pl
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/usr/bin/perl

package Games::CamelDefense::eg_Positionable;
use Games::CamelDefense::Demo;

has last_click => (is => 'rw', default => sub { [0, 0] });

consume qw(
Render::Paintable
Event::Handler::SDL
Geometry::Positionable
);

sub on_mouse_button_up {
my ($self, $x, $y) = @_;
$self->xy([$x, $y]);
}

sub paint {
my ($self, $surface) = @_;
$surface->draw_circle($self->pos, 100, 0xFFFFFFFF, 1);
}

package main;
use Games::CamelDefense::Demo;
use Games::CamelDefense::App title => 'Positionable';

my $paintable = Games::CamelDefense::eg_Positionable->new(xy => [320, 200]);

App->run;



4 changes: 2 additions & 2 deletions eg/Games/CamelDefense/Demo.pm
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use Moose::Util;
use Games::CamelDefense::MooseX::Util;

sub import {
my ($class, %args) = @_;
my ($class, @args) = @_;
my $caller = caller;
require feature;
feature->import(':5.10');
Expand All @@ -17,7 +17,7 @@ sub import {
eval "package $caller;use Moose";
die "Importing Moose error: $@" if @$;

import_helpers($caller);
import_helpers($caller, @args);
}

1;
Expand Down
13 changes: 7 additions & 6 deletions lib/Games/CamelDefense/App.pm
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
package Games::CamelDefense::App;

use Games::CamelDefense::Class;
use SDL;
use SDL::Rect;
use SDL::Events;
use SDLx::App;
use Games::CamelDefense::Event::Handler::SDL;
use Games::CamelDefense::Game::Resources;
use Games::CamelDefense::Render::Paintable;
use aliased 'Games::CamelDefense::Render::LayerManager' => 'LayerManager';
use aliased 'Games::CamelDefense::Game::Controller' => 'Controller';
use Games::CamelDefense::Class qw(
Event::Handler::SDL
Game::Resources
Render::Paintable
Render::LayerManager
Game::Controller
);

my $Instance;
sub import { # copied from Avenger
Expand Down
4 changes: 2 additions & 2 deletions lib/Games/CamelDefense/Class.pm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use Moose;
use Games::CamelDefense::MooseX::Util;

sub import {
my ($class, %args) = @_;
my ($class, @args) = @_;
my $caller = caller;
require feature;
feature->import(':5.10');
Expand All @@ -20,7 +20,7 @@ IMPORTS

die "Importing Moose error: $@" if @$;

import_helpers($caller);
import_helpers($caller, @args);
}


Expand Down
8 changes: 6 additions & 2 deletions lib/Games/CamelDefense/MooseX/Util.pm
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,18 @@ sub consume {
}

sub import_helpers {
my ($caller) = @_;
my ($caller, @args) = @_;
eval <<"IMPORTS";
package $caller;
use MooseX::Types::Moose qw(Bool Int Num Str ArrayRef HashRef);
use Scalar::Util qw(weaken);
use Math::Vector::Real;
use MooseX::Types::Moose qw(Bool Int Num Str ArrayRef HashRef);
use Games::CamelDefense::MooseX::Compose;
use Games::CamelDefense::MooseX::Types qw(Vector2D);
${\( join qq{\n}, map {qq{
use aliased 'Games::CamelDefense::$_';
}} @args )}
IMPORTS
die "Importing Moose error: $@" if @$;
Expand Down
3 changes: 1 addition & 2 deletions lib/Games/CamelDefense/Render/LayerManager.pm
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package Games::CamelDefense::Render::LayerManager;

use Games::CamelDefense::Class;
use aliased 'Games::CamelDefense::Render::Layer';
use Games::CamelDefense::Class qw(Render::Layer);

# layer names in order from front to back
has layers => (
Expand Down
4 changes: 2 additions & 2 deletions lib/Games/CamelDefense/Role.pm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use Moose;
use Games::CamelDefense::MooseX::Util;

sub import {
my ($class, %args) = @_;
my ($class, @args) = @_;
my $caller = caller;
require feature;
feature->import(':5.10');
Expand All @@ -20,7 +20,7 @@ IMPORTS

die "Importing Moose error: $@" if @$;

import_helpers($caller);
import_helpers($caller, @args);
}


Expand Down
4 changes: 2 additions & 2 deletions t/Geometry/Positionable.t
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@

package Games::CamelDefense::t_Geometry_Positionable;
use Moose;
use Games::CamelDefense::Class;

with 'Games::CamelDefense::Geometry::Positionable';
consume 'Geometry::Positionable';

package main;
use strict;
Expand Down
4 changes: 2 additions & 2 deletions t/Geometry/Rectangular.t
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@

package Games::CamelDefense::t_Geometry_Rectangular;
use Moose;
use Games::CamelDefense::Class;

with 'Games::CamelDefense::Geometry::Rectangular';
consume 'Geometry::Rectangular';

package main;
use strict;
Expand Down

0 comments on commit 9edb83e

Please sign in to comment.