arcade πέταγμα ακοντίου

Λύσεις προβλημάτων για το δημοφιλές πρόγραμμα κατασκευής παρουσιάσεων στο διαδίκτυο.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
spookyb52
Δημοσιεύσεις: 1891
Εγγραφή: 23 Ιαν 2002 01:00
Τοποθεσία: Lost in the mansion
Επικοινωνία:

arcade πέταγμα ακοντίου

Δημοσίευση από spookyb52 » 07 Ιούλ 2004 19:08

Βασικά προσπαθούσα να κάνω μια αξιοπρεπή επίδοση και να κεπεράσω τα 535m στο παρακάτω παιχνίδι

http://www.makaimedia.com/games/game_frame.aspx?gid=11

Δυστυχως καλύτερη επίδοση από 534,735 δέν πέτυχα... και τα παράτησα. Σκέφτηκα όμως ότι είναι αρκετά εύκολο να φτιαχτεί ένα τέτοιο παιχνίδι οπότε γιατι να μήν το φτιάξω και να το κάνω tutorial???

Θα φτιάξουμε λοιπόν το παρακάτω

FLASH UNDER CONSTRUCTION

Πριν αρχίσω με κώδικα θα πρέπει να αρχίσω φυσικά με την λογική και την δομή του παιχνιδιού που είναι αρκετά απλή!

Η λογική είναι απλή. Το ανθρωπάκι ξεκινάει με ένα πάτημα του ποντικιού (για την ακρίβεια μετά το πρώτο άφημα του ποντικιού). Με το δεύτερο πάτημα αρχίζει να βάζει δύναμη και στο άφημα του ποντικιού αφήνει και το ακόντιο. Όταν το ακόντιο έρθει σε επαφή με το έδαφος σταματάει. Το πόσο μακριά θα πάει εξαρτάται από την δύναμη/κλήση που θα βάλουμε

Πρίν ακόμα αρχίσουμε να σχεδιάζουμε κάτι θα φτιάξουμε την μηχανή του παιχνιδιού (τον κώδικα) γατί είναι αρκετά απλός

Βάλτε στο πρώτο keyframe τον παρακάτω κώδικα και πατήστε ctrl+enter

Κώδικας: Επιλογή όλων

power = 0;
startrun = putpower=letitfree=false;
onMouseDown = function () {
	if (startrun == true && letitfree == false) {
		putpower = true;
		trace("MouseDown 2nd time : put power");
	}
};
onMouseUp = function () {
	if (startrun == false) {
		startrun = true;
		trace("MouseUp 1st time : start run");
	}
	if (letitfree == false && putpower == true) {
		letitfree = true;
		trace("MouseUp 2nd time: let it free with "+power+" power");
	}
	if (letitfree == true) {
		putpower = false;
	}
};
onEnterFrame = function () {
	if (putpower == true) {
		++power;
		trace("power: "+power);
	}
};
Δοκιμάστε να παίξετε σάν να ήταν κανονικό παιχνίδι
Την πρώτη φορά που θα αφήσετε το αριστερό πλήκτρο του ποντικιού θα σας βγάλει το μήνυμα ότι αρχίσατε να τρέχετε
Την δεύτερη φορά που θα κάνετε κλίκ θα σας βγάλει μήνυμα ότι τώρα βάζετε δύναμη
και θα αρχίσει να εμφανίζει την δύναμη
Την δεύτερη φορά που θα αφήσετε το ποντίκι θα σας βγάλει μήνυμα ότι μόλις αφήσατε το ακόντιο με δύναμη όση και η τιμή της μεταβλητής power

Όπως στην εικόνα από κάτω

Εικόνα

Φυσικά οι trace εντολές δέν μας χρειάζονται και τις αφαιρούμε. Έτσι ο κώδικας γίνεται

Κώδικας: Επιλογή όλων

power = 0;
startrun = putpower=letitfree=false;
onMouseDown = function () {
	if (startrun == true && letitfree == false) {
		putpower = true;
	}
};
onMouseUp = function () {
	if (startrun == false) {
		startrun = true;
	}
	if (letitfree == false && putpower == true) {
		letitfree = true;
	}
	if (letitfree == true) {
		putpower = false;
	}
};
onEnterFrame = function () {
	if (putpower == true) {
		++power;
	}
};
Άν και η σύνταξη που έχω ακολουθήσει είναι αρκετά απλή θα χρειαστεί κάποια επιπλέον ανάλυση

Αρχικά χρησιμοποιούμε μερικές μεταβλητές. Τις power, startrun, putpower, letitfree

Κώδικας: Επιλογή όλων

power = 0;
startrun = putpower=letitfree=false;
Η power θα μετράει τη δύναμη που βάζουμε και η αρχική τιμή θα είναι μηδέν φυσικά

Η startrun θα έχει τιμή false στην αρχή του παιχνιδιού και true όταν το ανθρωπάκι αρχίσει να τρέχει

Η putpower θα έχει τιμή false στην αρχή του παιχνιδιού και true όταν το ανθρωπάκι αρχίσει να βάζει δύναμη

Η letitfree θα έχει τιμή false στην αρχή του παιχνιδιού και true όταν το ανθρωπάκι αφήσει το ακόντιο να φύγει

//-------------------------------

Κώδικας: Επιλογή όλων

onMouseDown = function () {
	if (startrun == true && letitfree == false) {
		putpower = true;
	}

Όταν κάνουμε κλίκ (onMouseDown)
Άν έχει αρχίσει το τρέξιμο (startrun==true) και δέν έχει αρχίσει να αφήνει το ακόντιο (letitfree == false) τότε άρχισε να βάζεις δύναμη (putpower = true)

//-----------------------------

Κώδικας: Επιλογή όλων

onMouseUp = function () {
	if (startrun == false) {
		startrun = true;
	}
	if (letitfree == false && putpower == true) {
		letitfree = true;
	}
	if (letitfree == true) {
		putpower = false;
	}
};
Όταν αφήνουμε το πλήκτρο του ποντικιού (onMouseUp)

if (startrun == false) {
startrun = true;
}

Άν δέν έχει αρχίσει το τρέξιμο (startrun == false) κάντο να αρχίσει (startrun = true)
------------------------

if (letitfree == false && putpower == true) {
letitfree = true;
}

Άν δέν έχει αφήσει το ακόντιο (letitfree == false) αλλά βάζει δύναμη (putpower==true) άφησε το ακόντιο (letitifree = true)
-----------------------

if (letitfree == true) {
putpower = false;
}

Άν έχει αφήσει το ακόντιο (letitfree==true) τότε σταμάτησε να βάζεις δύναμη putpower=false

Η συνέχεια σε επόμενο επεισόδιο..... [ξενερώσε κανείς???] :ppp
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

Άβαταρ μέλους
|dD|
Honorary Member
Δημοσιεύσεις: 1161
Εγγραφή: 22 Ιαν 2004 16:47
Τοποθεσία: Greece

arcade πέταγμα ακοντίου

Δημοσίευση από |dD| » 07 Ιούλ 2004 21:22

eknebristikotato... pu 8a pai briskome molis stin 346 boli...

Άβαταρ μέλους
|dD|
Honorary Member
Δημοσιεύσεις: 1161
Εγγραφή: 22 Ιαν 2004 16:47
Τοποθεσία: Greece

arcade πέταγμα ακοντίου

Δημοσίευση από |dD| » 07 Ιούλ 2004 22:28

lipon

Εικόνα

telika katalaba meta apo 2 vres !!!!!!!!!!!! oti ixa kolisi sto 1..2..3..4..5..6 1/2 + press 1..2.. throw !!!!!!!!!!!!!!!!!!!!

ke den ixa perasi ute to 35...

Άβαταρ μέλους
tolis_montana
Honorary Member
Δημοσιεύσεις: 913
Εγγραφή: 13 Απρ 2004 01:15
Τοποθεσία: στο κοσμο μου...
Επικοινωνία:

arcade πέταγμα ακοντίου

Δημοσίευση από tolis_montana » 08 Ιούλ 2004 00:47

ΟΤΑΝ λες να βαλουμε στο πρωτο keyframe το κωδικο μπορεις να μου το πειτε με λεπτομεριες
αν μπορει καποιος διοτι ειμαι πολυ καινουργιος σto flash και εχω τη απορια που βαζουμε το κωδικα ?
και τωρα με το post to θυμηθηκα αν μπορει ας μου πει καποιος ...

Άβαταρ μέλους
tolis_montana
Honorary Member
Δημοσιεύσεις: 913
Εγγραφή: 13 Απρ 2004 01:15
Τοποθεσία: στο κοσμο μου...
Επικοινωνία:

arcade πέταγμα ακοντίου

Δημοσίευση από tolis_montana » 08 Ιούλ 2004 00:47

μεχρι στιγμης κανω banner kai animations P:::

Άβαταρ μέλους
fefeli
Δημοσιεύσεις: 617
Εγγραφή: 26 Μαρ 2003 23:56
Τοποθεσία: Θεσσαλονίκη
Επικοινωνία:

arcade πέταγμα ακοντίου

Δημοσίευση από fefeli » 08 Ιούλ 2004 02:35

oux! den eprepe na mpw edw. mayto to pramataki eixa kolisei kai epeza ena dimino prospa8wntas na riksw makriteri boli. efygaaaaaaaaaaaaaaaaaaaaaaaa

spookyb52
Δημοσιεύσεις: 1891
Εγγραφή: 23 Ιαν 2002 01:00
Τοποθεσία: Lost in the mansion
Επικοινωνία:

arcade πέταγμα ακοντίου

Δημοσίευση από spookyb52 » 08 Ιούλ 2004 17:31

Το πρώτο frame που βλέπεις στο timeline όταν ανοίγεις το flash puntakias είναι keyframe. Τον κώδικα τον γράφεις στο actions panel [ F9 το shortcut]

Δές εδώ
http://www.freestuff.gr/forums/viewtopic.php?t=8813

Φτιάχτε και κανένα animation στο ενδιάμεσο... όπως το παρακάτω [ για το τρέξιμο πχ ]

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

Άβαταρ μέλους
guesswho
Honorary Member
Δημοσιεύσεις: 621
Εγγραφή: 04 Ιαν 2004 02:49
Τοποθεσία: Βόλος-Αθήνα Πάντα ήθελα να το χω δίπορτο...
Επικοινωνία:

arcade πέταγμα ακοντίου

Δημοσίευση από guesswho » 09 Ιούλ 2004 03:10

531 το μεγαλύτερο μου

Απάντηση

Επιστροφή στο “Flash γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης