SoundManager oe, ab, rpn 17.10.2000 awp.sound.* Klassen-Konzept SoundXXXRoom SoundFxProcessor SoundCommonRoom Seite 1 SoundDistributor SoundA3D a3dtools.

Slides:



Advertisements
Ähnliche Präsentationen
Vorbereitung zu Praktikum 3
Advertisements

Präsentation PS: Klasse File von Janko Lange, Thomas Lung, Dennis Förster, Martin Hiller, Björn Schöbel.
C Tutorium – Semaphoren –
MySQL.
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
Oe,tw Sound-Aktionen (1) Start des Programms RoomControllerSoundManager doAction ( ACTION_SWITCH_ROOM ) Room (für den Ambient-Sound) und Slot-Daten.
Oe,tw Sound-Aktionen (1) Start des Programms RoomControllerSoundManager doAction ( ACTION_SWITCH_ROOM ) Room (für den Ambient-Sound) und Slot-Daten.
Java: Dynamische Datentypen
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Konstruktoren.
Polymorphie (Vielgestaltigkeit)
Processing: Arrays & Laden von Dateien Aufbauend auf dem Beispiel: File I/O LoadFile1.
Tag 2 Look-up-Tabellen, Zufallszahlen, Listen, Speichermanagement und Dateiverwaltung Quelle: 3D-Spiele mit C++ und DirectX in 21 Tagen, Alexander.
V03 Laden und Speichern von Spielfeldern und der Spielfeldeditor.
Die Türme von Hanoi Die Lösungsfindung nach dem Prinzip der Rekursion wird noch einmal textuell und grafisch erläutert
SoundManager oe awp.sound.* Klassen-Konzept SoundMaker SoundListener SoundSceneManager SoundSceneManagerRoom SoundSceneManagerTextarea SoundSceneManagerPopup.
Modularisierungstechniken
PRJ 2007/1 Stefan Dissmann Motivation Problem: Benutztes Objekt kennt den Kontext seiner Nutzung nicht. Daher kann es in besonderen Situationen keine Entscheidung.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Wie mache ich Text und Grafiken beweglich?
DVG Klassen und Objekte
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Ehrungen im eigenen Verein
Ehrenmedaillen ermitteln
Verdienstmedaillen Wenn Sie diese Präsentation im Internet-Explorer ablaufen lassen wollen, so klicken Sie bitte auf das Leinwandsymbol unten rechts. Mit.
Wizards & Builders GmbH Schulung Visual SourceSafe für Visual FoxPro Norbert Abb W&B.
3D Programmierung Version 12 - Highscores. Die vom Spieler erzielte Punktzahl wird mit 5 vorgegebenen Punktzahlen verglichen und, falls nötig, in die.
Referat zum Thema „DLL“
1. Schritt: Vorbereitung zum Standbild „Apfelschussszene“
Die Persistenzschicht
C4B XPhone Unified Communications Anleitung
metacoon eLearning im Projekt E-Forum
Seite 1 1 \\ Tracking Information System - Aufragsmanagement -
Ich möchte gerne mehrere Bilder auf ein Folie
P060 - IFI-Pflegedialogsystem - Termine und Nachrichten Ingenieurbüro für Informationssysteme Konzepte und Marketing Gerade Straße Buchholz i.d.N.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
EasyM Ein Werkzeug zur Dokumentation Ihrer Leistung Ablaufschemata BERGER Analysen und Informationstechnik GmbH A-4048 Puchenau Klingberg 3
Was macht eigentlich dieses ExsoForm? Ein Beispiel für eine Dokumentendefinition in Screenshots.
Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung WS 12/13 Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung.
Von der Planung bis zum Hauptmenü Seminar: Softwaretechnologie II Dozent: Prof. Manfred Thaller Referent: Jan Bigalke.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
Hallo, ich möchte eine Grafik1 aus einer anderen Grafik2
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 5 Dr. W. Narzt u. Dr. A. Stritzinger.
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Thread Synchronisation in JAVA
Bs Gemeinsame Datensegmente am Beispiel Solaris [Beachte: Unix/Linux setzen keine Hardware-Segmentierung voraus und sprechen daher statt von.
Ehrennadeln ermitteln Wenn Sie diese Präsentation im Internet-Explorer ablaufen lassen wollen, so klicken Sie bitte auf das Leinwandsymbol unten rechts.
EPROG Tutorium #3 Philipp Effenberger
Informatik Datenstruktur Graph 3.3 Durchlaufen von Graphen
Datei hochladen Um Mit der Dateiverwaltung zu beginnen klicken Sie zunächst auf den Wiki verwalten Button. Dann klicken Sie auf Dateien.
Parallelisierung für Multiprozessor-Maschinen Teil 2.
Unity 4.x Cookbook Softwaretechnologie II (Teil 2) - Maximilian Berndt.
Virtuelle Strip.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
A Workshop About this chapter General description Units Time Schedule
NE2000: Hardware und Design eines Treibers 1 AKBPII: Abschlusspräsentation NE2000: Hardware und Design eines prototypischen Treibers bearbeitet.
Schritt für Schritt-Anleitung
1 Servlets Stephan Baldes. 2 Was ist ein Servlet? S E R V L E T = Eine auf Java-Technologie basierte Web-Komponente, die von einem Container.
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
By Thorsten Zisler 1 SQL Datenbank Anbindung an den Supervisor.
Anmeldung zu den AGs Strafrecht Via Stud.IP : Login mit Benutzerkennung und Netzpasswort (siehe.
Tutorium Software-Engineering SS14 Florian Manghofer.
Anleitung zum Erstellen eines Kaders für den „Elektronischen Spielbericht (ESB)“
Konstruktoren.
Die Klasse Geist.
Allgemeine Befehle für die allgemeine Liste
1. Die rekursive Datenstruktur Liste 1.5 Das Entwurfsmuster Kompositum
Implementieren von Klassen
3. Die Datenstruktur Graph 3.2 Repräsentation von Graphen
 Präsentation transkript:

SoundManager oe, ab, rpn awp.sound.* Klassen-Konzept SoundXXXRoom SoundFxProcessor SoundCommonRoom Seite 1 SoundDistributor SoundA3D a3dtools SoundVirtualSource 1 0,.., 9 0,* 1 SoundEffect SoundEffect_Gain SoundEffect_Load SoundEffect_ListenerPos etc. Als Parameter einer Methode Als Parameter einer Methode und in der internen Liste

SoundManager Der SoundManager ist die Schnittstelle nach aussen. Intern verteilt er die Aktionen und die neuen Koordinaten an alle, die sie haben wollen, d.h die aktuellen/aktiven Söhne von SoundCommonRoom setListenerPos( Point3d ); doAction( int actionId ); ; // A3D initialisieren etc. exit(); // A3D abmelden awp.sound.* SoundManager Seite 2

SoundEffectProcessor ist die Warteschlange, in die die gewünschten Geräuscheffekte eingetragen werden können. Kapselt außerdem den Sound-Teilsystem-Thread, der aufwachen muss, wenn ein Effekt hörbar werden soll (gemäß Zeitmarke) oder wenn neue Effekte in die Warteschlange eingestellt werden List m_effectQueue; // die Warteschlange int registerVirtualSource(); // eine neue virtuelle Sound-Source anlegen. Rückgabe ist eine neue ID. insertEffect( SoundEffect ); // eine neue Effekt-Anforderung einstellen. awp.sound.* SoundEffectProcessor und SoundDistributor SoundDistributor verwaltet alle virtuellen Soundquellen und verteilt sie auf die tatsächlich zur Verfügung stehenden A3D-Kanäle SoundA3D[] m_physicalSources; Vector m_virtualSources; int m_lastIdGiven; // zuletzt vergebene (virtual) ID int registerVirtualSource(); // eine neue virtuelle Sound-Source anlegen. Rückgabe ist eine neue ID. processEffect( SoundEffect ); // einen Effekt hörbar machen/realisieren. Im Ggs. zu SoundFxProcessor wird die Zeitmarke ignoriert. Seite 3

SoundEffect ist ein Effekt, der Geräusch macht oder verändert. Die speziellen Parameter zu den Kommandos finden in passenden Söhnen Platz int m_commandId; // die ID des Kommandos long m_time; // der Zeitpunkt (in Millisek.), wann das zu tun ist: 1. Als Eingabeparameter an SoundFxProcessor ist das realtiv zu jetzt zu verstehen, 0 bedeutet daher sofort 2. In der Warteschlange in m_effectQueue ist der Zeitpunkt die reele Zeit. 3. Als Eingabeparameter an SoundDistributor wird dieser Eintrag ignoriert. int m_virtualSourceId; // die ID der Source awp.sound.* SoundEffect Seite 4 IDSohnAttributeFunktion CMD_LOADSoundEffect_LoadString m_filename;neue Tonquelle laden CMD_UNLOADSoundEffect_Unload-Source wieder freigeben CMD_PLAYSoundEffect_Playboolean m_loop;(einmal) spielen! CMD_MUTESoundEffect_Mute-nicht spielen! CMD_GAINSoundEffect_Gainfloat m_gain;die Lautstärke von 0 bis 1setzen CMD_POSITIONSoundEffect_PositionPoint3f m_position;die Position der Tonquelle setzen CMD_SIZESoundEffect_SizePoint3f m_size;die Ausmaße setzen CMD_MAX_DISTANCESoundEffect_MaxDistancefloat m_maxDistance;die maximale Distanz setzen CMD_LISTENER_POSSoundEffect_ListenerPosPoint3f m_position;Den Listener positionieren

awp.sound.* SoundA3D SoundA3D ist die einzige Klasse, die Aufrufe von A3D via a3dtools macht. Die a3dtools-Aufrufe für Soundquellen sind Instanzmethoden, die übrigen (A3D-Gesamt, Listener, etc.) sind statische Methoden boolean m_isA3DLoaded; // ist die Datei A3D-geladen? long m_firstId; // eine der A3D-IDs int m_secondId; // eine der A3D-Ids SoundVirtualSource m_virtualSource; // diese Tonquelle im virtuellen // Datei in A3D laden // Datei entladen // allgemeine Effektete: setMute(); // nicht spielen setPlay(boolean); // spielen (oder einmal spielen) setGain(); // Lautstärke setzen setPosition(); // Position setzen setSize(); // Ausdehnung er Soundquelle setzen setMaxDistance; // die maximale Distanz setzen // statische Methoden zum Initialisieren von A3D (werden vom SoundManager aufgerufen) // A3D-Flush (statisch) // statische Methoden um den Listener zu setzen Seite 5

awp.sound.* SoundVirtualSource Seite 6 SoundVirtualSource SoundVirtualSource dient zum Speichern des Status einer Tonquelle. Dient der Repräsentation aller Soundquellen, egal ob tatsächlich in A3D oder nicht int m_virtualId; // die virtuelle Source-ID; int m_playing; // Status: Ist dieser Ton gerade an oder aus? float m_gain; // Status: Lautstärke dieses Tons float m_maxDistance; // Status: Maximale Distanz, wo noch zu hoeren Point3f m_position; // Status: Position Point3f m_size; // Status: Ausdehnung der Soundquelle (Volumetric Bounds) SoundA3D m_physicalSource; // Die tatsächliche A3D-Tonquelle. Null, falls nicht A3D-geladen