示例#1
0
 def is_main_role(self, value):
     if self.is_main == value:
         return
     self.is_main = value
     if self.is_main_role:
         _state = state_factory(type(self.state), [MainCharacterComponent, CharacterMouseComponent])
     else:
         _state = state_factory(type(self.state), [CharacterMouseComponent])
     self.changing_state(_state, force=True)
示例#2
0
 def update(self, context):
     if self.is_moving_to_new_target(context):
         return
     one_loop = super().update(context)
     if one_loop:
         if self.game_object.is_main_role:
             _state = state_factory(
                 CharacterStandNormalState,
                 [MainCharacterComponent, CharacterMouseComponent])
         else:
             _state = state_factory(CharacterStandNormalState,
                                    [CharacterMouseComponent])
         self.game_object.changing_state(_state, context)
示例#3
0
 def update(self, context):
     if self.is_moving_to_new_target(context):
         return None
     self.calc_next_target()
     if is_same_coordinate(self.game_object.get_xy(),
                           self.game_object.target):  # 如果已经到达目标坐标点
         if self.game_object.is_main_role:
             _state = state_factory(
                 CharacterStandNormalState,
                 [MainCharacterComponent, CharacterMouseComponent])
         else:
             _state = state_factory(CharacterStandNormalState,
                                    [CharacterMouseComponent])
         self.game_object.changing_state(_state, context)
     else:
         self.game_object.direction = calc_direction_8(self.game_object)
         self.move(self.speed)
         super().update(context)
示例#4
0
 def is_moving_to_new_target(self, context):
     if self.game_object.is_new_target:  # 有新的移动目的地
         if self.game_object.is_running:
             if self.game_object.is_main_role:
                 _state = state_factory(
                     CharacterRunningState,
                     [MainCharacterComponent, CharacterMouseComponent])
             else:
                 _state = state_factory(CharacterRunningState,
                                        [CharacterMouseComponent])
         else:
             if self.game_object.is_main_role:
                 _state = state_factory(
                     CharacterWalkingState,
                     [MainCharacterComponent, CharacterMouseComponent])
             else:
                 _state = state_factory(CharacterWalkingState,
                                        [CharacterMouseComponent])
         self.game_object.is_new_target = False
         self.game_object.reset_target()
         self.game_object.changing_state(_state)  # 则改变状态
         return True
     return False
示例#5
0
    def __init__(self, _id, name, level, reborn, race, version, character, gender):
        super().__init__(0, 0)

        self.is_main = False

        self.id = _id
        self.name = name

        self.level = level
        self.reborn = reborn
        self.gender = gender

        self.race = race
        self.version = version
        self.character = character
        self.res_info = characters[self.race][self.version][self.character]

        self.map_id = None
        self.map_version = ''
        self.x = None
        self.y = None

        self.state = state_factory(CharacterStandNormalState, [CharacterMouseComponent])
        self.init_state(self.state)

        self.screen_rect = Rect((0, 0), (0, 0))

        self.target = (0, 0)
        self.target_list = []
        self.direction = 0
        self.is_new_target = False
        self.is_running = False

        self.mask = Mask(None, None)
        self.weapon = None

        self.is_mouse_over = False

        self.inited = True
        self.ready = True