Einzelnen Beitrag anzeigen
Alt 20-11-2007, 10:29   #1 (Permalink)
voulontine
Neuer User
 
Registriert seit: Nov 2007
Beiträge: 75
Question schiebepuzzle mit Drag and Drop

hallöchen, hab da mal bißchen rumgeschaut bezüglich einem schiebepuzzle. allerdings funktionieren die meisten beispiele nur mit click. hat schon mal jemand ein schiebpuzzle programmiert, wo man die puzzleteile dragged (mit eingeschränkten koordinaten) und auf dem leeren puzzlefeld dropped?

anbei das beispielscript, welches ich als tutorial gefunden habe:

///////////////////////// EINLADEN ////////////////////////
// Vorlage Laden, Skalieren und Positionieren
vorlage.loadMovie("images/0.jpg"); vorlage._xscale = 25; vorlage._yscale =25;
vorlage._x = 0;vorlage._y = 200;

// Teile Laden und Positionieren
t1.container.loadMovie("images/1.jpg"); t1._x = 0; t1._y = 0;
t2.container.loadMovie("images/2.jpg"); t2._x = 62; t2._y = 0;
t3.container.loadMovie("images/3.jpg"); t3._x = 124; t3._y = 0;
t4.container.loadMovie("images/4.jpg"); t4._x = 0; t4._y = 62;
t5.container.loadMovie("images/5.jpg"); t5._x = 62; t5._y = 62;
t6.container.loadMovie("images/6.jpg"); t6._x = 124; t6._y = 62;
t7.container.loadMovie("images/7.jpg"); t7._x = 0; t7._y = 124;
t8.container.loadMovie("images/8.jpg"); t8._x = 62; t8._y = 124;
// Teil 9 ist noch nicht dabei

//////////////////////// VORLAGE ////////////////////////
aktiv = false; // Variable, die Spiechert, ob die Vorlage grad angezeigt wird oder nich
vorlage_btn.onRelease = function() {
if(aktiv == false) { // wenns noch nich angeziegt wird--
aktiv = true; // das natürlich zwischenspeichern
vorlage._xscale = 100; // vorlage vergrößern
vorlage._yscale = 100;
vorlage._x = 0; // und über das Schiebefeld legen
vorlage._y = 0;
} else { // wenns bereits angezeigt wird
aktiv = false; // kommt alles wieder zum alten
vorlage._xscale = 25;
vorlage._yscale =25;
vorlage._x = 25;
vorlage._y = 245;
}
}

/////////////////////// VARIABLEN ///////////////////////
t1.nummer = 5; t2.nummer = 9; t3.nummer = 4; t4.nummer = 7; // Zwischenspeicher
t5.nummer = 3; t6.nummer = 8; t7.nummer = 1; t8.nummer = 6; // welches bild wo is

clicked = 0; // das feld, auf dass geklickt wurde
leer = 9; // das aktuell leere feld

///////////////////////// BUTTONS ////////////////////////
but1.onRelease = function() { if(clicked == 0)clicked = 1; } // wenn raufgeklcikt wird,
but2.onRelease = function() { if(clicked == 0)clicked = 2; } // wird in "clicked" fest-
but3.onRelease = function() { if(clicked == 0)clicked = 3; } // gehalten, auf welchen ge-
but4.onRelease = function() { if(clicked == 0)clicked = 4; } // klickt wurde. Das natürlcih
but5.onRelease = function() { if(clicked == 0)clicked = 5; } // nur dann, wenn clicked
but6.onRelease = function() { if(clicked == 0)clicked = 6; } // 0 ist, also kein anderer Button
but7.onRelease = function() { if(clicked == 0)clicked = 7; } // gerade aktiv ist.
but8.onRelease = function() { if(clicked == 0)clicked = 8; }
but9.onRelease = function() { if(clicked == 0)clicked = 9; }

////////////////////// MAIN //////////////////////
bla = 0;
_root.onEnterFrame = function() {
if(t1.nummer == 1 && t2.nummer == 2 && t3.nummer == 3 && t4.nummer == 4 && t5.nummer == 5 && t6.nummer == 6 && t7.nummer == 7 && t8.nummer == 8 && t9.nummer == 9) {
// wenn alles richtig is
vorlage._xscale = 100; // wird die vorlage angezeigt
vorlage._yscale =100;
vorlage._x = 0;
vorlage._y = 0;
Status.text = "FERTIG"; // und ein Textfeld
}
if(clicked != 0) { // wenn auf einen button geklcikt wurede...
obi = eval("t" + clicked); // das objekt evaluereiene,m welches wir bewegen wollen
if(clicked - leer == -3) { // siehe unten
if(bla < 10) {
obi._y += 6; // bewegen
bla++; // anzahlbgrenzung, es wird nur 8 mal bewegt
} else {
obi._name = "t" + leer;
leer = clicked;
clicked = 0;
bla = 0;
}
} else if(clicked - leer == -1) {
if(bla < 10) {
obi._x += 6;
bla++;
} else {
obi._name = "t" + leer;
leer = clicked;
clicked = 0;
bla = 0;
}
} else if(clicked - leer == 1) {
if(bla < 10) {
obi._x -= 6;
bla++;
} else {
obi._name = "t" + leer;
leer = clicked;
clicked = 0;
bla = 0;
}
}
else if(clicked - leer == 3) {
if(bla < 10) {
obi._y -= 6;
bla++;
} else {
obi._name = "t" + leer;
leer = clicked;
clicked = 0;
bla = 0;
}
} else if(clicked == leer) { clicked = 0; }
}
}

Geändert von voulontine (20-11-2007 um 10:31 Uhr)
voulontine ist offline   Mit Zitat antworten