message.setTime(time.time() + delay) priorityQ.add(message) def update(): while len(priorityQ) > 0: current_time = time.time() message = priorityQ[0] if message.get_time() < current_time: receiver_id = message.get_received_id() receiver = EntityManager.get_entity_from_id(receiver_id) discharge(receiver, message) priorityQ.pop(0) time.sleep(2) if __name__ == '__main__': import sys working_path = "%s\\%s".format(sys.path[0], "..") sys.path.insert(0, working_path) from entity.Miner import Miner miner1 = Miner() miner2 = Miner() dispatch_message(10, miner1.get_entity_id(), miner2.get_entity_id(), "hello 1-2", "") dispatch_message(0, miner2.get_entity_id(), miner1.get_entity_id(), "hello 2-1", "") update()
# -*- coding: utf-8 -*- # ---------------------------负责注册管理所有的entity---------- # 1. 作为一个基础类,不关联具体的游戏功能类 # ----------------------------------------------------------- entity_map = {} def register_entity(entity): entity_id = entity.get_entity_id() entity_map[entity_id] = entity def un_register_entity(entity): entity_id = entity.get_entity_id() if entity_id in entity_map: entity_map[entity_id] = None def get_entity_from_id(entity_id): return entity_map.get(entity_id, None) if __name__ == '__main__': import sys sys.path.insert(0, "".join([sys.path[0], "\\.."])) from entity.Miner import Miner miner = Miner() miner_id = miner.get_entity_id() ret_miner = get_entity_from_id(miner_id)