def __init__(self, *, engine, posinit, team): #extension pour donner un signe distinctif au robot pour reconnaitre l'avant self.avant = EngineObjectPoly( engine=engine, colltype=COLLTYPE_PETIT_ROBOT, offset=mm_to_px(HEIGHT_MINI / 2, -WIDTH_MINI / 2), color="black", poly_points=map(lambda p: mm_to_px(*p), [(0, 0), (0, WIDTH_MINI), (-10, WIDTH_MINI), (-10, 0)]), #taille du bras is_extension=True) self.bras_gauche = EngineObjectPoly( engine=engine, colltype=COLLTYPE_BRAS_PETIT, offset=mm_to_px(HEIGHT_MINI / 2 - 10, -WIDTH_MINI + 35), color="purple", poly_points=map(lambda p: mm_to_px(*p), [(0, 0), (10, 0), (10, 70), (0, 70)]), #taille du bras is_extension=True) self.bras_droite = EngineObjectPoly( engine=engine, colltype=COLLTYPE_BRAS_PETIT, offset=mm_to_px(HEIGHT_MINI / 2 - 10, WIDTH_MINI / 2), color="purple", poly_points=map(lambda p: mm_to_px(*p), [(0, 0), (10, 0), (10, 70), (0, 70)]), #taille du bras is_extension=True) robot.Robot.__init__( self, engine=engine, team=team, posinit=posinit, mass=10, typerobot=MINI, colltype=COLLTYPE_PETIT_ROBOT, poly_points=mm_to_px((0, 0), (HEIGHT_MINI, 0), (HEIGHT_MINI, WIDTH_MINI), (0, WIDTH_MINI)), ) self.add_body_extension(self.avant) self.__bras_used = None #pour savoir quel bras est sorti self.__nbr_lances = 6 self.__filet = 1 self.__fresques = 2 self.setRobotType(MINI)
def __init__(self, *, engine, posinit, team): self.bras = EngineObjectPoly( engine = engine, colltype = COLLTYPE_BRAS, offset = mm_to_px(WIDTH_GROS/2-21, -HEIGHT_GROS/2-24), color = "green", poly_points = map(lambda p: mm_to_px(*p),[(LONGUEUR_BRAS,0),(0,LONGUEUR_BRAS), (0,0)]), #taille du bras is_extension= True ) self.bras_ouvrir = EngineObjectPoly( engine = engine, colltype = COLLTYPE_BRAS_OUVRIR, offset = mm_to_px(WIDTH_GROS/2-21, -HEIGHT_GROS/2-24), color = "purple", poly_points = map(lambda p: mm_to_px(*p),[(LONGUEUR_BRAS,0),(0,LONGUEUR_BRAS), (0,0)]), #taille du bras is_extension= True ) self.bras_fermer = EngineObjectPoly( engine = engine, colltype = COLLTYPE_BRAS_FERMER, offset = mm_to_px(WIDTH_GROS/2-21, -HEIGHT_GROS/2-24), color = "blue", poly_points = map(lambda p: mm_to_px(*p),[(LONGUEUR_BRAS,0),(0,LONGUEUR_BRAS), (0,0)]), #taille du bras is_extension= True ) robot.Robot.__init__(self, engine = engine, team = team, posinit = posinit, mass = 10, typerobot = BIG, colltype = COLLTYPE_GROS_ROBOT, poly_points = mm_to_px((0,0),(HEIGHT_GROS,0),(HEIGHT_GROS,WIDTH_GROS-95),(HEIGHT_GROS-115,WIDTH_GROS),(0,WIDTH_GROS)), extension_objects = [], ) self.__nbrFeuAvant = 0 self.__nbrFeuArriere = 0 self.__engine = engine self.__feuHit = 0 self.__feuHit_forced = False self.setRobotType(BIG)
def __init__(self, engine, posinit, orientation, sens, coucher=False): if (orientation == "vert"): # | points_feu = map(lambda p: mm_to_px(*p), [(0, 0), (30, 0), (30, 140), (0, 140)]) points_triangle_rd = map(lambda p: mm_to_px(*p), [(0, 0), (70, 55), (0, 140)]) offset_triangle_rd = mm_to_px(15, -70) points_triangle_yg = map(lambda p: mm_to_px(*p), [(0, 0), (70, 55), (0, 140)]) offset_triangle_yg = mm_to_px(15, -70) points_triangle_rg = map(lambda p: mm_to_px(*p), [(0, 0), (-70, 55), (0, 140)]) offset_triangle_rg = mm_to_px(-15, -70) points_triangle_yd = map(lambda p: mm_to_px(*p), [(0, 0), (-70, 55), (0, 140)]) offset_triangle_yd = mm_to_px(-15, -70) else: # --- points_feu = map(lambda p: mm_to_px(*p), [(0, 0), (140, 0), (140, 30), (0, 30)]) points_triangle_rd = map(lambda p: mm_to_px(*p), [(0, 0), (55, 70), (140, 0)]) offset_triangle_rd = mm_to_px(-70, 15) points_triangle_yg = map(lambda p: mm_to_px(*p), [(0, 0), (55, 70), (140, 0)]) offset_triangle_yg = mm_to_px(-70, 15) points_triangle_rg = map(lambda p: mm_to_px(*p), [(0, 0), (55, -70), (140, 0)]) offset_triangle_rg = mm_to_px(-70, -15) points_triangle_yd = map(lambda p: mm_to_px(*p), [(0, 0), (55, -70), (140, 0)]) offset_triangle_yd = mm_to_px(-70, -15) EngineObjectPoly.__init__(self, engine=engine, colltype=COLLTYPE_FEU, posinit=posinit, mass=80, poly_points=points_feu, layers=2) #on a 4 extensions car 2 couleurs qui peuvent être des 2 côtés du triangle. self.triangleRedDroite = EngineObjectPoly( engine=engine, colltype=COLLTYPE_FEU, offset=offset_triangle_rd, color="red", poly_points=points_triangle_rd, layers=2, is_extension=True) self.triangleYellowGauche = EngineObjectPoly( engine=engine, colltype=COLLTYPE_FEU, offset=offset_triangle_yd, color="yellow", poly_points=points_triangle_yd, layers=2, is_extension=True) self.triangleRedGauche = EngineObjectPoly( engine=engine, colltype=COLLTYPE_FEU, offset=offset_triangle_rg, color="red", poly_points=points_triangle_rg, layers=2, is_extension=True) self.triangleYellowDroite = EngineObjectPoly( engine=engine, colltype=COLLTYPE_FEU, offset=offset_triangle_yg, color="yellow", poly_points=points_triangle_yg, layers=2, is_extension=True) self.orientation = orientation if (sens == 'r'): self.__coucher_a_gauche = 'y' self.__coucher_a_droite = 'r' else: self.__coucher_a_gauche = 'r' self.__coucher_a_droite = 'y' self.__is_down = False self.__extension_down = None #variable qui stock l'extension utilisée pour coucher le feu self.__eteindre_flag = False