Exemple #1
0
    def gametick(self, tickrate):
        while self.running:
            time.sleep(0.010)  # Sleep for 10 milliseconds
            if (self.host and self.host.new_packet
                ):  # Check if we've received new tick packet from the host
                new_data = Buffer(
                    512
                )  # Create a new buffer of 512 bytes to hold outgoing packet data
                new_data.prepare_packet(10)

                new_data.offset = 150  # Go to start of player data
                for x in self.clients:
                    new_data.write_real('B', 1, x.id)  # write x's uid

                    new_data.write_real('H', 2, x.pos_x)  # write x's pos_x
                    new_data.write_real('H', 2, x.pos_y)  # write x's pos_y
                    new_data.write_real('B', 1,
                                        x.is_alive)  # write x's is_alive
                    new_data.write_real('f', 4,
                                        x.hull_angle)  # write x's hull_angle
                    new_data.write_real(
                        'f', 4, x.turret_angle)  # write x's turret_angle

                    new_data.offset += 16  # Advance to next player's data

                packet.send_all(
                    self, new_data.data
                )  # send this packet to all clients! maybe in another thread?
                self.host.new_packet = False