Skip to main content

Python PyGame Tower Defence - 0.7.6

A TD implemented in python and pygame.


Austin Morgan
(duckfin)
I'm closing the gap to Beta status. I'll be giving this project the Beta tag when it hits version 0.9. I've got a lot of work to go before it gets there, but the game is already quite playable. The basics are typical to Tower Defense games all over.

There are only seven maps thus far, and only three playable. I have not put great effort into balancing them yet, as things change constantly. That said, I played through all of them before releasing this and found them to be fairly spot-on in difficulty, if a bit lacking in variety. Balance will not be a top priority until the Beta, version 0.9.

The art is nowhere close to tops and there is no sound whatsoever. I am neither an artist nor musician. If anyone would like to contribute either, I would happily give credit for your work.

Comments are welcome and encouraged!

Changes

  • EventFunctions.leftCheckSelect added to check for clicking on icons or towers.
  • Mouse click events changed so you can select a different tower even when there is already a tower selected.
  • Mouse click events changed so you can left click an empty area to deselect a tower.
  • Towers can be selected directly even with an icon selected.
  • EventFunctions now return True if they had an effect, and False if no actions were taken.
  • Towers no longer print their damage amounts (part of the debugging code was left in, in the last release).
  • EventFunctions.placeTower created to handle placement of towers.
  • EventFunctions.leftSelectedIcon created to check for valid conditions to call placeTower.
  • EventFunctions changed to typically return in the form: selected,XXXb where XXXb is a boolean indicating change, with XXX being the function initials.
  • EventFunctions.leftAlreadySelected created to manage left clicking while having a selected that isn't changing.
  • EventFunctions.mouseButtonUp created to handle entire mouse click event structure.
  • Changed "if" statements in event checklist to "elif" for a (very) slight bump in event speed.
  • EventFunctions.nextWave created to handle the event of asking for next wave.
  • MainFunctions.dispIcons created to handle display of icons.
  • Main event structure slightly reworked to, again, bump the speed very slightly.
  • MainFunctions.workEvents created to completely handle all events.
  • Event structure modified (yet again) to re-enable quitting...
  • Began moving base enemy stats into types: EnemyTypes created.
  • Enemy speed changed to base=1.
  • Type column in mapproperties replaces XP column.
  • Enemy types: Weak (1 cr, half hp) and Healthy (2 cr, 3/4 speed, but high hp).
  • Since enemy cost is now held in EnemyTypes, the Cost column of mapproperties is changed to Time. This is the delay between each enemy in a wave.
  • EnemyType Speedy added: half again cost and speed.
  • Player starts with only 30 cr, towers costs are reduced, tower ability costs reduced.
  • Simple map's mapproperties changed around, possibly balanced (?!?!), and end wave added.
  • localdefs.genEnemyImageArray changed to load different images for each type.
  • Tower abilities now check to see if player has the needed credits to upgrade.
  • Now, when a Tower is selected and showing its abilities as icons, you can move the cursor over an icon and it will display the name and cost/profit for the option.
  • Ability icons' info now is restricted to the screen.
  • Fixed new issue with using upgrades.

Links

Home Page
https://sourceforge.net/projects/ppgtd/
Source
http://sourceforge.net/projects/ppgtd/files/src076.zip/download

Releases

Python PyGame Tower Defence 0.8.0 — 10 Mar, 2012

Python PyGame Tower Defence 0.8.1 — 14 Apr, 2012

Python PyGame Tower Defence 0.8.5 — 18 Nov, 2012

Python PyGame Tower Defence 0.8.3 — 15 Jun, 2012

Python PyGame Tower Defence 0.5.2 — 25 Feb, 2010

Python PyGame Tower Defence 0.2.4 — 7 Oct, 2009

Python PyGame Tower Defence 0.3.5 — 14 Oct, 2009

Python PyGame Tower Defence 0.2.1 — 6 Oct, 2009

Python PyGame Tower Defence 0.3.4 — 13 Oct, 2009

Python PyGame Tower Defence 0.3.2 — 12 Oct, 2009

Python PyGame Tower Defence 0.2.6 — 8 Oct, 2009

Python PyGame Tower Defence 0.3.0 — 11 Oct, 2009

Python PyGame Tower Defence 0.2.2 — 6 Oct, 2009

Python PyGame Tower Defence 0.5.7 — 1 Apr, 2010

Python PyGame Tower Defence 0.5.0 — 21 Feb, 2010

Python PyGame Tower Defence 0.5.1 — 25 Feb, 2010

Python PyGame Tower Defence 0.7.7 — 28 Jan, 2011

Python PyGame Tower Defence 0.7.5 — 9 Jan, 2011

Python PyGame Tower Defence 0.7.6 — 13 Jan, 2011

Python PyGame Tower Defence 0.5.6 — 14 Mar, 2010

Python PyGame Tower Defence 0.5.5 — 11 Mar, 2010

Python PyGame Tower Defence 0.5.3 — 2 Mar, 2010

Python PyGame Tower Defence 0.5.4 — 9 Mar, 2010

Python PyGame Tower Defence 0.8.6 — 17 Dec, 2012

Python PyGame Tower Defence 0.8.7 — 27 Aug, 2013

Pygame.org account Comments

  • Bemoniri 2012-01-06 14:21

    is there a way to win?:d

    James Lu 2012-06-17 21:56

    me too

  • Dylan Raub 2012-06-16 15:14

    Good to see you are still working on this! Good on ya, mate :D

  • James Lu 2012-06-17 21:55

    i'll upload my music soon
    when i get on win7...
    win 8 i can't do it, i secured it.

  • Steve 2012-06-19 02:20

    Rewards.py is missing from the latest build... I can't get it to run even if I grab Rewards.py from an older build though... will have a tinker with it and see if I can figure out why not...

    Steve 2012-06-19 02:26

     Got it running, that was my fault... but Rewards.py is def. missing

  • Austin 2012-06-19 02:26

    Thanks for the support, Dylan!

    Steve, Rewards.py isn't used in version 0.8.3. I replaced that whole mess with the Player Upgrade Screen, accessed by right-clicking on the XP Bar. If you're getting an import error, just remove the "import Random" line near the top of localdefs.py. I think that's the only one I missed.

    Thanks for all the feedback, guys!

  • A faggot 2012-07-09 12:43

    cool

  • sipiatti 2012-07-10 08:08

    ImportError: No module named Rewards
    It seems one file missed from the zipball?

  • Mich Nannings 2012-11-27 14:49

    it works nice, didnt find any bugs

  • wcb98 2013-10-08 01:30

    Great Game, but can you include python 3 builds?

  • Henry oven 2019-07-27 18:47

    Python is giving error on my laptop. My laptop has really slowed down, I think it has a virus. basketball legends

    Dan Chavarria 2019-07-27 19:01

    It was one of the games you played the most years ago, pyhon. I can't take time off now. get on top