Projektaufgabe Multimedia-Programmierung Sommersemester 2007

Die Seite soll als Sammlung von Zusatzmaterial dienen. Ergänzungen, Hinweise, usw., die für andere hilfreich sein könnten, dürfen gerne von allen Teilnehmern hinzugefügt werden.

Spieleprogrammierung

Eine Auswahl kostenlos spielbarer Minigolfspiele (als Anregung/Beispiel-Material):

Ein eher schlechtes Beispiel, wie es wohl am besten nicht aussehen sollte:

Collision detection

Eine sehr gute Collision detection bietet das Spiel N. Die Entwickler haben einige Tutorials zu ihrer Kollisionserkennung hier hinterlegt. http://www.harveycartel.org/metanet/tutorials.html unter anderen zu finden ist dort auch der Sourcecode eines Beispiels: http://www.harveycartel.org/metanet/tutorials/diagrams/tutB_demo04.html

Da die obige Collision detection sehr aufwändig ist findet sich hier ein weniger aufwändiges Beispiel, das mit Hilfe von sogenannten sentry-points funktioniert. http://www.flash-creations.com/notes/astb_bounceCollide.php

Maxs Kollision

Nun noch eine dritte Möglichkeit zur Kollisionserkennung. Ich hab mich am Wochenende mal mehr praksisorientiert mit dem Thema beschäftigt und meine eigene kleine Flash Collision Lösung geschrieben. Nun möchte ich die allen Teams natürlich nicht vorenthalten. Wer Teile davon übernehmen will oder sich inspirieren lassen will, kann dies gerne tun. Maxs Kollision

Werkzeuge

MagicDraw - Installation zu Hause

  • Einen Lizenz-Schlüssel für die Personal Edition 11.6 kann man per Mail von Andreas Pleuß erhalten
  • Alle Installationsdateien sind unter /home/proj/mi_mmp_ss07/md_install zu finden. Man benötigt:
    1. MagicDraw 11.6 Personal Edition für für Windows (MD_UML_116_PE_win.zip) oder alternativ ohne Installer (MD_UML_116_PE_no_Install.zip)
    2. Das MML-Profile (mml.xml); es muss im MagicDraw-Verzeichnis in den Ordner Profile gelegt werden
    3. Die 4 Diagramme befinden sich in diagrams.zip. Sie müssen entpackt werden und können anschließend nacheinander in MagicDraw mittels des Menüpunktes Diagramme->Anpassen...->Import... importiert werden.

Codegenerierung aus MML-Modellen

Ablauf: Codegenerierung wird von Andreas Pleuß vorgenommen
  1. Man erhält zunächst Rückmeldung, wo das Modell ggf. noch überarbeitet werden muss, um fehlerfreie Codegenerierung zu erhalten.
  2. Anschließend erhält man den generierten Code.

Der generierte Code umfasst die gesamte Struktur der Anwendung:
  • AS-Klassen für das Klassendiagramm
  • FLA-Dateien und AS-Klassen für Szenen inkl. Code für das Laden und die Übergänge zwischen den Szenen
  • Default UI-Elemente (Buttons, Textfelder) auf der Bühne und AS-Klassen für die Event-Listener der UI-Elemente
  • Platzhalter für Medienkomponenten (MovieClips, Graphiken) mit Anbindung an AS-Klassen

Eine genaue Dokumentation des generierten Code-Frameworks findet sich hier.

Zusätzliche Hinweise:
  • In einer Szene ruft man üblicherweise nur ApplicationEntities oder die eigenen Exit-Operations auf (keine Methoden von anderen Szenen direkt). (15.6.07)

Eclipse ActionScript Editor (ASDT)

Installation:

Seit ASDT 0.0.9 werden keine zusätzlichen Plugins mehr benötigt (wie z.B. mtasc und flashout in Version 0.0.8).

Schritte:
  1. Eclipse installieren
  2. ASDT installieren:
    • Aktuelle (Beta-)Version von ASDT herunterladen: http://aseclipseplugin.sourceforge.net/testreleases/asdt-0.0.9-test-13-04-07.zip
    • Im Eclipse-Hauptverzeichnis (Ordner "eclipse") entpacken

Einstellungen in Eclipse

Globale Einstellungen für ActionScript-Plugin einstellen (einmalig):
  1. Preferences->ActionScript2->Compiler: die Optionen "Check Sytax on Save" und "Check Syntax when AS file is opened" auf "true" setzen (=> genaue Syntax-Überprüfung künftig bei jedem Öffnen/Speichern; einfache Syntax-Fehler werden bereits während der Eingabe angezeigt)
  2. Preferences->ActionScript2->Compiler->MTASC: Exclude *.mx classes

Anlegen eines Projekts und Projekteinstellungen:
  1. Neues ActionScript-Projekt anlegen: New->Other...->ActionScript->New ActionScript Project
  2. Schritt 1: Name einstellen und Empty project wählen
  3. Schritt 2:
    • Add Std... (Standard-Klassen in Classpath einbinden)
    • Add Linked Folder... : Name = Classes, Path (im Dateisystem) = /home/proj/mi_mmp_ss07/Classes (MX-Komponenten in Classpath einbinden)
    • Finish klicken
  4. Meist wird man dann gefragt, ob man in die ActionScript-Persprektive wechseln möchte; dies ist sinnvoll (Entscheidung sollte gespeichert werden)
  5. Im Projekt werden dann Klassen und Pakete angelegt z.B. mit New...->ActionScriptClass

Zu beachten:

  • Erweiterte Syntax-Prüfung durch Compiler findet nur statt, wenn Datei gespeichert wird (Strg-S)!!
  • Syntax-Fehler werden Fenster "Problems" angezeigt
  • MX-Komponenten sollten dann ganz normal verwendet werden können, z.B. var x33: mx.controls.List;
    • Falls es beim ersten Mal die Meldung "Save Failed" auftritt, einfach Eclipse neu starten

Hinweis: - Für unser Projekt ist es vorgesehen, das Eclipse-Plugin als Editor für ActionScript zu verwenden. Der mtasc-Compiler wird in diesem Zusammenhang nur für die Syntax-Prüfung benötigt. - Prinzipiell ist es mit ASDT und mtasc auch möglich, ganz auf das Autorenwerkzeug zu verzichten (indem man eine eigene main-Klasse schreibt usw.). In unserem Projekt ist das aber nicht vorgesehen, da die graphische Gestaltung normalerweise effizienter mit dem Autorenwerkzeug erzielt werden kann, als durch reine Programmierung.

Weitere Dokumentation:

Socket-Server

Hier der Quellcode für den ganz einfachen Java-Socket-Server aus der Übung. Er kann mit Angabe eines Ports gestartet werden und verwendet andernfalls einen Standard-Port. Nachrichten werden Zeilenweise eingelesen (d.h. jede Nachricht muss entsprechend abgeschlossen werden!) und an alle Clients versendet. Ergänzungen oder Hinweise auf etwaige Bugs können gerne hier ins Wiki gestellt werden.
Topic attachments
I Attachment Action Size Date Who Comment
SimpleSocketServer.zipzip SimpleSocketServer.zip manage 3.9 K 12 Jun 2007 - 16:57 AndreasPleuss Socket-Server
flash_code_docu.pdfpdf flash_code_docu.pdf manage 82.1 K 04 Jun 2007 - 13:09 AndreasPleuss Dokumentation des generierten Codes
Topic revision: r9 - 15 Jun 2007, AndreasPleuss
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Medieninformatik-Wiki? Send feedback