Einzelnen Beitrag anzeigen
Alt 19-07-2008, 02:31   #3 (permalink)
hgseib
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.100
hast du eine frage zu dem script, oder warum hast du ihn veröffentlicht?

ein puzzle zu programmieren ist doch denkbar einfach.
hier eine vorlage für ein einzelnes puzzleteil zum selbst erweitern:
Code:
// zuerst rettet man die originalposition von allen puzzleteilen
puzzleteil.originalX = puzzleteil._x;
puzzleteil.originalY = puzzleteil._y;
// dann werden die per zufall verschoben
puzzleteil._x = Math.random()*Stage.width;
puzzleteil._y = Math.random()*Stage.height;
// events
puzzleteil.onPress = function() {
  // angeklicktes puzzle nach oben
  this.swapDepths(100);
  // verschiebbar machen
  this.startDrag();
};
puzzleteil.onRelease = puzzleteil.onReleaseOutside = function() {
  // verschiebbar beenden
  this.stopDrag();
  // testen, obs in der nähe der originalposition steht
  var dx = this._x-this.originalX;
  var dy = this._y-this.originalY;
  var r = Math.sqrt(dx*dx+dy*dy);
  var tolleranz = 4;  // je kleiner die zahl, desto genauer muss man positionieren
  if (r<tolleranz) {
    // treffer! gerade rücken und events entfernen
    this._x = this.originalX;
    this._y = this.originalY;
    delete this.onPress;
    delete this.onRelease;
    delete this.onReleaseOutside;
    // jetzt noch testen ob alle fertig sind
    puzzleFertigZaehler++;
    if (puzzleFertigZaehler >= anzahlAllePuzzle) {
      trace("fertig");
    }
  }
};
__________________
die ultimative antwort auf alle programmierfragen: der debugger!
- vor eine programmzeile klicken (==roter punkt)
- im menü "debuggen" aufrufen
- auf den grünen pfeil klicken
- im swf etwas machen (der programmablauf hält beim roten punkt)
- links die objekte auswählen, variable, interne... mal alles ansehen!
mit dem debugger kann man sein programm schrittweisse abarbeiten und in alle variable reinsehen.

mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (19-07-2008 um 02:39 Uhr)
hgseib ist offline   Mit Zitat antworten