summaryrefslogtreecommitdiffstats
path: root/PerlQt/tutorials/t13/GameBoard.pm
diff options
context:
space:
mode:
Diffstat (limited to 'PerlQt/tutorials/t13/GameBoard.pm')
-rw-r--r--PerlQt/tutorials/t13/GameBoard.pm114
1 files changed, 0 insertions, 114 deletions
diff --git a/PerlQt/tutorials/t13/GameBoard.pm b/PerlQt/tutorials/t13/GameBoard.pm
deleted file mode 100644
index 52f5e9b..0000000
--- a/PerlQt/tutorials/t13/GameBoard.pm
+++ /dev/null
@@ -1,114 +0,0 @@
-package GameBoard;
-use strict;
-use TQt;
-use TQt::isa qw(TQt::Widget);
-use TQt::slots
- fire => [],
- hit => [],
- missed => [],
- newGame => [];
-use TQt::attributes qw(
- hits
- shotsLeft
- cannonField
-);
-
-use LCDRange;
-use CannonField;
-
-sub NEW {
- shift->SUPER::NEW(@_);
-
- my $quit = TQt::PushButton("&Quit", this, "quit");
- $quit->setFont(TQt::Font("Times", 18, &TQt::Font::Bold));
-
- TQt::app->connect($quit, TQT_SIGNAL('clicked()'), TQT_SLOT('quit()'));
-
- my $angle = LCDRange("ANGLE", this, "angle");
- $angle->setRange(5, 70);
-
- my $force = LCDRange("FORCE", this, "force");
- $force->setRange(10, 50);
-
- cannonField = CannonField(this, "cannonField");
-
- cannonField->connect($angle, TQT_SIGNAL('valueChanged(int)'), TQT_SLOT('setAngle(int)'));
- $angle->connect(cannonField, TQT_SIGNAL('angleChanged(int)'), TQT_SLOT('setValue(int)'));
-
- cannonField->connect($force, TQT_SIGNAL('valueChanged(int)'), TQT_SLOT('setForce(int)'));
- $force->connect(cannonField, TQT_SIGNAL('forceChanged(int)'), TQT_SLOT('setValue(int)'));
-
- this->connect(cannonField, TQT_SIGNAL('hit()'), TQT_SLOT('hit()'));
- this->connect(cannonField, TQT_SIGNAL('missed()'), TQT_SLOT('missed()'));
-
- my $shoot = TQt::PushButton('&Shoot', this, "shoot");
- $shoot->setFont(TQt::Font("Times", 18, &TQt::Font::Bold));
-
- this->connect($shoot, TQT_SIGNAL('clicked()'), TQT_SLOT('fire()'));
-
- $shoot->connect(cannonField, TQT_SIGNAL('canShoot(bool)'), TQT_SLOT('setEnabled(bool)'));
-
- my $restart = TQt::PushButton('&New Game', this, "newgame");
- $restart->setFont(TQt::Font("Times", 18, &TQt::Font::Bold));
-
- this->connect($restart, TQT_SIGNAL('clicked()'), TQT_SLOT('newGame()'));
-
- hits = TQt::LCDNumber(2, this, "hits");
- shotsLeft = TQt::LCDNumber(2, this, "shotsleft");
- my $hitsL = TQt::Label("HITS", this, "hitsLabel");
- my $shotsLeftL = TQt::Label("SHOTS LEFT", this, "shotsLeftLabel");
-
- my $grid = TQt::GridLayout(this, 2, 2, 10);
- $grid->addWidget($quit, 0, 0);
- $grid->addWidget(cannonField, 1, 1);
- $grid->setColStretch(1, 10);
-
- my $leftBox = TQt::VBoxLayout;
- $grid->addLayout($leftBox, 1, 0);
- $leftBox->addWidget($angle);
- $leftBox->addWidget($force);
-
- my $topBox = TQt::HBoxLayout;
- $grid->addLayout($topBox, 0, 1);
- $topBox->addWidget($shoot);
- $topBox->addWidget(hits);
- $topBox->addWidget($hitsL);
- $topBox->addWidget(shotsLeft);
- $topBox->addWidget($shotsLeftL);
- $topBox->addStretch(1);
- $topBox->addWidget($restart);
-
- $angle->setValue(60);
- $force->setValue(25);
- $angle->setFocus();
-
- newGame();
-}
-
-sub fire {
- return if cannonField->gameOver or cannonField->isShooting;
- shotsLeft->display(int(shotsLeft->intValue - 1));
- cannonField->shoot;
-}
-
-sub hit {
- hits->display(int(hits->intValue + 1));
- if(shotsLeft->intValue == 0) {
- cannonField->setGameOver;
- } else {
- cannonField->newTarget;
- }
-}
-
-sub missed {
- cannonField->setGameOver if shotsLeft->intValue == 0;
-}
-
-sub newGame {
- shotsLeft->display(int(15));
- hits->display(0);
- cannonField->restartGame;
- cannonField->newTarget;
-}
-
-1;