Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.
Moderators:
Super-Moderators, WebDev Moderators
| Αποστολέας | Μήνυμα |
Expl0it
Honorary Member  Μέλος από: 25 Αυγ 2003 Βοηθήματα: 29 Νέα: 7 Scripts: 1 Μηνύματα: 256+Περιοχή: home/sweet/home
|
Στις: 10 Ιουν 2004 21:16 Θέμα:
Δημιουργία Quiz |
|
|
Στο Βοήθημα αυτό θα δούμε πώς μπορούμε να φτιάξουμε ένα quiz !
Δείτε το παράδειγμα και στο Info υπάρχουν τα link για το source.
Για την δημιουργία του QUIZ χρησιμοποιήσα 9 scenes ! Τα οποιά είναι :
preloader : Μπορεί και να μην τον δείτε γιατί είναι μόλις 15KB το flash, αλλά για κάποιους με πολύ χαμηλή σύνδεση είναι απαραίτητο.
main : Εκεί έφτιαξα το menu
info : Εκεί έβαλα κάποιες πληροφορίες και τα Links για το source
question1 : Για την ερώτηση 1
question2 : Για την ερώτηση 2
question3 : Για την ερώτηση 3
question4 : Για την ερώτηση 4
question5 : Για την ερώτηση 5
thend : Εκεί έφτιαξα το τέλος του παιχνιδιού με ink πάλι για το soure και την επιλογή να ξαναπαίξει κάποιος.
Θα δούμε κάθε μία Sene πως φτιάχνεται !
Scene1 : Preloader
Φτιάχνουμε 2 Layer. Το πρώτο το ονομάζουμε Actions και το δεύτερο όπως θέλουμε, δεν έχει σημασία. Εγώ το ονόμασα preloder.
Στο Layer Preloder φτιάχνουμε ένα dynamic text επιλέγοντας γραμματοσειρά μέγεθος και χρώμα που θέλουμε και του δύνουμε το instant name : loader. Στο ίδιο Frame μπορούμε άν θέλουμε να βάλουμε και οτιδήποτε άλλο (όπως τον τίτλο του παιχνιδιού κ.τ.λ).
Τώρα στο Layer Actions φτιάχνουμε 3 Blank Frames. Στο πρώτο πάμε και βάζουμε τον κώδικα :
| κώδικας: | percent = Math.floor(getBytesLoaded()/getBytesTotal()*100);
loader.text = percent+"% is Loaded"; |
Στο δεύτερο Frame βάζουμε τον κώδικα :
| κώδικας: | if (percent == 100) {
gotoAndPlay("main", "startquiz");
} else {
gotoAndPlay("preloader", 1);
} |
Όπου main είναι η επόμενη scene και starquiz είναι το όνομα του frame Που θέλουμε να πάει. Στην περίπτωση else δηλώνουμε να πάει και να πέξει το 1ο Frame της Scene preloader ου βρήσκεται ο Preloder μας.
Scene 2 : main
Σε αυτή την Scene έφτιαξα δύο κουμπάκια, 1 για το play και άλλο ένα για το info ! Στο Frame Που έφτιαξα τα κουμπάκια έδωσα το instant name : startquiz.
* Σημείωση : Για να μην έχετε πρόβλημα με κάποιο button όταν το φτιάξετε και μετά θέλετε να αλλάξετε κάτι , πρίν το κάνετε Button κ.αντε το movieclip ! Θα δείτε ότι στην Library τοy source υπάρχουν πολλά movieclip και πολλά Buttons με σχεδόν το ίδιο όνομα ! Αυτό το κάνω γιατί άν θέλω να κάνω μια αλλαγή π.χ σε ένα button θα πρέπει να πώ να κάνω αλλαγή και στα Up,Over,Down και Hit ! Εννώ άν έχω κάνει πρώτα το σχήμα μου movieclip θα μπορώ να κάνω την αλλαγή σε όλα μαζί !
Στο button play πήγα και έδωσα τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question1", "play1");
} |
Δηλαδή να πάει να παίξει το Frame : play1 στην Scene : question1
Και στο button Info έδωσα τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("info", "copyright");
} |
Επείσης έφτιαξα ένα Layer ακόμα και στο πρώτο Frame έβαλα το action
Scene 3 : question1
Σε αυτή την scene θα δούμε πως φτιάχνται οι ερωτήσεις με τις απαντήσεις. Τον ίδιο τρόπο θα χρησιμοποιήσουμε σε όλες τις scenes με τις ερωτήσεις !
Εδώ θα χριαστούμε 6 Layers ! Τα οποία θα ονομάσουμε κατά σειρά απο κάτω πρός τα πάνω :
question# : Δηλαδή question Number. Μπορείτε να δείτε στο παράδειγμα που φένεται πάνω αριστερά απο κάθε ερώτηση.
q1 : Το frame Που θα βάλουμε την ερώτησή μας.
choices : Εδώ θα βάλουμε τα κουμπάκια και τις απαντήσεις.
correct : Σε αυτό το Layer θα φτιάξουμε την ενέργεια που θα κάνει όταν η απάντηση είναι σωστή
incorrect :Σε αυτό το Layer θα φτιάξουμε την ενέργεια που θα κάνει όταν η απάντηση δεν είναι σωστή
actions : Και αυτό το Layer θα το χρησιμοποιήσουμε για να δηλώσουμε το stop στην αρχή κάθε ερώτησης (Μπορούμε να το κάνουμε σε κάποιο άλλο Layer , αλλά εγώ προτειμώ να τα έχω όλα ξεχωριστά για να βρήσκω ποιο εύκολα το σημείο που θέλω).
Στο Layer quetsion# βάζουμε μόνο ένα text στο πρώτο frame που θα λέει το νούμερο της ερώτησης. Μετά πάμε στο frame 10 και πατάμε δεξί κλίκ και Insert Frame.
Στο Layer q1 βάζουμε την ερώτηση που θέλουμε στο πρώτο Frame και μετά πάμε στο Frame 10 και πατάμε δεξί κλίκ και Insert Frame. Τέλος πάμε στο frame 1 και δίνουμε το Instant Name play1.
Στο Layer choices φτιάχνουμε στο πρώτο frame τα κουμπιά που θέλουμε και τις απαντήσεις (μπορείτε να βάλετε όσες απαντήσεις θέλετε, εγώ έβαλα τρείς). Το κάθε Button πρώτα να το κάνετε movie clip Και μετά Button για τον λόγο που εξηγώ στην σημείωση παραπάνω.
Τώρα ανάλογα με το ποιά θέλετε να είναι και η σωστή απάντηση θα βάλετε και τον ανάλογο κώδικα στα button.
Για την σωστή απάντηση θα βάλετε τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question1", "correct1");
} |
Και για τις λάθος απαντήσεις θα βάλετε τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question1", "incorrect1");
} |
Πάμε τώρα να φτιάξουμε την σωστή και την λάθος απάντηση.
Στο Layer correct Πάμε στο frame 11 και πατάμε δεξί κλίκ Insert Blank KeyFrame. Δείνουμε στο Frame αυτό το Instant Name correct1 και στα actions αυτού του Frame βάζουμε τον κώδικα Πάμε μετά στο frame 25 και πατάμε δεξί κλίκ Insert Frame.
Στο πρώτο Frame σχεδιάζουμε ότι θέλουμε να βγαίνει όταν κάποιος απαντάει σωστά και μετά φτιάχνουμε και το button για να πηγαίνει στην επόμενη ερώτηση.
Στο Button αυτό δείνουμε τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question2", "play2");
} |
Για να φτιάξουμε την λάθος απάντηση πάμε στο Layer incorrect και στο Frame 26 πατάμε δεξί κλίκ και Insert Blank KeyFrame. Δείνουμε το Instant Name : incorrect1 και τον κώδικα
Μετά πάμε στο frame 40 και πατάμε δεξί κλίκ και Insert Frame.
Στο Frame 26 φτιάχνουμε ότι θέλουμε να εμφανίζεται όταν κάποιος απαντάει λάθος και μετά προσθέτουμε ένα button για να δείνουμε την δυνατότητα σε αυτόν που έχει απαντήσει λάθος να γυρίσει πίσω και να προσπαθήσει ξανά.
Σε αυτό το button δείνουμε τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question1", "play1");
} |
Τέλος στο Layer actions πάμε στο πρώτο Frame και πατάμε δεξί κλίκ Insert Blank KeyFrame και δείνουμε τον κώδικα :
Scene 4 : question2
Γείνεται όπως ακριβώς στην 1η ερώτηση ένα μόνο που θα πρέπει να αλλάξουμε κάποια πράγματα.
Στα Layer q2 αυτή την φορά θα πρέπει να βάλουμε στο πρώτο frame το Instant Name : play2
Και τα Frame correct1 και incorect1 να τα κάνουμε correct2 και incorect2
Το ίδιο θα κάνουμε και στα button που βρήσκονται σε αυτή την scene ! Δηλαδή :
Στο button για την σωστή απάντηση θα δώσουμε τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question2", "correct2");
} |
Και στο button για την λάθος απάντηση τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question2", "incorrect2");
} |
Στο Button για την επόμενη ερώτηση που βρήσκεται στο frame correct2 πρέπει να δώσουμε τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question3", "play3");
} |
Και στο button που βρήσκεται στο frame incorrect2 τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question2", "play2");
} |
Scene 5 : question3
Γείνεται όπως ακριβώς στην 1η ερώτηση ένα μόνο που θα πρέπει να αλλάξουμε κάποια πράγματα.
Στα Layer q3 αυτή την φορά θα πρέπει να βάλουμε στο πρώτο frame το Instant Name : play3
Και τα Frame correct2 και incorect2 να τα κάνουμε correct3 και incorect3
Στο button για την σωστή απάντηση θα δώσουμε τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question3", "correct3");
} |
Και στο button για την λάθος απάντηση τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question3", "incorrect3");
} |
Στο Button για την επόμενη ερώτηση που βρήσκεται στο frame correct3 πρέπει να δώσουμε τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question4", "play4");
} |
Και στο button που βρήσκεται στο frame incorrect3 τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question3", "play3");
} |
Scene 6 : question4
Γείνεται όπως ακριβώς στην 1η ερώτηση ένα μόνο που θα πρέπει να αλλάξουμε κάποια πράγματα.
Στα Layer q4 αυτή την φορά θα πρέπει να βάλουμε στο πρώτο frame το Instant Name : play4
Και τα Frame correct3 και incorect3 να τα κάνουμε correct4 και incorect4
Στο button για την σωστή απάντηση θα δώσουμε τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question4", "correct4");
} |
Και στο button για την λάθος απάντηση τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question4", "incorrect4");
} |
Στο Button για την επόμενη ερώτηση που βρήσκεται στο frame correct4 πρέπει να δώσουμε τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question5", "play5");
} |
Και στο button που βρήσκεται στο frame incorrect4 τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question4", "play4");
} |
Scene 7 : question5
Γείνεται όπως ακριβώς στην 1η ερώτηση ένα μόνο που θα πρέπει να αλλάξουμε κάποια πράγματα.
Στα Layer q5 αυτή την φορά θα πρέπει να βάλουμε στο πρώτο frame το Instant Name : play5
Και τα Frame correct4 και incorect4 να τα κάνουμε correct5 και incorect5
Στο button για την σωστή απάντηση θα δώσουμε τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question5", "correct5");
} |
Και στο button για την λάθος απάντηση τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question5", "incorrect5");
} |
Στο Button για το τέλος του παιχνιδιού που βρήσκεται στο frame correct5 πρέπει να δώσουμε τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("thend", "playagain");
} |
Και στο button που βρήσκεται στο frame incorrect5 τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question5", "play5");
} |
Scene 8 : thend
Σε αυτή την scene θα φτιάξουμε 1 Layer και στο πρώτο Frame θα δώσουμε το Instant Name playagain μετά θα πάμε στο Frame 20 και πατάμε δεξί κλίκ Insert Frame Επείσης δείνουμε στο πρώτο frame τον κώδικα
Εδώ θα βάλουμε 2 button το ένα για να γυρίζει στην αρχή και το 2ό για να πηγαίνει στο Info !
Στο button play again θα δώσουμε τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("question1", "play1");
} |
Και στο button για το Info θα δώσουμε τον κώδικα :
| κώδικας: | on (release) {
gotoAndPlay("info", "copyright");
} |
Επειδή ξέχασα να γράψω για την scene info στην αρχή ! Το γράφω εδώ
Scene 9 : info
Σε αυτή την Scene θα χρειαστούμε 1 Layer που στο πρώτο frame θα δώσουμε το Instant Name : copyright και στο frame 20 δεξί κλίκ και Insert Frame. Επίσης στο Frame 1 δείνουμε τον κώδικα :
Σε αυτή την scene μπορείτε να βάλετε πληροφορίες για το game ή ότι άλλο θέλετε !!
Αυτά τα λίγα είχα να πώ
Ότι απορία υπάρχει απαντήστε απο κάτω και θα την βρούμε την λύση _________________ LET THE C0DER IN YOUR LIFE
Fatal Error: Unable to read 3555 bytes in /root/head/brain/task.php on line 0
|
|
|
|
Inzoy
Μέλος από: 17 Μαρ 2004 Βοηθήματα: 1 Μηνύματα: 23
|
|
|
|
EneMe
Super Moderator  Μέλος από: 09 Ιουλ 2002 Βοηθήματα: 10 Νέα: 11 Μηνύματα: 256+Περιοχή: Στα όρη, στα άγρια βουνά, μέσα στα κοσμικά χιόνια!
|
|
|
|
spookyb52
Μέλος από: 23 Ιαν 2002 Βοηθήματα: 26 Scripts: 5 Μηνύματα: 256+ Περιοχή: Lost in the mansion
|
Στις: 11 Ιουν 2004 15:41 Θέμα:
|
|
|
Δέν έχω εγώ τα περισσότερα tutorials???
Τώρα κανονικά θα έπρεπε εγώ να πώ για τα tutorials που μου κλέβουν για τους ιούς και τις κατάρες που μου ρίχνουν για το block στο log-in για την συνάντηση που θα γίνει μέσα στην εξεταστική και για χίλια δύο άλλα. Δέ θα τα πώ όμως γιατί είμαι ανώτερος...
θα απαντήσω με κώδικα και όποιος έχει flash θα συμφωνήσει μαζί μου
 βάλτε το σε ένα keyframe και ctrl+enter
Σταμάτησα το διάβασμα στη δημόσια διοίκηση για να το φτιάξω... και τώρα βαριέμαι τόσο που αποκλείεται να το συνεχίσω
| κώδικας: | comment = [" - χάλια", " - άσχημα", " - μέτρια", " - καλά", " - τέλεια"];
myFormat = new TextFormat();
with (myFormat) {
align = "center";
}
apanthseis = [1, 1, 1, 1];
thimata = ["Spooky rulez", "Lightforce sucks", "Filter xmmm"];
currentQuest = [];
score = 0;
//-----------
question = new Array();
question[0] = "Πάτησε ένα κουμπί για να ξεκινήσεις";
question[1] = "ποιός είναι πιό όμορφος?";
question[2] = "ποιός είναι πιο έξυπνος?";
question[3] = "ποιός είναι πιό παλιός στο forum?";
question[4] = "ποιός είναι πιό μικρός αλλά ταυτόχρονα σοφός?";
//--------------------------------
createTextField("quest", 4, 18, 10, 236, 22);
quest.selectable = false;
_root.quest.text = question[0];
//--------------------------------
createEmptyMovieClip("box", 5);
duplicateMovieClip("box", "boxNew", 0);
with (boxNew) {
beginFill(0x336699, 10);
moveTo(0, 30);
lineTo(250, 30);
lineTo(250, 100);
lineTo(0, 100);
lineTo(0, 30);
endFill();
}
duplicateMovieClip("box", "triangle", -1);
with (triangle) {
beginFill(0xff0000);
lineTo(10, 10);
lineTo(0, 10);
endFill();
_rotation = 225;
_y = 26;
_x = 5;
}
onEnterFrame = function () {
_root.quest.text = (currentQuest.length != undefined) ? question[currentQuest.length] : _root.quest.text;
for (i=1; i<=3; ++i) {
createTextField("choice"+i, i, 40, 16+20*i, 200, 22);
with (_root["choice"+i]) {
selectable = false;
text = thimata[i-1];
textColor = 0x336699;
// -------
if (currentQuest.length == 5 || quest.text == undefined) {
removeTextField();
quest.text = "The End";
createTextField("endthis", 12, 43, 55, 160, 20);
with (endthis) {
selectable = false;
background = 0xffffff;
text = percent+" % επιτυχία"+sxolio;
setTextFormat(myFormat);
}
}
}
duplicateMovieClip("box", "box"+i, 5+i);
// ---------
_root["box"+i].onRollOver = function() {
useHandCursor = true;
};
with (_root["box"+i]) {
beginFill(0x336699);
lineTo(11, 0);
lineTo(11, 11);
lineTo(0, 11);
lineTo(0, 0);
endFill();
if (currentQuest.length != 5) {
_x = 20;
_y = 20*i+20;
_alpha = (hitTest(_root._xmouse, _root._ymouse, false)) ? 40 : 100;
} else {
_y = 11111;
removeMovieClip();
}
}
}
};
onMouseDown = function () {
for (j=0; j<4; ++j) {
if (_root["box"+j].hitTest(_root._xmouse, _root._ymouse, false)) {
pressbox = j;
}
}
if (pressbox != undefined) {
if (currentQuest.length<5) {
currentQuest.push(newQ);
}
if (apanthseis[currentQuest.length-2] == pressbox && _root.quest.text != "The End") {
score += (score<4) ? 1 : 0;
}
}
percent = score*100/4;
sxolio = comment[score];
}; | _________________ Life is like a fast car on an icy road. Brakes don't work, yes I know it, but I step on the gas
Garage punk | Rockabilly | Rock 'n' Roll | Stoner
|
|
|
|
Expl0it
Honorary Member  Μέλος από: 25 Αυγ 2003 Βοηθήματα: 29 Νέα: 7 Scripts: 1 Μηνύματα: 256+Περιοχή: home/sweet/home
|
|
|
|
SotirisGD
 Μέλος από: 16 Δεκ 2009 Μηνύματα: 5Περιοχή: Athina
|
|
|
|
nkast
Μέλος από: 15 Νοε 2009 Μηνύματα: 133
|
|
|
|
|
Τώρα είναι 23 Μαη 2013 10:38 | All times are UTC + 3 (DST in action)
|