From 90a11e9ed30f54ca89dba751d328eb44ce7cc551 Mon Sep 17 00:00:00 2001 From: Sakse Dalum Date: Tue, 7 Aug 2012 21:23:10 +0200 Subject: [PATCH] Added tiles. --- resources/graphics/tiles/ground1.png | Bin 0 -> 5891 bytes resources/graphics/tiles/ground2.png | Bin 0 -> 5767 bytes robotgame.py | 11 +++++++-- robotgame/game.py | 7 +++--- robotgame/level1.py | 30 ++++++++++++++++++++++- robotgame/main_menu.py | 2 +- robotgame/player.py | 4 ++- robotgame/tile.py | 35 +++++++++++++++++++++++++++ robotgame/worldobject.py | 3 ++- 9 files changed, 83 insertions(+), 9 deletions(-) create mode 100644 resources/graphics/tiles/ground1.png create mode 100644 resources/graphics/tiles/ground2.png create mode 100644 robotgame/tile.py diff --git a/resources/graphics/tiles/ground1.png b/resources/graphics/tiles/ground1.png new file mode 100644 index 0000000000000000000000000000000000000000..e20bcea7ffac97fc3a7b163c5bf62fc6e12380ca GIT binary patch literal 5891 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 +I;ui+9+zRxdWzYT*?n+%NhPN&_K2Y9X%5* zx68Q*L4RHBd(#y^phKv9@FYg9N0 z*H>1W8~qmvgkoqDz@5*X>DFjNrgg=nz70*W8?IJWmEUMl2jC(slih3rLO?fp)h4;WPQe1F*-eML9Onyq&!S z^yhE_XOcOtuD2eucb@boGuX8ZpHD8XpM?WB^k2~43tf<}e9!i;w!e=1X}{<%dw?5L z$>C9&c93nv37i?4HMFScvLZ}hRfA&*kk7v2>yP(E4P01>I35vR7F*fOg#Llie~kb~ zYt&1Fov91-cO|lQ8dyeu*WQMO0o}pu+Nrf)#hqCZsx6#IIdc1!>%O)LNaB*El>?_B`rSjtm&?Lr^DF1r-UB~^y-S^w=-6jWa zDmy~EBczL%e;^0Oj`B9>1mPfkK<@A3PLz(H5^XA@On|esbnRuSEkEC;8^?!fx%|Ts z(Daaxz4h@B4nWd8n?^9t1bR6d@S^JB?)$|1!oIqO>D>t)Qq{wvjA+L~H~&{BfHLkG zIS}Y~G!PMBo*4Rc4g~s*oBvYj>!cn)f6rbH{nI1>qtMR?h8)lj+doqj@bvlCwKbQ| zjMHWBvr9u?R208neyg<}Yu0kRu!ecJp2z=J2MICZ%FtIBYNaScf*&CIyPQC3u7_TM zINbb0Y?2Q8rOkh!AL9X|gU91t&~Jhm*Bb^X)n-|TwE3UU z@UQF2YSS9R0eEF1(SFn8G)P%TaYYg+*{*ujtqC1g=U!VynHE=pnwsr5xO=;mAumME z77OP#muBhfs>eTDhn9z^uvb!Cc`$F-Gn@va67(TUgI~3UqyKihWrJG{_9On8Bm-IO z*z2QbfbLEDi-gIeSS}q1Ez01Bz$a3grCa}$1uk*etOU60bE5++_*e%_c=jWet9$=X+t{IMgZ6+}UTIFLr9YjNU zJ0+GIc1MACtr|jxCibK}z;<$o2M0V>Ci9xZvu_(1h_YX;hP3-_f*b7fN+Cfj_`B4VqMqrXRI9x4)}5chCBc~)Y+|b zAnwBtOt3CoAoT0yH*^;Wf=+l=endZoOT5EfDMVd0z+_tCp>|%$H!%aGM23{*@Y-ge zta~e47**wq1G{qrpm@D|53Yjnzpq5nZyN!@+O_o?PGHI?pI7Xa_T3#xa4`gzh|9YY zP4=plDYM}@2HNNlU0JReV?;zHF^0rK?gF8UZw8#D1Wnu~Mwp6nV3aqA;e`W5E7>%i zgL{MahFHYY?-&EsS}A9I`h2^+j7ifI9CmhwjyH%*00(_*=Q(wA`A=gkg&*6cJJOf` z2WDnr^?~|gd^WRgu+Dxcn-!MX{5S?$q1y=7NLZ2lqF*x{ilMAB_5|R}P$u@Z4T)QV z1CDkwngfUaX1rRwI{QywAn&zk?BP%(07HgCznraR|0ssz;y@FK(gvG_2|)mO#>u5n zBKi?cFY}b@+35rR*mZy&2eQ@TjEzO%&!ny={URQqZi6*t6gQ_7(9fk`7G?GJz|6C% zDxg1VnA+uR4k?txwoJuDt$(Jcf&C%q0gBr)?ufyAb7}{A#u9mY(;f*9*jIOwNC38Q z--^IH`fs#a7lg?NI*Q$t;¥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 FV1nP^4m|(> literal 0 HcmV?d00001 diff --git a/robotgame.py b/robotgame.py index dde222c..3319a37 100755 --- a/robotgame.py +++ b/robotgame.py @@ -62,11 +62,18 @@ if __name__ == '__main__': action='store_const', const=True, default=False, - help="specifies the resolution of the game") + help="toggles fullscreen") + parser.add_argument('-n', + '--disable-music', + action='store_const', + const=True, + default=False, + help="disables in-game music") args = vars(parser.parse_args()) resolution = tuple([int(x) for x in args['resolution'].split('x')]) fullscreen = bool(args['fullscreen']) + disable_music = bool(args['disable_music']) print("Display width: %d, display height: %d, fullscreen: %s" % (resolution[0], resolution[1], fullscreen)) @@ -78,5 +85,5 @@ if __name__ == '__main__': window = pygame.display.set_mode(resolution, pygame.FULLSCREEN if fullscreen else 0) - game = robotgame.game.Game(window) + game = robotgame.game.Game(window, disable_music) game.start() diff --git a/robotgame/game.py b/robotgame/game.py index a17f470..803a3fd 100644 --- a/robotgame/game.py +++ b/robotgame/game.py @@ -34,7 +34,7 @@ import game_menu class Game(object): """Create an object to handle the game.""" - def __init__(self, window, running=False, speed=30): + def __init__(self, window, disable_music, running=False, speed=30): self.__dict__.update(locals()) self.objs = [] @@ -61,7 +61,8 @@ class Game(object): os.path.abspath(os.path.join("resources", "music")), ["basshit.ogg"]) self.jukebox.stop() - self.jukebox.play() + if not self.disable_music: + self.jukebox.play() def run(self): t = pygame.time.get_ticks() @@ -92,7 +93,7 @@ class Game(object): self.stop() # Keep the music playing! - if not pygame.mixer.music.get_busy(): + if not pygame.mixer.music.get_busy() and not self.disable_music: self.jukebox.play() # Update all objects diff --git a/robotgame/level1.py b/robotgame/level1.py index ff7e87a..bfac077 100644 --- a/robotgame/level1.py +++ b/robotgame/level1.py @@ -24,15 +24,43 @@ The first level. """ +import os +import pygame + import level import player +import tile class Level1(level.Level): - def __init__(self): + def __init__(self, graphics_dir): + self.__dict__.update(locals()) + self.player = player.Player(200, 200) + self.tiles = [] + self.imgs = {} + + self.load() + + for i in range(0, 10): + for j in range(0, 10): + self.tiles.append( + tile.Tile(i*64, j*48, + self.imgs['ground%d' % (((i + j) % 2) + 1)])) + + def load(self): + """Load all resources used in the level.""" + tile_list = ['ground1', 'ground2'] + + for tile in tile_list: + self.imgs[tile] = pygame.image.load(os.path.join( + self.graphics_dir, 'tiles', '%s.png' % tile)) + def update(self, e, t, dt): self.player.update(e, t, dt) def draw(self, window): + for tile in self.tiles: + tile.draw(window) + self.player.draw(window) diff --git a/robotgame/main_menu.py b/robotgame/main_menu.py index d5fca8c..8179955 100644 --- a/robotgame/main_menu.py +++ b/robotgame/main_menu.py @@ -59,7 +59,7 @@ class MainMenu(object): for event in e: if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: - self.game.goto_level(level1.Level1()) + self.game.goto_level(level1.Level1(self.img_dir)) self.game.objs.remove(self) self.game.objs.append(game_menu.GameMenu(self.game, self.img_dir)) diff --git a/robotgame/player.py b/robotgame/player.py index b193ab7..4ea04e6 100644 --- a/robotgame/player.py +++ b/robotgame/player.py @@ -44,4 +44,6 @@ class Player(worldobject.WorldObject): self.move(-1, 0) def draw(self, window): - pygame.draw.circle(window, (255, 255, 255), (self.x, self.y), 20) + pygame.draw.circle(window, (255, 255, 255), (self.x + self.tile_x / 2, + self.y + self.tile_y / 2), + 20) diff --git a/robotgame/tile.py b/robotgame/tile.py new file mode 100644 index 0000000..7edea35 --- /dev/null +++ b/robotgame/tile.py @@ -0,0 +1,35 @@ +# This file is part of ROBOTGAME +# +# ROBOTGAME is free software: you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. +# +# ROBOTGAME is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# ROBOTGAME. If not, see . +# +# ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' +# +# worldobject.py +# -------------------- +# date created : Tue Aug 7 2012 +# copyright : (C) 2012 Sakse Dalum +# maintained by : Sakse Dalum + +""" +A generic world object. +""" + +import worldobject + +class Tile(worldobject.WorldObject): + def __init__(self, x, y, img): + self.__dict__.update(locals()) + worldobject.WorldObject.__init__(self, x, y) + + def draw(self, window): + window.blit(self.img, (self.x, self.y), (0, 0, self.tile_x, self.tile_y)) diff --git a/robotgame/worldobject.py b/robotgame/worldobject.py index f30f408..e48ab52 100644 --- a/robotgame/worldobject.py +++ b/robotgame/worldobject.py @@ -28,7 +28,8 @@ class WorldObject(object): def __init__(self, x, y, speed=5, tile_x=64, tile_y=48): self.__dict__.update(locals()) - self.move_x, self.move_y = self.x, self.y + self.move_x = self.x = self.x - (self.x % self.tile_x) + self.move_y = self.y = self.y - (self.y % self.tile_y) def move(self, move_x, move_y): if self.move_x == self.x and self.move_y == self.y: