コード例 #1
0
ファイル: leveldata.py プロジェクト: iptq/planar
def testTut2():
    return Level((4,8),[
    Block([0,2],[
        Segment(0,0,0,0),
        Segment(3,0,0,0),
        Segment(0,2,0,0),
        Segment(3,2,0,0),
        Segment(0,0,1,0),
        Segment(3,0,1,0),
        Segment(0,2,1,0),
        Segment(3,4,0,0),
        Segment(0,4,1,0),
        Segment(3,4,1,0)
    ], False, constants.DIRECTION_BOTH, [0, 0, 0]),
    Block((1, 5), [
        Segment(0, 0, 0, 0),
        Segment(1, 0, 0, 4),
        Segment(0, 0, 1, 0),
        Segment(1, 0, 1, 4)
    ], True, constants.DIRECTION_HORIZONTAL, [255, 10, 100]),
     Block((1, 3), [
        Segment(0, 0, 0, 3),
        Segment(1, 0, 0, 0),
        Segment(0, 0, 1, 3),
        Segment(1, 0, 1, 0)
    ], True, constants.DIRECTION_HORIZONTAL, [10, 255, 100])
], [
    Player(1, 7, 0, [66, 134, 244]),
    Player(1, 7, 1, [244, 83, 65])
], [
    (0,0,0),
    (0,0,1)
])
コード例 #2
0
def test1():
    block = Block((3, 3), [
        Segment(0, 0, 0, 1),
        Segment(0, 1, 0, 0),
    ], True, constants.DIRECTION_VERTICAL, [255, 10, 100])
    block2 = Block((3, 3), [
        Segment(0, 0, 0, 3),
        Segment(1, 0, 0, 0),
    ], True, constants.DIRECTION_HORIZONTAL, [10, 255, 100])
    return Level((8, 8), [block, block2], [
        Player(5, 5, 0, [66, 134, 244]),
        Player(5, 5, 1, [244, 83, 65]),
    ])
コード例 #3
0
def testshit():
    block = Block(
        (4, 4),
        [Segment(0, 0, 0, 1),
         Segment(0, 1, 0, 0),
         Segment(0, 2, 0, 3)], True, constants.DIRECTION_VERTICAL,
        [255, 10, 100])
    block2 = Block((4, 4), [
        Segment(0, 0, 0, 3),
        Segment(1, 0, 0, 0),
        Segment(1, 0, 1, 0),
        Segment(0, -1, 0, 2),
        Segment(1, -1, 0, 0)
    ], True, constants.DIRECTION_HORIZONTAL, [10, 255, 100])
    block3 = Block(
        (4, 2), [Segment(0, 0, 0, 2), Segment(0, 1, 0, 4)], True,
        constants.DIRECTION_VERTICAL, [25, 160, 10])
    block4 = Block(
        (2, 2),
        [Segment(0, 0, 0, 3),
         Segment(1, 0, 0, 0),
         Segment(2, 0, 0, 4)], True, constants.DIRECTION_HORIZONTAL,
        [200, 100, 10])
    block5 = Block(
        (2, 2), [Segment(0, 0, 0, 1), Segment(0, 1, 0, 0)], True,
        constants.DIRECTION_VERTICAL, [10, 10, 200])
    block6 = Block(
        (2, 6),
        [Segment(0, 0, 0, 2),
         Segment(1, 0, 0, 0),
         Segment(2, 0, 0, 1)], True, constants.DIRECTION_HORIZONTAL,
        [100, 200, 200])
    block7 = Block(
        (2, 5),
        [
            #Segment(0, 0, 0, 0),
            Segment(0, 1, 0, 4)
        ],
        True,
        constants.DIRECTION_VERTICAL,
        [200, 200, 10])
    immovable = Block((0, 0), [
        Segment(0, 7, 0, 0),
        Segment(1, 7, 0, 0),
        Segment(2, 7, 0, 0),
        Segment(5, 2, 0, 0),
        Segment(6, 2, 0, 0),
        Segment(7, 2, 0, 0)
    ], True, constants.DIRECTION_BOTH, [0, 0, 0])
    return Level(
        (8, 8),
        [block, block2, block3, block4, block5, block6, block7, immovable],
        [Player(6, 6, 0, [66, 134, 244]),
         Player(6, 6, 1, [244, 83, 65])], [(0, 0, 0), (0, 0, 1)])
コード例 #4
0
ファイル: leveldata.py プロジェクト: iptq/planar
def testTut():
    return Level((3,7),[
    Block([1,3],[
        Segment(0,0,0,0),
        Segment(1,0,0,4)
    ], True, constants.DIRECTION_HORIZONTAL, [255, 10, 100]),
    Block([2,4],[
        Segment(0,0,0,2),
        Segment(0,1,0,0)
    ], True, constants.DIRECTION_VERTICAL, [105, 210, 50]),
    Block([0,4],[
        Segment(0,0,1,1),
        Segment(0,1,1,0)
    ], True, constants.DIRECTION_VERTICAL, [35, 150, 100]),
    Block([0,2],[
        Segment(0,0,0,0)
    ], False, constants.DIRECTION_BOTH, [0, 0, 0]),
    Block([2,2],[
        Segment(0,0,1,0)
    ], False, constants.DIRECTION_BOTH, [0, 0, 0]),
    Block([0,3],[
        Segment(0,0,1,3),
        Segment(1,0,1,0)
    ], True, constants.DIRECTION_HORIZONTAL, [25, 120, 10]),
], [
    Player(1, 6, 0, [66, 134, 244]),
    Player(1, 6, 1, [244, 83, 65])
], [
    (1,0,0),
    (1,0,1)
])
コード例 #5
0
ファイル: levels.py プロジェクト: iptq/planar
    def update(self, events):
        for event in events:
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_ESCAPE:
                    self.game.pop_state()
                elif event.key == pygame.K_1:
                    level = Level((10, 10), [
                        Block([Segment(3, 3, 0, 1),
                               Segment(3, 4, 0, 0)], True, 0, [255, 10, 100])
                    ])
                    level.add_player(Player(5, 5, 0, [66, 134, 244]))
                    level.add_player(Player(5, 5, 1, [244, 83, 65]))

                    self.game.push_state(GameState(level))
コード例 #6
0
 def object_hook(self, obj):
     if "type" in obj:
         t = obj["type"]
         if t == "segment":
             return Segment(obj["rx"], obj["ry"], obj["z"], obj["t"])
         elif t == "block":
             return Block((obj["x"], obj["y"]),
                          self.object_hook(obj["segments"]), obj["movable"],
                          obj["direction"], obj["color"])
         elif t == "level":
             return Level((obj["w"], obj["h"]),
                          self.object_hook(obj["blocks"]),
                          self.object_hook(obj["players"]), obj["goals"])
         elif t == "player":
             return Player(obj["x"], obj["y"], obj["z"], obj["color"])
     return obj
コード例 #7
0
ファイル: editor.py プロジェクト: iptq/planar
 def add_block(self):
     color = [max(0,min(255,self.cinputs[0].num)), \
             max(0,min(255,self.cinputs[1].num)), \
             max(0,min(255,self.cinputs[2].num))]
     for block in self.level.blocks:
         same = True
         for ix in range(len(color)):
             if block.color[ix] != color[ix]:
                 same = False
                 break
         if same:
             return
     pos = self.active_segment.position
     block = Block(pos, [], True, constants.DIRECTION_HORIZONTAL, color)
     self.level.add_block(block)
     xinput = constants.SCREEN_WIDTH * .66
     yinput = self.yoff
     self.buttons.append(
         Button(xinput, yinput+90 + 35 * (len(self.buttons)-8), 170, 30, \
                str(block.color), self.change_block, color=block.color, val=block, right=self.delete_block)
     )
     self.change_block(block)
コード例 #8
0
ファイル: editor.py プロジェクト: iptq/planar
    def __init__(self, init_level=None):
        if init_level:
            self.level = init_level
        else:
            self.level = Level((5, 5), [], [], [])
        seg = Segment(0, 0, 0, 0)
        self.ghost = Block((0, 0), [seg], True, constants.DIRECTION_HORIZONTAL,
                           [1, 1, 1])
        seg.block = self.ghost
        self.scale = scale = min(int((constants.SCREEN_WIDTH*.66) // (2 * self.level.dim[0] + 6)), \
                                 int((constants.SCREEN_WIDTH*.66) // (2 * self.level.dim[1] + 6)))
        self.yoff = constants.SCREEN_HEIGHT / 2 - (self.level.dim[1] +
                                                   4) * self.scale / 2
        xinput = constants.SCREEN_WIDTH * .66
        yinput = self.yoff
        self.filename = TextInputBox(constants.SCREEN_WIDTH * 2 // 5,
                                     20,
                                     100,
                                     30,
                                     text="Filename.txt")
        self.cinputs = [InputBox(xinput, yinput-70, 140, 30), InputBox(xinput, yinput-30, 140, 30), \
                        InputBox(xinput, yinput+10, 140, 30)]
        self.dinputs = [
            InputBox(220,
                     constants.SCREEN_HEIGHT * .75,
                     200,
                     30,
                     text="5",
                     minval=1,
                     maxval=16),
            InputBox(220,
                     constants.SCREEN_HEIGHT * .75 + 40,
                     200,
                     30,
                     text="5",
                     minval=1,
                     maxval=16)
        ]
        self.texts = [
            TextBox(xinput, yinput - 100, 120, 20, "New Color"),
            TextBox(xinput, yinput + 50, 10, 20, "Col:"),
            TextBox(10, yinput - 70, 50, 30, "0"),
            TextBox(xinput + 50, yinput + 50, 100, 20, "None")
        ]
        self.buttons = [
            Button(xinput + 130, yinput - 100, 50, 30, "Add", self.add_block),
            Button(10, yinput - 30, 50, 30, "0", self.change_type, val=0),
            Button(70, yinput - 30, 50, 30, "1", self.change_type, val=1),
            Button(130, yinput - 30, 50, 30, "2", self.change_type, val=2),
            Button(190, yinput - 30, 50, 30, "3", self.change_type, val=3),
            Button(250, yinput - 30, 50, 30, "4", self.change_type, val=4),
            Button(10, constants.SCREEN_HEIGHT * .75, 200, 30,
                   "Change Direction", self.change_direction),
            Button(10, constants.SCREEN_HEIGHT * .75 + 40, 200, 30,
                   "Change Moveable", self.change_moveable)
        ]
        self.active_block = None
        self.active_segment = seg

        self.ghost_loc = None
        self.ghost_t = 0
        self.states = ["normal"]
コード例 #9
0
ファイル: leveldata.py プロジェクト: iptq/planar
def test3():
    return Level((11,11),[
    Block([0,0],[
        #Segment(2,0,0,0),
        Segment(4,0,0,0),
        Segment(6,0,0,0),
        Segment(8,0,0,0),
        Segment(10,0,0,0),
        Segment(0,2,0,0),
        Segment(2,2,0,0),
        Segment(4,2,0,0),
        Segment(6,2,0,0),
        Segment(8,2,0,0),
        Segment(10,2,0,0),
        Segment(0,4,0,0),
        Segment(2,4,0,0),
        Segment(4,4,0,0),
        Segment(6,4,0,0),
        Segment(8,4,0,0),
        Segment(10,4,0,0),
        Segment(0,6,0,0),
        Segment(2,6,0,0),
        Segment(4,6,0,0),
        Segment(6,6,0,0),
        Segment(8,6,0,0),
        Segment(10,6,0,0),
        Segment(0,8,0,0),
        Segment(2,8,0,0),
        Segment(4,8,0,0),
        Segment(6,8,0,0),
        Segment(8,8,0,0),
        Segment(10,8,0,0),
        Segment(0,10,0,0),
        Segment(2,10,0,0),
        Segment(4,10,0,0),
        Segment(6,10,0,0),
        Segment(8,10,0,0),
        Segment(10,10,0,0),
        #Segment(2,0,1,0),
        Segment(4,0,1,0),
        Segment(6,0,1,0),
        Segment(8,0,1,0),
        Segment(10,0,1,0),
        Segment(0,2,1,0),
        Segment(2,2,1,0),
        Segment(4,2,1,0),
        Segment(6,2,1,0),
        Segment(8,2,1,0),
        Segment(10,2,1,0),
        Segment(0,4,1,0),
        Segment(2,4,1,0),
        Segment(4,4,1,0),
        Segment(6,4,1,0),
        Segment(8,4,1,0),
        Segment(10,4,1,0),
        Segment(0,6,1,0),
        Segment(2,6,1,0),
        Segment(4,6,1,0),
        Segment(6,6,1,0),
        Segment(8,6,1,0),
        Segment(10,6,1,0),
        Segment(0,8,1,0),
        Segment(2,8,1,0),
        Segment(4,8,1,0),
        Segment(6,8,1,0),
        Segment(8,8,1,0),
        Segment(10,8,1,0),
        Segment(0,10,1,0),
        Segment(2,10,1,0),
        Segment(4,10,1,0),
        Segment(6,10,1,0),
        Segment(8,10,1,0),
        Segment(10,10,1,0),
        Segment(7,7,0,0),
        Segment(7,7,1,0),
        Segment(5,5,0,0),
        Segment(5,5,1,0),
        Segment(3,1,0,0),
        Segment(3,1,1,0),
        Segment(1,5,0,0),
        Segment(1,5,1,0)
    ], False, constants.DIRECTION_HORIZONTAL, [0, 0, 0]),
    Block((9, 9), [
        Segment(0, 0, 0, 0),
        Segment(0, 0, 1, 0),
        Segment(0,-6, 0, 0),
        Segment(0, -6, 1, 0),
        Segment(0, -8, 0, 0),
        Segment(0, -8, 1, 0),
        Segment(-2, -6, 0, 0),
        Segment(-2, -6, 1, 0),
        Segment(-4,-8,0,0),
        Segment(-4,-8,1,0),
        Segment(-8,-6,0,0),
        Segment(-8,-6,1,0),
        Segment(-4,0,0,0),
        Segment(-4,0,1,0),

        Segment(-8,0,0,0),
        Segment(-8,0,1,0),
        Segment(-6,-2,0,0),
        Segment(-6,-2,1,0),

        Segment(-6,-6,0,0),
        Segment(-6,-6,1,0),
        Segment(-7,-9,1,0),
        Segment(-7,-9,0,0)
    ], True, constants.DIRECTION_HORIZONTAL, [255, 10, 100]),
    Block((9, 5), [
        Segment(0, 0, 0, 0),
        Segment(0, 0, 1, 0),
        Segment(0, 2, 0, 0),
        Segment(0, 2, 1, 0),
        Segment(-2, -4, 0, 0),
        Segment(-2, -4, 1, 0),
        Segment(-2,4,0,0),
        Segment(-2,4,1,0),
        Segment(-2,0,0,0),
        Segment(-2,0,1,0),
        Segment(-4,2,0,0),
        Segment(-4,2,1,0),
        Segment(-6,0,0,0),
        Segment(-6,0,1,0),
        Segment(-8,2,0,0),
        Segment(-8,2,1,0),
        Segment(-8,4,0,0),
        Segment(-8,4,1,0),
        Segment(-4,-2,0,0),
        Segment(-4,-2,1,0),
        Segment(-6,4,0,0),
        Segment(-6,4,1,0)
    ], True, constants.DIRECTION_VERTICAL, [25, 160, 10])
], [
    Player(9, 0, 0, [66, 134, 244]),
    Player(10, 9, 1, [244, 83, 65])
], [
    (0,0,0),
    (0,0,1)
])
コード例 #10
0
ファイル: leveldata.py プロジェクト: iptq/planar
def test2():
    return Level((8, 8), [
    Block([6,5],[
        Segment(0, -1, 0, 2),
        Segment(0, 0, 0, 0),
    ], True, constants.DIRECTION_VERTICAL, [255, 10, 100]),
    Block([6,3],[
        Segment(0, 0, 1, 4),
        Segment(-1, 0, 1, 0),
        Segment(0, 0, 0, 4),
        Segment(-1, 0, 0, 0),
        Segment(-2,0,0,2),
        Segment(-2,0,1,2)
    ], True, constants.DIRECTION_HORIZONTAL, [0, 255, 100]),
    Block([6,2],[
        Segment(0, 0, 1, 4),
        Segment(0, -1, 1, 0),
        Segment(0, 0, 0, 4),
        Segment(0, -1, 0, 0)
    ], True, constants.DIRECTION_VERTICAL, [20, 25, 100]),
    Block([7,4],[
        Segment(0,0,0,0),
        Segment(0,0,1,0),
        Segment(0,1,0,0),
        Segment(0,1,1,0),
        Segment(0,2,0,0),
        Segment(0,2,1,0),
        Segment(0,3,0,0),
        Segment(0,3,1,0)
    ], False, constants.DIRECTION_BOTH, [0,0,0]),
    Block([3,5],[
        Segment(0,0,0,4),
        Segment(0,0,1,4),
        Segment(-1,0,0,0),
        Segment(-1,0,1,0),
        Segment(-2,0,0,0),
        Segment(-2,0,1,0)
    ], True, constants.DIRECTION_HORIZONTAL, [110,30,230]),
    Block([2,0],[
        Segment(0,0,0,0),
        Segment(0,0,1,0),
        Segment(0,1,0,0),
        Segment(0,1,1,0),
        Segment(0,2,0,0),
        Segment(0,2,1,0),
        Segment(0,3,0,0),
        Segment(0,3,1,0)
    ], False, constants.DIRECTION_BOTH, [0,0,0]),
    Block([3,5],[
        Segment(0,0,0,2),
        Segment(0,1,0,0),
    ], True, constants.DIRECTION_VERTICAL, [240,50,60]),
    Block([3,3],[
        Segment(0,0,1,4),
        Segment(0,-1,1,0)
    ], True, constants.DIRECTION_VERTICAL, [120,220,20]),
    Block([4,4],[
        Segment(0,0,0,0),
        Segment(0,0,1,0),
        Segment(0,1,0,0),
        Segment(0,1,1,0),
        Segment(0,2,0,0),
        Segment(0,2,1,0),
        Segment(0,3,0,0),
        Segment(0,3,1,0)
    ], False, 0 , [0,0,0])
], [
    Player(5, 5, 0, [66, 134, 244]),
    Player(5, 5, 1, [244, 83, 65])
], [
    (0,0,0),
    (0,0,1)
])