Fucking megres
authorDavid Sharpe <decoydavid@gmail.com>
Sun, 11 May 2014 16:58:38 +0000 (18:58 +0200)
committerDavid Sharpe <decoydavid@gmail.com>
Sun, 11 May 2014 16:58:38 +0000 (18:58 +0200)
naja/scenes/credits.py
naja/scenes/game.py
naja/scenes/menu.py
naja/tests/test_utils.py [new file with mode: 0644]
naja/utils.py [new file with mode: 0644]
naja/widgets/board.py [new file with mode: 0644]
naja/widgets/game_bits.py [new file with mode: 0644]
naja/widgets/info_area.py [new file with mode: 0644]
naja/widgets/player_bits.py [new file with mode: 0644]
naja/widgets/text.py

index cd3ad5838ca75229620c02b4a960e678a41ce4d9..3f592df886d4e47cba49c431c61401e448aadc7f 100644 (file)
@@ -8,20 +8,23 @@ from naja.scenes.scene import Scene
 from naja.widgets.text import TextWidget
 from naja.events import SceneChangeEvent
 
-
 class CreditsScene(Scene):
 
     base_menu = None
 
     def __init__(self):
         super(CreditsScene, self).__init__()
-        self.widgets.append(TextWidget((10, 10), 'Credits',
-                            colour=(255, 255, 255)))
+        self.widgets.append(TextWidget((60, 10), 'Credits', fontsize=32,
+                            colour='white'))
+        self.widgets.append(TextWidget((60, 30),
+                                       'Your mom\n'
+                                       'A stranger', fontsize=32,
+                            colour='white'))
 
-    def set_base_menu(self, base_menu):
-        self.base_menu = base_menu
 
     def handle_event(self, ev):
         if ev.type == pgl.KEYUP and ev.key in (pgl.K_q, pgl.K_ESCAPE):
-            SceneChangeEvent.post(self.base_menu)
+            from naja.scenes.menu import MenuScene
+            menu_scene = MenuScene()
+            SceneChangeEvent.post(menu_scene)
             return
index 16be11ec8cbca0a3857aab6c5291566b24af66c0..b96120bd7690e307504895127c07d6423f588941 100644 (file)
@@ -2,10 +2,32 @@
 Gameboard scene.
 """
 
+import pygame.locals as pgl
+
 from .scene import Scene
+from .menu import MenuScene
+
+from naja.widgets.board import BoardWidget
+from naja.widgets.player_bits import PlayerBitsWidget
+from naja.widgets.game_bits import GameBitsWidget
+from naja.widgets.info_area import InfoAreaWidget
+
+from naja.events import SceneChangeEvent
 
 
 class GameScene(Scene):
     """
     Gameboard scene.
     """
+
+    def __init__(self):
+        super(GameScene, self).__init__()
+        self.widgets.append(PlayerBitsWidget())
+        self.widgets.append(BoardWidget())
+        self.widgets.append(GameBitsWidget())
+        self.widgets.append(InfoAreaWidget())
+
+    def handle_event(self, ev):
+        if ev.type == pgl.KEYUP and ev.key in (pgl.K_q, pgl.K_ESCAPE):
+            SceneChangeEvent.post(scene=MenuScene())
+            return
index b17f611234253b5ad9b69f1aacd1aebcf34eb5d9..96c8c7a5677e8374458a1f2d1694d0209f6d274a 100644 (file)
@@ -15,15 +15,13 @@ class MenuScene(Scene):
     def __init__(self):
         super(MenuScene, self).__init__()
         self.widgets.append(TextWidget((10, 10), 'Haai', fontsize=32,
-        self.widgets.append(TextWidget((10, 10), 'Naja',
-                            colour=(255, 255, 255)))
-        self.credits_menu = CreditsScene()
-        self.credits_menu.set_base_menu(self)
+                            colour='white'))
 
     def handle_event(self, ev):
         if ev.type == pgl.KEYUP and ev.key in (pgl.K_q, pgl.K_ESCAPE):
             QuitGameEvent.post()
             return
         if ev.type == pgl.KEYUP and ev.key is pgl.K_RETURN:
-            SceneChangeEvent.post(self.credits_menu)
+            credits_menu = CreditsScene()
+            SceneChangeEvent.post(credits_menu)
             return
diff --git a/naja/tests/test_utils.py b/naja/tests/test_utils.py
new file mode 100644 (file)
index 0000000..79feefe
--- /dev/null
@@ -0,0 +1,19 @@
+from unittest import TestCase
+
+import pygame
+
+from naja.utils import convert_colour
+
+
+class TestConvertColour(TestCase):
+    def setUp(self):
+        self.red = pygame.Color('red')
+
+    def test_pass_through(self):
+        self.assertEqual(self.red, convert_colour(self.red))
+
+    def test_tuple(self):
+        self.assertEqual(self.red, convert_colour((255, 0, 0)))
+
+    def test_string(self):
+        self.assertEqual(self.red, convert_colour('red'))
diff --git a/naja/utils.py b/naja/utils.py
new file mode 100644 (file)
index 0000000..a40b841
--- /dev/null
@@ -0,0 +1,11 @@
+import pygame
+
+
+def convert_colour(colour):
+    if isinstance(colour, pygame.Color):
+        return colour
+    if isinstance(colour, tuple):
+        return pygame.Color(*colour)
+    if isinstance(colour, basestring):
+        return pygame.Color(colour)
+    raise ValueError()
diff --git a/naja/widgets/board.py b/naja/widgets/board.py
new file mode 100644 (file)
index 0000000..c791a57
--- /dev/null
@@ -0,0 +1,19 @@
+"""
+Widget that holds the game tiles.
+"""
+
+from .base import Widget
+
+
+class BoardWidget(Widget):
+    """
+    Widget which holds all the tiles that make up the gameboard.
+    """
+    def __init__(self, pos, image=None):
+        super(BoardWidget, self).__init__(pos, (96, 96))
+
+    def prepare(self):
+        pass
+
+    def draw(self, surface):
+        surface.blit(self.surface, self.rect)
diff --git a/naja/widgets/game_bits.py b/naja/widgets/game_bits.py
new file mode 100644 (file)
index 0000000..54fa683
--- /dev/null
@@ -0,0 +1,19 @@
+"""
+Widget that holds the games's bits.
+"""
+
+from .base import Widget
+
+
+class GameBitsWidget(Widget):
+    """
+    Widget which holds the game's bits.
+    """
+    def __init__(self, pos, image=None):
+        super(GameBitsWidget, self).__init__(pos, (96, 96))
+
+    def prepare(self):
+        pass
+
+    def draw(self, surface):
+        surface.blit(self.surface, self.rect)
diff --git a/naja/widgets/info_area.py b/naja/widgets/info_area.py
new file mode 100644 (file)
index 0000000..2f93311
--- /dev/null
@@ -0,0 +1,19 @@
+"""
+Widget for the game board information area.
+"""
+
+from .base import Widget
+
+
+class InfoAreaWidget(Widget):
+    """
+    Widget for the game board information area.
+    """
+    def __init__(self, pos, image=None):
+        super(InfoAreaWidget, self).__init__(pos, (96, 96))
+
+    def prepare(self):
+        pass
+
+    def draw(self, surface):
+        surface.blit(self.surface, self.rect)
diff --git a/naja/widgets/player_bits.py b/naja/widgets/player_bits.py
new file mode 100644 (file)
index 0000000..e82f173
--- /dev/null
@@ -0,0 +1,19 @@
+"""
+Widget that holds the player's bits.
+"""
+
+from .base import Widget
+
+
+class PlayerBitsWidget(Widget):
+    """
+    Widget which holds the player's bits.
+    """
+    def __init__(self, pos, image=None):
+        super(PlayerBitsWidget, self).__init__(pos, (96, 96))
+
+    def prepare(self):
+        pass
+
+    def draw(self, surface):
+        surface.blit(self.surface, self.rect)
index 12df393f1ff855c8a83aa8cd520c181f5ed19984..53030c55b8ad730c4a7725f07dc1bf9c5dcf1f52 100644 (file)
@@ -3,6 +3,7 @@ import pygame
 from naja.constants import FONT, FONT_SIZE
 from naja.widgets.base import Widget
 from naja.resources import resources
+from naja.utils import convert_colour
 
 
 class TextWidget(Widget):
@@ -13,7 +14,7 @@ class TextWidget(Widget):
         self.text = text
         self.fontname = fontname or FONT
         self.fontsize = (fontsize or FONT_SIZE) / 2
-        self.colour = colour or (0, 0, 0)
+        self.colour = convert_colour(colour or (0, 0, 0))
 
     def prepare(self):
         self.font = resources.get_font(self.fontname, self.fontsize)