Κίνηση στο Flash με τα βελάκια

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

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

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

Κίνηση στο Flash με τα βελάκια

Δημοσίευση από spookyb52 » 08 Φεβ 2004 17:03



Κίνηση με τα βελάκια ( Σε εμένα μετακινείτε και ολόκληρη η σελίδα :lol: ξερεί κανείς γιατί??? )

Έστω οτι θέλουμε να φτιάξουμε ένα ανθρωπάκι (όπως τον kenny απο το south park πιο πάνω) που θα πηγαίνει πέρα δώθε στην αντίστοιχη κατεύθυνση με αυτή που επιλέξαμε. Πώς όμως?

1) Φτιάξτε ένα πολύ μικρό γραφικό -πχ τετράγωνο- (δε μας ενδιαφέρει το σχέδιο γιατί έτσι και αλλιώς δέ θα φαίνεται) και φτιάξτε και ένα ανρωπάκι η αυτοκίνητο η σκύλο η ότι νομίζεται -καλύτερα ένα ανθρωπάκι-. Μετατρέψτε τα σε movie symbols (κάθε ένα ξεχωριστά, συνολικά δηλαδή 2 movie symbols)

2) Δώστε ως instance name στο movie που θα κινείται τη λέξη man

3) Τώρα δώστε στα actions του μικρού γραφικού τον παρακάτω κώδικα :

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

onClipEvent (enterFrame) {
	if (Key.isDown(Key.RIGHT)) {
		_root.man._x += 19;
	}
	if (Key.isDown(Key.LEFT)) {
		_root.man._x -= 19;
	}
	if (Key.isDown(Key.UP)) {
		_root.man._y -= 11;
	}
	if (Key.isDown(Key.DOWN)) {
		_root.man._y += 11;
	}
}

Ωραία αλλά τι σημαίνουν τα παραπάνω???

if (Key.isDown(Key.RIGHT)) : Άν το δεξί πλήκτρο είναι πατημένο κάτω... και ακολουθει το τί γίνεται

_root.man._x += 19 : Στο movie symbol με την ονομασία στο instance : man πήγαινε με ταχύτητα 19 δεξιά. To άν θα πάει δεξιά η αριστερά το υποδηλώνει το + η το - . Το x φυσικά σημαίνει οτι η κίνηση θα γίνει πάνω στον οριζόντιο άξονα Χ

Αντίστοιχα για τον άξονα Υ _root.man._y -= 11 σημαίνει 11px πάνω.

Φυσικά μπορείτε να βγάλετε κάποιες απο τις κινήσεις (πάνω, κάτω) με αφαίρεση απο τον κώδικα των αντίστοιχων γραμμών.

Ίσως να παρατηρήσετε οτι το movie που μόλις φτιάξατε δέν σταματάει στα άκρα του flash αλλά συνεχίζει την κίνησή του και έξω απο τα όρια
Μπορούμε όμως να προσθέσουμε λίγο ακόμα κώδικα και να το διορθώσουμε

Σβήστε τον κώδικα απο τα actions που φτιάξατε πρίν και βάλτε τον παρακάτω

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

onClipEvent (enterFrame) {
	if (Key.isDown(Key.RIGHT)) {
		_root.man._x += 19;
	}
	if (Key.isDown(Key.LEFT)) {
		_root.man._x -= 19;
	}
	if (Key.isDown(Key.UP)) {
		_root.man._y -= 11;
	}
	if (Key.isDown(Key.DOWN)) {
		_root.man._y += 11;
	}
	if (_root.man._x>=288) {
		_root.man._x = 288;
	}
	if &#40;_root.man._x<=0&#41; &#123;
		_root.man._x = 0;
	&#125;
	if &#40;_root.man._y>=222&#41; &#123;
		_root.man._y = 222;
	&#125;
	if &#40;_root.man._y<=63&#41; &#123;
		_root.man._y = 63;
	&#125;
&#125;
Ο παραπάνω κώδικας είναι για flash διαστάσεων 333x222 To movie symbol είχε μέγεθος περίπου 45x62 (width, height)

Μπορείτε να αλλάξτε τα νούμερα ώστε να ταιριάζουν στις δικές σας απαιτήσεις

Ωραία και παλι αλλά άν έχετε φτιάξει ένα ανρωπάκι δέ θα ήταν όμορφο να γυρνάει στα πλάγια όταν στρίβει πχ. δεξιά? Φυσικά... Ίσως ήδη να σκεφθήκατε το πώς!

Με την "εντολή" _root.instancename.gotoAndstop(framenumber);. Κάντε διπλό κλίκ στο movie symbol σας (όχι σε αυτό που βάζεται τα actions!) η δεξί κλίκ και edit και προσθέστε άλλα 3 blank keyframes (με το F7 για συντομία)

Προσθέστε ένα νέο layer, πατήστε πάνω σε ένα frame και γράψτε στα actions την εντολή stop();

Στο δεύτερο frame φτιάξτε το σχήμα σας για το πώς θα μοιάζει ότν κινείται δεξιά, στο 3 frame για αριστερά στο 4 frame για την πίσω όψη. Σβήστε για άλλη μια φορά τον κώδικα και προσθέστε τον νέο :

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

onClipEvent &#40;enterFrame&#41; &#123;
	if &#40;Key.isDown&#40;Key.RIGHT&#41;&#41; &#123;
		_root.man._x += 19;
    	_root.man.gotoAndstop&#40;2&#41;;
	&#125;
	if &#40;Key.isDown&#40;Key.LEFT&#41;&#41; &#123;
		_root.man._x -= 19;
    	_root.man.gotoAndstop&#40;3&#41;;
	&#125;
	if &#40;Key.isDown&#40;Key.UP&#41;&#41; &#123;
		_root.man._y -= 13;
		_root.man.gotoAndstop&#40;4&#41;;
	&#125;
	if &#40;Key.isDown&#40;Key.DOWN&#41;&#41; &#123;
		_root.man._y += 13;
		_root.man.gotoAndstop&#40;1&#41;;
	&#125;
	if &#40;_root.man._x>=288&#41; &#123;
		_root.man._x = 288;
	&#125;
	if &#40;_root.man._x<=0&#41; &#123;
		_root.man._x = 0;
	&#125;
	if &#40;_root.man._y>=222&#41; &#123;
		_root.man._y = 222;
	&#125;
	if &#40;_root.man._y<=63&#41; &#123;
		_root.man._y = 63;
	&#125;
&#125;

Κατεβάστε το flash απο εδώ http://www.geocities.com/talibgr/downloads/kinhsh.zip

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

Παρακάτω μια εικόνα απο ένα απο τα flashakia - παραδείγματα που θα υπάρχουν



ΠΡΟΣΘΕΣΑ ΔΥΟ-ΤΡΕΙΣ σειρές που είχα ξεχάσει. Ένα stop που πρέπει να μπεί στο movie clip και κάποιες διευκρυνίσεις. Sorry :)
Τελευταία επεξεργασία από το μέλος spookyb52 την 14 Φεβ 2004 15:07, έχει επεξεργασθεί 1 φορά συνολικά.
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

Άβαταρ μέλους
Homer
Δημοσιεύσεις: 86
Εγγραφή: 12 Φεβ 2004 16:37
Τοποθεσία: stockholm
Επικοινωνία:

Κίνηση στο Flash με τα βελάκια

Δημοσίευση από Homer » 13 Φεβ 2004 00:32

eisai oreos.. poli kala ta perigrapses... :D :D

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

Κίνηση στο Flash με τα βελάκια

Δημοσίευση από spookyb52 » 13 Φεβ 2004 18:40

:arrow: ooo.. Φχαρστώ Homer!

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

Σβήστε τον κώδικα και προσθέστε μόνο τον παρακάτω για να το καταλάβετε καλύτερα

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

if &#40;Key.isDown&#40;Key.RIGHT&#41; && Key.isDown&#40;Key.DOWN&#41;&#41; &#123;
		_root.man.gotoAndstop&#40;1&#41;;
	&#125;
	if &#40;Key.isDown&#40;Key.LEFT&#41; && Key.isDown&#40;Key.DOWN&#41;&#41; &#123;
		_root.man.gotoAndstop&#40;2&#41;;
	&#125;
	if &#40;Key.isDown&#40;Key.RIGHT&#41; && Key.isDown&#40;Key.UP&#41;&#41; &#123;
		_root.man.gotoAndstop&#40;3&#41;;
	&#125;
	if &#40;Key.isDown&#40;Key.LEFT&#41; && Key.isDown&#40;Key.UP&#41;&#41; &#123;
		_root.man.gotoAndstop&#40;4&#41;;
	&#125;

Στο παράδειγμα απο κάτω πατήστε όλους τους συνδυασμούς για διαγώνια κίνηση :

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

Άβαταρ μέλους
cvoodan
Honorary Member
Δημοσιεύσεις: 2151
Εγγραφή: 13 Μάιος 2003 14:09
Τοποθεσία: Πίσω σου!

Κίνηση στο Flash με τα βελάκια

Δημοσίευση από cvoodan » 14 Φεβ 2004 00:59

Kai se mena oli i selida metakineitai mazi me to an8ropaki :P
Εικόνα

Άβαταρ μέλους
Homer
Δημοσιεύσεις: 86
Εγγραφή: 12 Φεβ 2004 16:37
Τοποθεσία: stockholm
Επικοινωνία:

Κίνηση στο Flash με τα βελάκια

Δημοσίευση από Homer » 16 Απρ 2004 14:45

re spooky kano oti mou grafeis akribos oti grafei alla den kounietai to diko mou an8ropaki... :(

Άβαταρ μέλους
Expl0it
Honorary Member
Δημοσιεύσεις: 2364
Εγγραφή: 25 Αύγ 2003 23:24
Τοποθεσία: home/sweet/home

Κίνηση στο Flash με τα βελάκια

Δημοσίευση από Expl0it » 16 Απρ 2004 16:38

Σε τι version το κάνεις export ! Μπορεί να μην δουλεύει σε Flash Player 7 και ActionScript 2.0 !

Άν είναι γι'αυτό δοκίμασε να το κάνεις export σε Flash Player 6 Και ActionScript 1.0 ! Γιατί υπάρχουν σημαντικές αλλαγές στην σύνταξη και την λειτουργία του κώδικα !!

Άν και πάλι δεν δουλέψει !! Εδώ είμαστε να το ξανακοιτάξουμε !
LET THE C0DER IN YOUR LIFE
Fatal Error: Unable to read 3555 bytes in /root/head/brain/task.php on line 0

Εικόνα

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

Κίνηση στο Flash με τα βελάκια

Δημοσίευση από spookyb52 » 22 Απρ 2004 14:19

Δουλεύει και σε 2004

Φτιάξε ένα Movie με instance name myclip και δώσε στα actions τοu frame το παρακάτω

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

speed = 6;
onEnterFrame = function &#40;&#41; &#123;
	with &#40;_root.myclip&#41; &#123;
		&#40;Key.isDown&#40;Key.LEFT&#41;&#41; ? _x -= speed &#58; donoth;
		&#40;Key.isDown&#40;Key.RIGHT&#41;&#41; ? _x += speed &#58; donoth;
		&#40;Key.isDown&#40;Key.UP&#41;&#41; ? _y -= speed &#58; donoth;
		&#40;Key.isDown&#40;Key.DOWN&#41;&#41; ? _y += speed &#58; donoth;
	&#125;
&#125;;
έχω δοκιμάσει απίστευτα κομμάτια κώδικα γραμμένα σε act1 από τη στιγμή που έκανα install το mx2004 από περιέργεια και δέν υπάρχει το παραμικρό πρόβλημα. κάτι άλλο δέν κάνεις σωστά
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

Απάντηση

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

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

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