Κώδικας: Επιλογή όλων
// ------ ΟΔΗΓΙΕΣ
/*
Για να δουλέψει το παρακάτω script θα πρέπει να συμπληρώσετε τις undefined τιμές
Στο character όπου undefined δώστε το instance name του Movie που θα μετακινείτε πχ character = box;
Στο maze όπου undefined δώστε το instance name του Movie που θα περιέχει τον λαβύρινθο πχ maze = mylab;
Δώστε μια τιμή στην μεταβλητή speed που ρυθμίζει την ταχύτητα κίνησης. Δώστε μια χαμηλή τιμή. Για movie που τρέχει
στα 22fps μια τιμή μέχρι 2 είναι υπέραρκετή
Μπορείτε να σταματήσετε την εκτέλεση της interval με το παρακάτω
clearInterval(lab);
Ο πίνακας keyboard --- keyboard = [37, 38, 39, 40];---- περιέχει τα πλήκτρα μετακίνησης left , up, right, down
Μπορείτε να τα αλλάξετε συμπληρώνοντας τους αντίστοιχους virtual κωδικούς (defaull γίνεται χρήση των arrow keys)
Για να βρείτε τους κωδικούς τον πλήκτρων κάντε search στο help του flash για Keyboard Keys and Key Code Values
ΣΗΜΑΝΤΙΚΟ :
Το script χρησιμοποιεί τους virtual codes ΟΧΙ τους ASCII
Ο λαβύρινθος δέν χρειάζεται καμία ρύθμιση, απλά να τον σχεδιάσετε μέσα σε ένα Movie symbol με τα εργαλεία του flash.
Καλό θα είναι να μειώσετε κάτω από 1 το speed και να αυξήσετε τα fps του flash (το default είναι 12)
Επίσης κατά την σχεδίαση των αντικειμένων αποφύγετε την χρήση stroke και χρησιμοποιήστε μόνο fill στα σχήματα
Μπορείτε να διαγράψετε τα comments από τον κώδικα */
character = undefined;
maze = undefined;
speed = undefined;
keyboard = [37, 38, 39, 40];
//--------------------------
speedkey = [[-speed, 0], [0, -speed], [speed, 0], [0, speed]];
function moveme() {
for (var i = 0; i<5; ++i) {
if (Key.isDown(keyboard[i])) {
with (character) {
switch (true) {
case _root.maze.hitTest(getBounds(_root).xMax, _y, true) :
_x -= speed, _y += speedkey[i][1];
break;
case _root.maze.hitTest(getBounds(_root).xMin, _y, true) :
_x += speed, _y += speedkey[i][1];
break;
case _root.maze.hitTest(_x, getBounds(_root).yMax, true) :
_y -= speed, _x += speedkey[i][0];
break;
case _root.maze.hitTest(_x, getBounds(_root).yMin, true) :
_y += speed, _x += speedkey[i][0];
break;
default :
_x += speedkey[i][0], _y += speedkey[i][1];
}
}
}
}
}
lab = setInterval(moveme, 1);