summaryrefslogtreecommitdiffstats
path: root/PerlQt/tutorials/t14/GameBoard.pm
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-01-01 18:29:30 -0600
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-01-01 18:29:30 -0600
commitb2af005db21bd8fd068cb79b2ae700953128af2c (patch)
treeabd0ed633726bf0bbecb57d30e92836c31e02695 /PerlQt/tutorials/t14/GameBoard.pm
parentc1b9383f2032d82db5eb8918dca885e37a901dde (diff)
downloadlibtqt-perl-b2af005db21bd8fd068cb79b2ae700953128af2c.tar.gz
libtqt-perl-b2af005db21bd8fd068cb79b2ae700953128af2c.zip
Move PerlQt
Diffstat (limited to 'PerlQt/tutorials/t14/GameBoard.pm')
-rw-r--r--PerlQt/tutorials/t14/GameBoard.pm125
1 files changed, 0 insertions, 125 deletions
diff --git a/PerlQt/tutorials/t14/GameBoard.pm b/PerlQt/tutorials/t14/GameBoard.pm
deleted file mode 100644
index a81deef..0000000
--- a/PerlQt/tutorials/t14/GameBoard.pm
+++ /dev/null
@@ -1,125 +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);
-
- my $box = TQt::VBox(this, "cannonFrame");
- $box->setFrameStyle($box->WinPanel | $box->Sunken);
-
- cannonField = CannonField($box, "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 $accel = TQt::Accel(this);
- $accel->connectItem($accel->insertItem(TQt::KeySequence(int &Key_Enter)),
- this, TQT_SLOT('fire()'));
- $accel->connectItem($accel->insertItem(TQt::KeySequence(int &Key_Return)),
- this, TQT_SLOT('fire()'));
- $accel->connectItem($accel->insertItem(TQt::KeySequence(int &CTRL+&Key_Q)),
- TQt::app, TQT_SLOT('quit()'));
-
- my $grid = TQt::GridLayout(this, 2, 2, 10);
- $grid->addWidget($quit, 0, 0);
- $grid->addWidget($box, 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;