Sections
Timeline
Sub-Sections
Download
Unified Diff
Zip Archive
Metanav
Preferences
About Trac
Links
Slowchop Studios
Gerald Kaszuba
Advertisement

Changeset 50

Show
Ignore:
Timestamp:
04/05/08 11:04:27 (8 months ago)
Author:
gak
Message:
 
Location:
muckaround/blobworld
Files:
2 added
3 modified

Legend:

Unmodified
Added
Removed
  • muckaround/blobworld/source/game.py

    r48 r50  
     1import random 
     2 
    13from video import Video 
    24from level import Level 
     5from player import HumanPlayer, ComputerPlayer 
     6from blobs import Blob 
    37 
    48from pyglet.gl import * 
     9 
     10 
     11def rand_pos(max_x, max_y): 
     12    return (random.uniform(0, max_x), random.uniform(0, max_y)) 
     13 
    514 
    615class Game(object): 
     
    1019        self.video = None 
    1120        self.level = None 
     21        self.human = None 
     22        self.renderable = True 
     23        self.players = [] 
     24 
     25    def spawn_players(self): 
     26        # Hard code to 1HUMAN v 1CPU 
     27        human = HumanPlayer(self, 'human') 
     28        self.players.append(human) 
     29        self.human = human 
     30        self.players.append(ComputerPlayer(self, 'computer')) 
     31 
     32        for p in self.players: 
     33            self.add_blob(p, rand_pos(self.level.width, self.level.height), 5) 
     34 
    1235 
    1336    def init_video(self): 
     
    2447 
    2548    def on_mouse_press(self, x, y, button, modifiers): 
    26         self.level.add_blob((x, y), 10) 
     49        self.add_blob(self.human, (x, y), 10) 
     50 
     51    def add_blob(self, owner, pos, radius): 
     52        blob = Blob(self, owner, pos, radius) 
     53        self.level.add_blob(blob) 
     54        owner.inform_blob_ownership(blob) 
    2755 
    2856    def render(self): 
  • muckaround/blobworld/source/level.py

    r48 r50  
    66from blobs import Blob 
    77 
     8 
    89class Level(object): 
    910 
    10     def __init__(self, game): 
     11    def __init__(self, game, width, height): 
    1112        self.game = game 
     13        self.width = width 
     14        self.height = height 
    1215        self.blobs = [] 
    1316 
     
    1619            b.think(dt) 
    1720 
    18     def add_blob(self, pos, radius): 
    19         b = Blob(pos, radius) 
    20         self.blobs.append(b) 
     21    def add_blob(self, blob): 
     22        self.blobs.append(blob) 
    2123 
    2224 
    2325class LevelRenderable(Level): 
    2426 
    25     def __init__(self, game): 
    26         Level.__init__(self, game) 
     27    def __init__(self, game, *args, **kwargs): 
     28        Level.__init__(self, game, *args, **kwargs) 
    2729        self.video = game.video 
    2830 
  • muckaround/blobworld/test.py

    r48 r50  
    1212    game = Game() 
    1313    game.init_video() 
    14     game.level = LevelRenderable(game) 
     14    game.level = LevelRenderable(game, 800, 600) 
     15    game.spawn_players() 
    1516 
    1617    last_think = time.time() 
     
    1819    fr = 1. / 30 
    1920    frames = 0 
    20  
    21     for a in xrange(100): 
    22         game.level.add_blob((random.random() * 640, random.random() * 480), 1) 
    2321 
    2422    while not game.video.window.has_exit: