/** * Wysyla do glownego watku gry wiadomosc zawierajaca zadane sterowanie. Metoda dba o to, aby nie * wysylac kilkakrotnie wiadomosci powielajacych wiadomosci wyslane uprzednio. * * @param flags * @param sideUsage * @param fwdUsage */ public void sendMessage(int flags, float sideUsage, float fwdUsage) { /* Zaokraglanie liczb: */ sideUsage = (float) Math.round(sideUsage * 100f) * 0.01f; fwdUsage = (float) Math.round(fwdUsage * 100f) * 0.01f; /* Jezeli trzeba, wysyla wiadomosc. */ if (!(flags == lastFlags && lastXUsage == sideUsage && lastYUsage == fwdUsage)) { lastFlags = flags; lastXUsage = sideUsage; lastYUsage = fwdUsage; messageQueue.push( messageFactory.createMovementMessage(Car.CAR_PLAYER, flags, sideUsage, fwdUsage)); } }
/** * Konstruktor klasy buforujacy obiekty MessageQueue i MessageFactory. Powinien byc wolany przez * klasy nadrzedne. */ public UIManager() { // buforuje sobie MessageQueue i messageFactory messageQueue = MessageQueue.getInstance(); messageFactory = MessageFactory.getInstance(); }