コード例 #1
0
def readFlags(optFlags):
    if len(argv) > 3:
        flags = []
        for entry in argv[3:]:
            for flag in optFlags:
                if entry == flag.a_flag:
                    flags.append(copy.copy(flag))
                    break
                else:
                    flags.append(Flag.cFlag(entry, False, False, False, False))
                    break
    else:
        try:
            flagsdb = open(argv[1] + "/flags.db")
            flags = []
            try:
                for line in flagsdb:
                    for flag in optFlags:
                        if line.strip() == flag.a_flag:
                            flags.append(copy.copy(flag))
                    flags.append(
                        Flag.cFlag(line[:len(line) - 1], False, False, False,
                                   False))
            finally:
                flagsdb.close()
        except IOError:
            print(
                "Could not open flags.db and no flags passed as parameters. Continuing with no flags"
            )
            flags = [""]
    return flags
コード例 #2
0
ファイル: FlagStore.py プロジェクト: Matir/scorebot
 def add(self, team, name, value, score=None, answer=""):
     # todo - enforce global uniqueness of flags!!
     #initialize our score-keeping variables as new team names come in
     if self.teams.has_key(team):
         pass
     else:
         self.teams[team] = {}
     if self.theft.has_key(team):
         pass
     else:
         self.theft[team] = []
     if self.integrity.has_key(team):
         pass
     else:
         self.integrity[team] = []
     flag_name = "%s_%s" % (team, name)
     self.logger.out("Adding %s:%s:%s\n\tfor team %s\n" %
                     (flag_name, value, score, team))
     this_flag = Flag(team, flag_name, value, score, answer)
     flag_team = this_flag.get_team()
     flag_name = this_flag.get_name()
     flag_value = this_flag.get_value()
     self.logger.out("Set     %s:%s\n\tfor team %s\n" % \
                              (flag_name,flag_value,flag_team))
     if self.flags.has_key(name):
         old_value = self.flags[flag_name].get_value()
         self.logger.out("Clobbering team %s flag %s:%s with %s:%s\n" %
                         (team, name, old_value, flag_name, value))
     self.flags[flag_name] = this_flag
コード例 #3
0
ファイル: FlagStore.py プロジェクト: gRanger915/scorebot
 def add(self, team, name, value, score=None):
    #initialize our score-keeping variables as new team names come in
    if self.teams.has_key(team):
       pass
    else:
       self.teams[team] = {}
    if self.theft.has_key(team):
       pass
    else:
       self.theft[team] = []
    if self.integrity.has_key(team):
       pass
    else:
       self.integrity[team] = []
    flag_name = "%s_%s" % (team, name)
    self.logger.out("Adding %s:%s:%s\n\tfor team %s\n" %
                      (flag_name,value,score,team))
    this_flag = Flag(team, flag_name, value, score)
    flag_team = this_flag.get_team()
    flag_name = this_flag.get_name()
    flag_value = this_flag.get_value()
    self.logger.out("Set    %s:%s\n\tfor team %s\n" % \
                       (flag_name,flag_value,flag_team))
    if self.flags.has_key(name):
       old_value = self.flags[flag_name].get_value()
       self.logger.out("Clobbering team %s flag %s:%s with %s:%s\n" %
                       (team, name, old_value, flag_name, value))
    self.flags[flag_name] = this_flag
コード例 #4
0
ファイル: sensor_reader.py プロジェクト: pannxe/PocketFarm
def read_sensor():
    d_flag = Flag(open("sensor_data.flg", "w"))
    in_humi, in_temp = 66, 28
    out_humi, out_temp = 52, 35
    lumi, mois = 1, 740
    d_flag.set_stat([
        cf.Comp.INPUT, cf.Stat.ANSWERED, in_humi, in_temp, out_humi, out_temp,
        mois, lumi
    ])
    del d_flag
コード例 #5
0
def readOptFlags(path=argv[1]):
    #Let's read our data from Flag-notes.txt
    o1 = o2 = o3 = oS = False
    flagClass = []

    try:
        optFlags = open(path + "/Flag-notes.txt")
        try:
            for line in optFlags:
                text = line.strip()  # Avoid calling .strip multiple times
                """ Sadly we do not have a switch() function implemented in python..."""
                if text == "-o1/-o2/-o3:":
                    o1 = o2 = o3 = True
                    oS = False
                    continue
                elif text == "-o2/-o3/-os:":
                    o2 = o3 = oS = True
                    o1 = False
                    continue
                elif text == "-o2/-o3:":
                    o2 = o3 = True
                    oS = o1 = False
                    continue
                elif text == "-o3:":
                    o3 = True
                    o1 = o2 = oS = False
                    continue

                flagClass.append(Flag.cFlag(text, o1, o2, o3, oS))
        finally:
            optFlags.close()
    except IOError:
        print("Something went wrong opening flag-notes.txt")
        exit(-1)
    return flagClass
コード例 #6
0
    def __init__(self, gps=True, platform=True, cam=True, lidar=True):
        self.run_gps = gps
        self.run_platform = platform
        self.run_cam = cam
        self.run_lidar = lidar
        print("\nIntializing Database")
        print("──────────────────────────────────────────────────────────────────────────────────────────────────────────────────")
        self.flag = Flag()
        if gps:
            self.gps = GPS('COM2', 19200, flag=self.flag)
            self.__gps_thread = threading.Thread(target=self.gps.main)

        if platform:
            self.platform  = Platform('COM6', 115200, flag=self.flag)
            self.__platform_thread = threading.Thread(target=self.platform.main)

        if cam:
            self.main_cam = CAM(0, 'Main', flag=self.flag, params_cam=CAM0_PARMS)
            self.sub_cam = CAM(1, 'Sub', flag=self.flag, params_cam=CAM1_PARMS)
            self.__main_cam_thread = threading.Thread(target=self.main_cam.main)
            self.__sub_cam_thread = threading.Thread(target=self.sub_cam.main)

        if lidar:
            self.lidar = LiDAR('127.0.0.1', 7248, flag=self.flag)
            self.__lidar_thread = threading.Thread(target=self.lidar.main)

        print("──────────────────────────────────────────────────────────────────────────────────────────────────────────────────")
        print("Database is ready to run!")
コード例 #7
0
def main():
    menu()
    i = 0
    while (i == 0):
        Name_country = raw_input("please write your Name Country : ")
        image1 = Flag(Name_country)
        image1.getImage()
        image1.convertData()
        menu_reset()
        print "\n"
コード例 #8
0
from infi.systray import SysTrayIcon


@staticmethod
def createWindow():
    # Get current time
    currentDT = datetime.datetime.now()
    currentDT = currentDT.strftime("%H:%M")
    # Convert from military time
    hours, minutes = currentDT.split(":")
    hours, minutes = int(hours), int(minutes)
    setting = "AM"
    if hours > 12:
        setting = "PM"
        hours = hours - 12
    currentDT = str(hours) + ":" + str(minutes) + " " + setting
    window = PopUpWindow(currentDT)


if __name__ == "__main__":
    menu_options = (("Pop Up Window", None, createWindow()), )
    systray = SysTrayIcon("icon.ico", "Example tray icon", menu_options)
    systray.start()
    Flag.setFlag(0)
    while 0 == Flag.getFlag():
        createWindow()
        if Flag.getFlag() == 1:
            break
        print("See you in " + str(PopUpWindow.getPopUpCount()) + " minutes")
        time.sleep(PopUpWindow.getPopUpCount() * 60)
    print("GoodBye")
コード例 #9
0
ファイル: GPS.py プロジェクト: psw4482/HEVEN_Path_Planning
        try:
            tmp = tmp.split("$")[1]
            datas = tmp.split(',')
        except:
            datas = ["123123123123123"]

        if datas[0] == "GNRMC":
            try:
                t = float(datas[1])
                lad = float(datas[3])
                NS = datas[4]
                lon = float(datas[5])
                EW = datas[6]
                quality = datas[2]

                self.__data = [t, lad, NS, lon, EW, quality]
            except Exception as e:
                print(
                    "[GPS Running \tError] \t\tInvalid data is generated by GPS. Check GPS status:",
                    e)
                time.sleep(1)

    @property
    def data(self):
        return self.__data


if __name__ == "__main__":
    gps = GPS('COM3', 19200, Flag())
    gps.main()
コード例 #10
0
 def __init__(self, cr):
     DistributedObject.__init__(self, cr)
     Flag.__init__(self, 'flag')
コード例 #11
0
 def setDNAString(self, dnaStr):
     self.notify.debug('setDNAString: ' + ` dnaStr `)
     Flag.setDNAString(self, dnaStr)
     self.flatten()
コード例 #12
0
ファイル: imu.py プロジェクト: psw4482/HEVEN_Path_Planning
                self.__data = [roll, pitch, yaw, ax, ay, az]
            except Exception as e:
                print("[IMU Running \tError] \t\tInvalid data is generated by IMU. Check IMU status:", e)
                time.sleep(1)


    def __parse_imu2(self, data):
        tmp = ''.join(data)
        if data == ['\n']:
            return 0
        else:    
            try:
                tmp.replace('\r', '').replace('\n', '')
                datas = tmp.split(',')
                roll = float(datas[1])
                pitch = float(datas[2])
                yaw = float(datas[3])
                self.__data = [roll, pitch, yaw]
            except Exception as e:
                print("[IMU Running \tError] \t\tInvalid data is generated by IMU. Check IMU status:", e)
                time.sleep(1)
            
    
    @property
    def data(self):
        return self.__data

if __name__ == "__main__":
    imu = Imu('COM5', 115200, Flag())
    imu.main()
コード例 #13
0
ファイル: Board.py プロジェクト: spelinski/BoardGameAiEngine
 def __init__(self):
     """
     Constructor
     """
     self.flags = [Flag() for i in xrange(1, 10)]
コード例 #14
0
ファイル: DistributedFlag.py プロジェクト: TTGhost/POTCOR-src
 def setDNAString(self, dnaStr):
     self.notify.debug('setDNAString: ' + `dnaStr`)
     Flag.setDNAString(self, dnaStr)
     self.flatten()
コード例 #15
0
ファイル: sensor_reader.py プロジェクト: pannxe/PocketFarm
def ready_stat():
    ia_flag = Flag(open("ians.flg", "w"))
    ia_flag.set_stat([cf.Comp.INPUT, cf.Stat.READY, 0, 0, 0, 0, 0, 0])
    del ia_flag
コード例 #16
0
ファイル: sensor_reader.py プロジェクト: pannxe/PocketFarm
def write_stat():
    ia_flag = Flag(open("ians.flg", "w"))
    ia_flag.set_stat([cf.Comp.INPUT, cf.Stat.ANSWERED, 0, 0, 0, 0, 0, 0])
    del ia_flag
コード例 #17
0
class Map(object):
    """

    This class contains every map object: tiles, mobs and player. Also,
    there are camera, event and UI.

    """
    def __init__(self, worldNum):
        self.obj = []
        self.obj_bg = []
        self.tubes = []
        self.debris = []
        self.mobs = []
        self.whizbangs = []
        self.text_objects = []
        self.map = 0
        self.flag = None

        self.mapSize = (0, 0)
        self.sky = 0

        self.textures = {}
        self.worldNum = worldNum
        self.loadWorld_11()

        self.is_mob_spawned = [False, False]
        self.score_for_killing_mob = 100
        self.score_time = 0

        self.in_event = False
        self.tick = 0
        self.time = 400

        self.oPlayer = Player(x_pos=128, y_pos=351)
        self.oCamera = Camera(self.mapSize[0] * 32, 14)
        self.oEvent = Event()
        self.oGameUI = GameUI()

    def loadWorld_11(self):
        tmxData = load_pygame("worlds/1-1/W11.tmx")
        self.mapSize = (tmxData.width, tmxData.height)

        self.sky = pg.Surface((WINDOW_W, WINDOW_H))
        self.sky.fill((pg.Color('#5c94fc')))

        # 2D List
        self.map = [[0] * tmxData.height for i in range(tmxData.width)]

        layer_num = 0
        for layer in tmxData.visible_layers:
            for y in range(tmxData.height):
                for x in range(tmxData.width):

                    # Getting pygame surface
                    image = tmxData.get_tile_image(x, y, layer_num)

                    # It's none if there are no tile in that place
                    if image is not None:
                        tileID = tmxData.get_tile_gid(x, y, layer_num)

                        if layer.name == 'Foreground':

                            # 22 ID is a question block, so in taht case we shoud load all it's images
                            if tileID == 22:
                                image = (
                                    image,  # 1
                                    tmxData.get_tile_image(0, 15,
                                                           layer_num),  # 2
                                    tmxData.get_tile_image(1, 15,
                                                           layer_num),  # 3
                                    tmxData.get_tile_image(
                                        2, 15, layer_num)  # activated
                                )

                            # Map class has 1)"map" list, which is used in collision system because we can
                            # easily get block by x and y coordinate 2)"obj", "obj_bg" and simular arrays -
                            # they are used in rendering because you don't need to cycle through every
                            # (x, y) pair. Here we are adding the same platform object in 2 different arrays.
                            self.map[x][y] = Platform(x * tmxData.tileheight,
                                                      y * tmxData.tilewidth,
                                                      image, tileID)
                            self.obj.append(self.map[x][y])

                        elif layer.name == 'Background':
                            self.map[x][y] = BGObject(x * tmxData.tileheight,
                                                      y * tmxData.tilewidth,
                                                      image)
                            self.obj_bg.append(self.map[x][y])
            layer_num += 1

        # Tubes
        self.spawn_tube(28, 10)
        self.spawn_tube(37, 9)
        self.spawn_tube(46, 8)
        self.spawn_tube(55, 8)
        self.spawn_tube(163, 10)
        self.spawn_tube(179, 10)

        # Mobs
        self.mobs.append(Goombas(736, 352, False))
        self.mobs.append(Goombas(1295, 352, True))
        self.mobs.append(Goombas(1632, 352, False))
        self.mobs.append(Goombas(1672, 352, False))
        self.mobs.append(Goombas(5570, 352, False))
        self.mobs.append(Goombas(5620, 352, False))

        self.map[21][8].bonus = 'mushroom'
        self.map[78][8].bonus = 'mushroom'
        self.map[109][4].bonus = 'mushroom'

        self.flag = Flag(6336, 48)

    def reset(self, reset_all):
        self.obj = []
        self.obj_bg = []
        self.tubes = []
        self.debris = []
        self.mobs = []

        self.in_event = False
        self.flag = None
        self.sky = None
        self.map = None

        self.tick = 0
        self.time = 400

        self.mapSize = (0, 0)
        self.textures = {}
        self.loadWorld_11()

        self.get_event().reset()
        self.get_player().reset(reset_all)
        self.get_camera().reset()

    def get_name(self):
        if self.worldNum == '1-1':
            return '1-1'

    def get_player(self):
        return self.oPlayer

    def get_camera(self):
        return self.oCamera

    def get_event(self):
        return self.oEvent

    def get_ui(self):
        return self.oGameUI

    def get_blocks_for_collision(self, x, y):
        """

        Returns tiles around the entity

        """
        return (self.map[x][y - 1], self.map[x][y + 1], self.map[x][y],
                self.map[x - 1][y], self.map[x + 1][y], self.map[x + 2][y],
                self.map[x + 1][y - 1], self.map[x + 1][y + 1],
                self.map[x][y + 2], self.map[x + 1][y + 2],
                self.map[x - 1][y + 1], self.map[x + 2][y + 1],
                self.map[x][y + 3], self.map[x + 1][y + 3])

    def get_blocks_below(self, x, y):
        """

        Returns 2 blocks below entity to check its on_ground parameter

        """
        return (self.map[x][y + 1], self.map[x + 1][y + 1])

    def get_mobs(self):
        return self.mobs

    def spawn_tube(self, x_coord, y_coord):
        self.tubes.append(Tube(x_coord, y_coord))

        # Adding tube's collision just by spawning tiles inside the tube.
        # They will not render because we are adding them to "collision" list.
        for y in range(y_coord, 12):  # 12 because it's ground level.
            for x in range(x_coord, x_coord + 2):
                self.map[x][y] = Platform(x * 32,
                                          y * 32,
                                          image=None,
                                          type_id=0)

    def spawn_mushroom(self, x, y):
        self.get_mobs().append(Mushroom(x, y, True))

    def spawn_goombas(self, x, y, move_direction):
        self.get_mobs().append(Goombas(x, y, move_direction))

    def spawn_koopa(self, x, y, move_direction):
        self.get_mobs().append(Koopa(x, y, move_direction))

    def spawn_flower(self, x, y):
        self.mobs.append(Flower(x, y))

    def spawn_debris(self, x, y, type):
        if type == 0:
            self.debris.append(PlatformDebris(x, y))
        elif type == 1:
            self.debris.append(CoinDebris(x, y))

    def spawn_fireball(self, x, y, move_direction):
        self.whizbangs.append(Fireball(x, y, move_direction))

    def spawn_score_text(self, x, y, score=None):
        """

        This text appears when you, for example, kill a mob. It shows how many points
        you got.

        """

        # Score is none only when you kill a mob. If you got a killstreak,
        # amount of points for killing a mob will increase: 100, 200, 400, 800...
        # So you don't know how many points you should add.
        if score is None:
            self.text_objects.append(
                Text(str(self.score_for_killing_mob), 16, (x, y)))

            # Next score will be bigger
            self.score_time = pg.time.get_ticks()
            if self.score_for_killing_mob < 1600:
                self.score_for_killing_mob *= 2

        # That case for all other situations.
        else:
            self.text_objects.append(Text(str(score), 16, (x, y)))

    def remove_object(self, object):
        self.obj.remove(object)
        self.map[object.rect.x // 32][object.rect.y // 32] = 0

    def remove_whizbang(self, whizbang):
        self.whizbangs.remove(whizbang)

    def remove_text(self, text_object):
        self.text_objects.remove(text_object)

    def update_player(self, core):
        self.get_player().update(core)

    def update_entities(self, core):
        for mob in self.mobs:
            mob.update(core)
            if not self.in_event:
                self.entity_collisions(core)

    def update_time(self, core):
        """

        Updating a map time.

        """

        # Time updates only if map not in event
        if not self.in_event:
            self.tick += 1
            if self.tick % 40 == 0:
                self.time -= 1
                self.tick = 0
            if self.time == 100 and self.tick == 1:
                core.get_sound().start_fast_music(core)
            elif self.time == 0:
                self.player_death(core)

    def update_score_time(self):
        """

        When player kill mobs in a row, score for each mob
        will increase. When player stops kill mobs, points
        will reset to 100. This function updates these points.

        """
        if self.score_for_killing_mob != 100:

            # Delay is 750 ms
            if pg.time.get_ticks() > self.score_time + 750:
                self.score_for_killing_mob //= 2

    def entity_collisions(self, core):
        if not core.get_map().get_player().unkillable:
            for mob in self.mobs:
                mob.check_collision_with_player(core)

    def try_spawn_mobs(self, core):
        """

        These mobs will appear when player will reach the certain x-coordinate

        """
        if self.get_player().rect.x > 2080 and not self.is_mob_spawned[0]:
            self.spawn_goombas(2495, 224, False)
            self.spawn_goombas(2560, 96, False)
            self.is_mob_spawned[0] = True

        elif self.get_player().rect.x > 2460 and not self.is_mob_spawned[1]:
            self.spawn_goombas(3200, 352, False)
            self.spawn_goombas(3250, 352, False)
            self.spawn_koopa(3400, 352, False)
            self.spawn_goombas(3700, 352, False)
            self.spawn_goombas(3750, 352, False)
            self.spawn_goombas(4060, 352, False)
            self.spawn_goombas(4110, 352, False)
            self.spawn_goombas(4190, 352, False)
            self.spawn_goombas(4240, 352, False)
            self.is_mob_spawned[1] = True

    def player_death(self, core):
        self.in_event = True
        self.get_player().reset_jump()
        self.get_player().reset_move()
        self.get_player().numOfLives -= 1

        if self.get_player().numOfLives == 0:
            self.get_event().start_kill(core, game_over=True)
        else:
            self.get_event().start_kill(core, game_over=False)

    def player_win(self, core):
        self.in_event = True
        self.get_player().reset_jump()
        self.get_player().reset_move()
        self.get_event().start_win(core)

    def update(self, core):

        # All mobs
        self.update_entities(core)

        if not core.get_map().in_event:

            # When player eats a mushroom
            if self.get_player().inLevelUpAnimation:
                self.get_player().change_powerlvl_animation()

            # Unlike the level up animation, player can move there
            elif self.get_player().inLevelDownAnimation:
                self.get_player().change_powerlvl_animation()
                self.update_player(core)

            # Common case
            else:
                self.update_player(core)

        else:
            self.get_event().update(core)

        # Debris is 1) Particles which appears when player destroy a brick block
        # 2) Coins which appears when player activate a "question" platform
        for debris in self.debris:
            debris.update(core)

        # Player's fireballs
        for whizbang in self.whizbangs:
            whizbang.update(core)

        # Text which represent how mapy points player get
        for text_object in self.text_objects:
            text_object.update(core)

        # Camera stops moving when player dies or touches a flag
        if not self.in_event:
            self.get_camera().update(core.get_map().get_player().rect)

        self.try_spawn_mobs(core)

        self.update_time(core)
        self.update_score_time()

    def render_map(self, core):
        """

        Rendering only tiles. It's used in main menu.

        """
        core.screen.blit(self.sky, (0, 0))

        for obj_group in (self.obj_bg, self.obj):
            for obj in obj_group:
                obj.render(core)

        for tube in self.tubes:
            tube.render(core)

    def render(self, core):
        """

        Renders every object.

        """
        core.screen.blit(self.sky, (0, 0))

        for obj in self.obj_bg:
            obj.render(core)

        for mob in self.mobs:
            mob.render(core)

        for obj in self.obj:
            obj.render(core)

        for tube in self.tubes:
            tube.render(core)

        for whizbang in self.whizbangs:
            whizbang.render(core)

        for debris in self.debris:
            debris.render(core)

        self.flag.render(core)

        for text_object in self.text_objects:
            text_object.render_in_game(core)

        self.get_player().render(core)

        self.get_ui().render(core)
コード例 #18
0
def getAnswer():
    r_flag = Flag(open("request.flg", "r+"))
    a_flag = Flag(open("answer.flg", "r+"))
    b_flag = Flag(open("busy.flg", "r+"))

    # Wait until ready
    print("Getting b_flag data... ", end="")
    b_flag.get_data()
    while b_flag.is_busy():
        b_flag.get_data()
    print("Done")
    # Request data
    print("Set r_flag to REQUESTED... ", end="")
    r_flag.set_stat([cf.Comp.LINE, cf.Stat.REQUESTED, 0, 0, 0, 0, 0, 0])
    print("Done")

    while True:
        print("  Getting a_flag data... ")
        a_flag.get_data()
        print(f"    got --> {a_flag.buffer}")
        print("  Getting r_flag data... ")
        r_flag.get_data()
        print(f"    got --> {r_flag.buffer}")
        if a_flag.is_answered() and r_flag.buffer:
            print("  Set r_flag to ACQUIRED... ", end="")
            r_flag.set_stat([cf.Comp.LINE, cf.Stat.ACQUIRED, 0, 0, 0, 0, 0, 0])
            print("Done")
            d_flag = Flag(open("sensor_data.flg", "r"))
            buffer = d_flag.get_data()
            del r_flag
            del a_flag
            del b_flag
            return buffer
コード例 #19
0
ファイル: PopUpWindow.py プロジェクト: FIIRETURRET/BreakTimer
 def exitApp(self):
     Flag.setFlag(1)
     self.systray.shutdown()
     self.window.destroy()
コード例 #20
0
    def loadWorld_11(self):
        tmxData = load_pygame("worlds/1-1/W11.tmx")
        self.mapSize = (tmxData.width, tmxData.height)

        self.sky = pg.Surface((WINDOW_W, WINDOW_H))
        self.sky.fill((pg.Color('#5c94fc')))

        # 2D List
        self.map = [[0] * tmxData.height for i in range(tmxData.width)]

        layer_num = 0
        for layer in tmxData.visible_layers:
            for y in range(tmxData.height):
                for x in range(tmxData.width):

                    # Getting pygame surface
                    image = tmxData.get_tile_image(x, y, layer_num)

                    # It's none if there are no tile in that place
                    if image is not None:
                        tileID = tmxData.get_tile_gid(x, y, layer_num)

                        if layer.name == 'Foreground':

                            # 22 ID is a question block, so in taht case we shoud load all it's images
                            if tileID == 22:
                                image = (
                                    image,  # 1
                                    tmxData.get_tile_image(0, 15,
                                                           layer_num),  # 2
                                    tmxData.get_tile_image(1, 15,
                                                           layer_num),  # 3
                                    tmxData.get_tile_image(
                                        2, 15, layer_num)  # activated
                                )

                            # Map class has 1)"map" list, which is used in collision system because we can
                            # easily get block by x and y coordinate 2)"obj", "obj_bg" and simular arrays -
                            # they are used in rendering because you don't need to cycle through every
                            # (x, y) pair. Here we are adding the same platform object in 2 different arrays.
                            self.map[x][y] = Platform(x * tmxData.tileheight,
                                                      y * tmxData.tilewidth,
                                                      image, tileID)
                            self.obj.append(self.map[x][y])

                        elif layer.name == 'Background':
                            self.map[x][y] = BGObject(x * tmxData.tileheight,
                                                      y * tmxData.tilewidth,
                                                      image)
                            self.obj_bg.append(self.map[x][y])
            layer_num += 1

        # Tubes
        self.spawn_tube(28, 10)
        self.spawn_tube(37, 9)
        self.spawn_tube(46, 8)
        self.spawn_tube(55, 8)
        self.spawn_tube(163, 10)
        self.spawn_tube(179, 10)

        # Mobs
        self.mobs.append(Goombas(736, 352, False))
        self.mobs.append(Goombas(1295, 352, True))
        self.mobs.append(Goombas(1632, 352, False))
        self.mobs.append(Goombas(1672, 352, False))
        self.mobs.append(Goombas(5570, 352, False))
        self.mobs.append(Goombas(5620, 352, False))

        self.map[21][8].bonus = 'mushroom'
        self.map[78][8].bonus = 'mushroom'
        self.map[109][4].bonus = 'mushroom'

        self.flag = Flag(6336, 48)
コード例 #21
0
ファイル: DistributedFlag.py プロジェクト: TTGhost/POTCOR-src
 def __init__(self, cr):
     DistributedObject.__init__(self, cr)
     Flag.__init__(self, 'flag')
コード例 #22
0
    def start_battle(self, clock):
        pygame.display.set_caption("Fight!!")

        # ENTITIES
        # Background
        background = pygame.Surface(self.screen.get_size())
        background.fill((0, 0, 0))
        self.screen.blit(background, (0, 0))
        # Sprites
        top_widget_size = (self.screen.get_size()[0],
                           round(self.screen.get_size()[1] / 10))
        top_widget = Boundary((self.screen.get_size()[0] / 2,
                               round(self.screen.get_size()[1] / 20)),
                              color=(255, 255, 0),
                              size=top_widget_size)
        # Grids
        grid_sprites, safe_grid, grid_position = self.make_grid(
            (0, round(self.screen.get_size()[1] / 10)))
        curr_map = Map(grid_position)
        obsticles = curr_map.make_map(OBSTACLE_GRID_TILE)
        potential_box = curr_map.get_box_position()
        obsticles = pygame.sprite.Group(obsticles)

        # Boundary
        top_boundary = Boundary((600, 69), (255, 255, 255), (1200, 20))
        left_boundary = Boundary((-4, 350), (255, 255, 255), (20, 700))
        right_boundary = Boundary((1204, 350), (255, 255, 255), (20, 700))
        bottom_boundary = Boundary((600, 701), (255, 255, 255), (1200, 20))
        top_boundary.make_invisible()
        left_boundary.make_invisible()
        right_boundary.make_invisible()
        bottom_boundary.make_invisible()
        obsticles.add(top_boundary, left_boundary, right_boundary,
                      bottom_boundary)

        # Player
        player_1 = Player(grid_position[7][32])
        player_2 = Player(grid_position[7][0])
        player_1_attacks = pygame.sprite.Group()
        player_2_attacks = pygame.sprite.Group()

        # Player score zone
        p1_score_zone = Boundary((0, 0), (0, 0, 0), (72, 144))
        p1_score_zone.rect.topleft = (grid_position[6][0][0] - 18,
                                      grid_position[6][0][1] - 18)
        p1_score_zone.make_invisible()
        p2_score_zone = Boundary((0, 0), (0, 0, 0), (72, 144))
        p2_score_zone.rect.topleft = (grid_position[6][31][0] - 18,
                                      grid_position[6][31][1] - 18)
        p2_score_zone.make_invisible()
        score_zone = [p1_score_zone, p2_score_zone]

        # Zombies
        zombie_group = pygame.sprite.Group()
        zombie_group.add(Zombie(player_1, player_2, (500, -5), safe_grid))
        zombie_group.add(Zombie(player_1, player_2, (700, -5), safe_grid))
        zombie_group.add(Zombie(player_1, player_2, (600, 350), safe_grid))
        zombie_group.add(Zombie(player_1, player_2, (500, 705), safe_grid))
        zombie_group.add(Zombie(player_1, player_2, (700, 705), safe_grid))

        # HP Bar
        player_2_bar = StatBar((200, 35), (0, 255, 0), (300, 25), MAX_HP)
        player_1_bar = StatBar((1000, 35), (0, 255, 0), (300, 25), MAX_HP)
        player_1_bar.set_reversed_direction()
        bars = [
            player_2_bar.get_full_bar((255, 0, 0)),
            player_1_bar.get_full_bar((255, 0, 0))
        ]

        # Box

        # Item Box
        box_sprites = pygame.sprite.Group()

        # Goals
        flag = Flag((600, 350))
        goal = CaptureFlag([player_1, player_2], score_zone, flag, num_round=3)
        # Label color
        p1_label_color = (0, 0, 255)
        p2_label_color = (255, 0, 0)
        # Flag
        flag_p2 = Label(44, (400, 35))
        flag_p2.set_color(p2_label_color)
        flag_p1 = Label(44, (780, 35))
        flag_p1.set_color(p1_label_color)

        # timer
        timer = Timer(30, (560, 35), 4, 20, FRAME_RATE)
        # Labels
        p2_label = Label(20, (20, 35))
        p2_label.set_color(p2_label_color)
        p2_label.set_msg("P2  ")
        p1_label = Label(20, (1160, 35))
        p1_label.set_color(p1_label_color)
        p1_label.set_msg("P1")

        p1_head = Label(15, (player_1.rect.centerx - 8, player_1.rect.top - 5))
        p1_head.set_color(p1_label_color)
        p1_head.set_msg("P1")
        p2_head = Label(15, (player_2.rect.centerx - 8, player_2.rect.top - 5))
        p2_head.set_color(p2_label_color)
        p2_head.set_msg("P2")

        p1_weapon = Label(20, (990, 56))
        p1_weapon.set_msg("sada")
        p2_weapon = Label(20, (170, 56))
        p2_weapon.set_msg("sada")

        labels = [
            p1_label, p2_label, p1_head, p2_head, p1_weapon, p2_weapon,
            flag_p1, flag_p2
        ]

        keep_going = True
        box_flag = True
        all_sprites = pygame.sprite.OrderedUpdates(grid_sprites, obsticles,
                                                   flag, player_1, player_2,
                                                   zombie_group, top_widget,
                                                   timer, labels, bars,
                                                   player_1_bar, player_2_bar)
        # LOOP
        while keep_going:
            if goal.screen_pause:
                pygame.time.wait(1500)
                goal.screen_pause = False
            # TIME
            clock.tick(FRAME_RATE)

            if timer.get_real_second() % 5 == 0:
                # Box
                if box_flag:
                    box_flag = False
                    box = self.generate_box(potential_box)
                    box_sprites.add(box)
                    all_sprites.add(box)
            else:
                box_flag = True

            if timer.get_real_second() % 20 == 0 and len(zombie_group) <= 1:
                zombie_group.add(
                    Zombie(player_1, player_2, (500, -5), safe_grid))
                zombie_group.add(
                    Zombie(player_1, player_2, (700, -5), safe_grid))
                zombie_group.add(
                    Zombie(player_1, player_2, (600, 350), safe_grid))
                zombie_group.add(
                    Zombie(player_1, player_2, (500, 705), safe_grid))
                zombie_group.add(
                    Zombie(player_1, player_2, (700, 705), safe_grid))
                all_sprites.add(zombie_group)

            for z in zombie_group:
                z.move(zombie_group)

            # Check for Goal
            if goal.check_for_win():
                keep_going = False
            if timer.time_up():
                keep_going = False

            flag_p1.set_msg(str(goal.score[0]))
            flag_p2.set_msg(str(goal.score[1]))
            # EVENT HANDLING
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    return 3
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_p:
                        keep_going = False

            #Player 1 event handle
            if pygame.key.get_pressed()[pygame.K_RIGHT]:
                temp_block = TempBlock(player_1.rect.center,
                                       player_1.rect.size)
                temp_block.rect.x += player_1.velocity
                if pygame.sprite.spritecollide(temp_block, obsticles, False):
                    # Check the previous directoin
                    if player_1.direction == 1 or player_1.prev_direction == 1:
                        i = 1
                        # Check if the we continue with previous direction for more frames will be able to pass through
                        while i < player_1.velocity * SMOOTH_TURNING_FRAME_DELAY:
                            i += 1
                            temp_block.rect.y += 1
                            if not pygame.sprite.spritecollide(
                                    temp_block, obsticles, False):
                                player_1.go_down()
                                break
                    elif player_1.direction == 3 or player_1.prev_direction == 3:
                        i = 1
                        while i < player_1.velocity * SMOOTH_TURNING_FRAME_DELAY:
                            i += 1
                            temp_block.rect.y -= 1
                            if not pygame.sprite.spritecollide(
                                    temp_block, obsticles, False):
                                player_1.go_up()
                                break
                    else:
                        pass
                else:
                    player_1.go_right()

            elif pygame.key.get_pressed()[pygame.K_DOWN]:
                temp_block = TempBlock(player_1.rect.center,
                                       player_1.rect.size)
                temp_block.rect.y += player_1.velocity
                if pygame.sprite.spritecollide(temp_block, obsticles, False):
                    if player_1.direction == 0 or player_1.prev_direction == 0:
                        i = 1
                        while i < player_1.velocity * SMOOTH_TURNING_FRAME_DELAY:
                            i += 1
                            temp_block.rect.x += 1
                            if not pygame.sprite.spritecollide(
                                    temp_block, obsticles, False):
                                player_1.go_right()
                                break
                    elif player_1.direction == 2 or player_1.prev_direction == 2:
                        i = 1
                        while i < player_1.velocity * SMOOTH_TURNING_FRAME_DELAY:
                            i += 1
                            temp_block.rect.x -= 1
                            if not pygame.sprite.spritecollide(
                                    temp_block, obsticles, False):
                                player_1.go_left()
                                break
                    else:
                        pass
                else:
                    player_1.go_down()

            elif pygame.key.get_pressed()[pygame.K_UP]:
                temp_block = TempBlock(player_1.rect.center,
                                       player_1.rect.size)
                temp_block.rect.y -= player_1.velocity
                if pygame.sprite.spritecollide(temp_block, obsticles, False):
                    if player_1.direction == 0 or player_1.prev_direction == 0:
                        i = 1
                        while i < player_1.velocity * SMOOTH_TURNING_FRAME_DELAY:
                            i += 1
                            temp_block.rect.x += 1
                            if not pygame.sprite.spritecollide(
                                    temp_block, obsticles, False):
                                player_1.go_right()
                                break
                    elif player_1.direction == 2 or player_1.prev_direction == 2:
                        i = 1
                        while i < player_1.velocity * SMOOTH_TURNING_FRAME_DELAY:
                            i += 1
                            temp_block.rect.x -= 1
                            if not pygame.sprite.spritecollide(
                                    temp_block, obsticles, False):
                                player_1.go_left()
                                break
                    else:
                        pass
                else:
                    player_1.go_up()

            elif pygame.key.get_pressed()[pygame.K_LEFT]:
                temp_block = TempBlock(player_1.rect.center,
                                       player_1.rect.size)
                temp_block.rect.x -= player_1.velocity
                if pygame.sprite.spritecollide(temp_block, obsticles, False):
                    if player_1.direction == 1 or player_1.prev_direction == 1:
                        i = 1
                        while i < player_1.velocity * SMOOTH_TURNING_FRAME_DELAY:
                            i += 1
                            temp_block.rect.y += 1
                            if not pygame.sprite.spritecollide(
                                    temp_block, obsticles, False):
                                player_1.go_down()
                                break
                    elif player_1.direction == 3 or player_1.prev_direction == 3:
                        i = 1
                        while i < player_1.velocity * SMOOTH_TURNING_FRAME_DELAY:
                            i += 1
                            temp_block.rect.y -= 1
                            if not pygame.sprite.spritecollide(
                                    temp_block, obsticles, False):
                                player_1.go_up()
                                break
                    else:
                        pass
                else:
                    player_1.go_left()

            if pygame.key.get_pressed()[pygame.K_RCTRL]:
                lst = player_1.attack()
                player_1_attacks.add(lst)
                all_sprites.add(lst)
            # Player 2 event handle
            if pygame.key.get_pressed()[pygame.K_d]:
                temp_block = TempBlock(player_2.rect.center,
                                       player_2.rect.size)
                temp_block.rect.x += player_2.velocity
                if pygame.sprite.spritecollide(temp_block, obsticles, False):
                    # Check the previous directoin
                    if player_2.direction == 1 or player_2.prev_direction == 1:
                        i = 1
                        # Check if the we continue with previous direction for more frames will be able to pass through
                        while i < player_2.velocity * SMOOTH_TURNING_FRAME_DELAY:
                            i += 1
                            temp_block.rect.y += 1
                            if not pygame.sprite.spritecollide(
                                    temp_block, obsticles, False):
                                player_2.go_down()
                                break
                    elif player_2.direction == 3 or player_2.prev_direction == 3:
                        i = 1
                        while i < player_2.velocity * SMOOTH_TURNING_FRAME_DELAY:
                            i += 1
                            temp_block.rect.y -= 1
                            if not pygame.sprite.spritecollide(
                                    temp_block, obsticles, False):
                                player_2.go_up()
                                break
                    else:
                        pass
                else:
                    player_2.go_right()

            elif pygame.key.get_pressed()[pygame.K_s]:
                temp_block = TempBlock(player_2.rect.center,
                                       player_2.rect.size)
                temp_block.rect.y += player_2.velocity
                if pygame.sprite.spritecollide(temp_block, obsticles, False):
                    if player_2.direction == 0 or player_2.prev_direction == 0:
                        i = 1
                        while i < player_2.velocity * SMOOTH_TURNING_FRAME_DELAY:
                            i += 1
                            temp_block.rect.x += 1
                            if not pygame.sprite.spritecollide(
                                    temp_block, obsticles, False):
                                player_2.go_right()
                                break
                    elif player_2.direction == 2 or player_2.prev_direction == 2:
                        i = 1
                        while i < player_2.velocity * SMOOTH_TURNING_FRAME_DELAY:
                            i += 1
                            temp_block.rect.x -= 1
                            if not pygame.sprite.spritecollide(
                                    temp_block, obsticles, False):
                                player_2.go_left()
                                break
                    else:
                        pass
                else:
                    player_2.go_down()

            elif pygame.key.get_pressed()[pygame.K_w]:
                temp_block = TempBlock(player_2.rect.center,
                                       player_2.rect.size)
                temp_block.rect.y -= player_2.velocity
                if pygame.sprite.spritecollide(temp_block, obsticles, False):
                    if player_2.direction == 0 or player_2.prev_direction == 0:
                        i = 1
                        while i < player_2.velocity * SMOOTH_TURNING_FRAME_DELAY:
                            i += 1
                            temp_block.rect.x += 1
                            if not pygame.sprite.spritecollide(
                                    temp_block, obsticles, False):
                                player_2.go_right()
                                break
                    elif player_2.direction == 2 or player_2.prev_direction == 2:
                        i = 1
                        while i < player_2.velocity * SMOOTH_TURNING_FRAME_DELAY:
                            i += 1
                            temp_block.rect.x -= 1
                            if not pygame.sprite.spritecollide(
                                    temp_block, obsticles, False):
                                player_2.go_left()
                                break
                    else:
                        pass
                else:
                    player_2.go_up()

            elif pygame.key.get_pressed()[pygame.K_a]:
                temp_block = TempBlock(player_2.rect.center,
                                       player_2.rect.size)
                temp_block.rect.x -= player_2.velocity
                if pygame.sprite.spritecollide(temp_block, obsticles, False):
                    if player_2.direction == 1 or player_2.prev_direction == 1:
                        i = 1
                        while i < player_2.velocity * SMOOTH_TURNING_FRAME_DELAY:
                            i += 1
                            temp_block.rect.y += 1
                            if not pygame.sprite.spritecollide(
                                    temp_block, obsticles, False):
                                player_2.go_down()
                                break
                    elif player_2.direction == 3 or player_2.prev_direction == 3:
                        i = 1
                        while i < player_2.velocity * SMOOTH_TURNING_FRAME_DELAY:
                            i += 1
                            temp_block.rect.y -= 1
                            if not pygame.sprite.spritecollide(
                                    temp_block, obsticles, False):
                                player_2.go_up()
                                break
                    else:
                        pass
                else:
                    player_2.go_left()

            if pygame.key.get_pressed()[pygame.K_SPACE]:
                lst2 = player_2.attack()
                player_2_attacks.add(lst2)
                all_sprites.add(lst2)

            # Collisions handleling
            for box1 in pygame.sprite.spritecollide(player_1, box_sprites,
                                                    False):
                temp_label = TempLabel(
                    15, (player_1.rect.centerx - 8, player_1.rect.top - 5), 3,
                    FRAME_RATE)
                temp_label.set_msg(box1.__str__())
                all_sprites.add(temp_label)
                box1.collide(player_1)
            for box2 in pygame.sprite.spritecollide(player_2, box_sprites,
                                                    False):
                box2.collide(player_2)
                temp_label = TempLabel(
                    15, (player_2.rect.centerx - 8, player_2.rect.top - 5), 3,
                    FRAME_RATE)
                temp_label.set_msg(box2.__str__())
                all_sprites.add(temp_label)

            # Zombie hit player
            for zombie in pygame.sprite.spritecollide(player_1, zombie_group,
                                                      False):
                zombie.collide(player_1)
            for zombie in pygame.sprite.spritecollide(player_2, zombie_group,
                                                      False):
                zombie.collide(player_2)

            # Players hit zombies
            for zombie in zombie_group:
                for bullet in pygame.sprite.spritecollide(
                        zombie, player_2_attacks, False):
                    bullet.collide(zombie)
                for bullet in pygame.sprite.spritecollide(
                        zombie, player_1_attacks, False):
                    bullet.collide(zombie)

            # bullet_hit_walls
            for wall in obsticles:
                for bullet in pygame.sprite.spritecollide(
                        wall, player_1_attacks, False):
                    bullet.end()
                for bullet in pygame.sprite.spritecollide(
                        wall, player_2_attacks, False):
                    bullet.end()
            # Player_1 attacks
            for hit in pygame.sprite.spritecollide(player_2, player_1_attacks,
                                                   False):
                hit.collide(player_2)

            # Player_2 attacks
            for hit in pygame.sprite.spritecollide(player_1, player_2_attacks,
                                                   False):
                hit.collide(player_1)

            # Player hp bar
            player_2_bar.set_curr_stat(player_2.health)
            player_1_bar.set_curr_stat(player_1.health)

            # Player head
            p1_head.set_position(
                (player_1.rect.centerx - 8, player_1.rect.top - 5))
            p2_head.set_position(
                (player_2.rect.centerx - 8, player_2.rect.top - 5))

            p1_weapon.set_msg(str(player_1.weapon))
            p2_weapon.set_msg(str(player_2.weapon))

            if player_1.is_dead():
                if flag.get_player() == player_1:
                    flag.drop()
                player_1.respawn()

            if player_2.is_dead():
                if flag.get_player() == player_2:
                    flag.drop()
                player_2.respawn()
            for zombie in zombie_group:
                if zombie.is_dead(): zombie.kill()

            all_sprites.clear(self.screen, background)
            all_sprites.update()
            all_sprites.draw(self.screen)
            pygame.display.flip()

            lst = player_1.weapon.update()
            player_1_attacks.add(lst)
            all_sprites.add(lst)

            lst = player_2.weapon.update()
            player_2_attacks.add(lst)
            all_sprites.add(lst)

        end_msg = Label(60, (500, 350))
        end_msg.set_color((255, 255, 0))
        end_msg.set_msg(goal.get_wining_msg())
        self.screen.blit(end_msg.image, end_msg)
        pygame.display.flip()
        pygame.time.wait(2000)
        return 2
コード例 #23
0
ファイル: sensor_reader.py プロジェクト: pannxe/PocketFarm
def ready_stat():
    ia_flag = Flag(open("ians.flg", "w"))
    ia_flag.set_stat([cf.Comp.INPUT, cf.Stat.READY, 0, 0, 0, 0, 0, 0])
    del ia_flag


def write_stat():
    ia_flag = Flag(open("ians.flg", "w"))
    ia_flag.set_stat([cf.Comp.INPUT, cf.Stat.ANSWERED, 0, 0, 0, 0, 0, 0])
    del ia_flag


print("Pocket Farm's")
print("SENSOR READER MODULE\nVERSION 1.0.0")
print("_________________________\n")
ir_flag = Flag(open("ireq.flg", "r"))
first = False
while True:
    ir_flag.get_data()
    if ir_flag.is_requested() and not first:
        print("Reading... ", end="")
        read_sensor()
        write_stat()
        print("done")
        first = True

    if ir_flag.is_acquired() and first:
        ready_stat()
        first = False
        print("acquired")