Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-10-2003, 15:19   #1 (permalink)
Neuer User
 
Registriert seit: May 2002
Ort: München
Beiträge: 178
duplicate or attache or... for if while ???

Hallo

ich möchte für ein Spiel ( Ballonfangen) neben dem Punktestand auch
noch die gefangenen Ballons (in klein) anzeigen lassen.

Das heisst: erst ist kein kleiner Ballon sichtbar, sobald aber einer gefangen worden ist (hitTest) soll ein Ballon in klein unten links erscheinen.
Wenn noch einer gefangen worden ist dann erscheint daneben noch einer und so weiter.

Das zweite ist aber wenn ein vogel vorher den Ballon erwischt oder ich stolpere dann wird mir ein Punkt (also auch ein ballon abgezogen).

Mit duplicate movie komme ich gar nicht weiter und wenn ich lauter Ballons in einen MC stecke und sage er soll dann einen frame vor oder zurückgehen funktioniert das auch nicht da das Spiel nach Zeit und nicht nach gefangenen Ballons geht..... und ich ja nicht weiss wieviel Ballons der User fängt

Hat jemand nen Tipp wie ich das am besten hinkriege....

Für jede Hilfe dankbar



Delay
Delay ist offline   Mit Zitat antworten
Alt 01-10-2003, 16:23   #2 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 28
hlo
ich hab dir das mal mit zwei buttons veranschaulicht:

-mit der .attachMovie-methode wird ein movieclip aus der bibliothek eingefügt (verknüfung mit as muss aktiviert sein)

-und mit .removeMovieClip wird ein ballon wieder gelöscht

so long
Angehängte Dateien
Dateityp: zip examples.zip (4,2 KB, 11x aufgerufen)
newton ist offline   Mit Zitat antworten
Alt 01-10-2003, 16:25   #3 (permalink)
User
 
Benutzerbild von jeypack
 
Registriert seit: Sep 2003
Ort: Essen
Beiträge: 616
Si Zapato ,

du machst aus einem kleinen Ballon einen Movieclip, dem gibst du in der Libary (rechte Maustaste aufs Symbol - dann Verknüpfung wählen) ein Bezeichnernamen. Dann kannst du zur Laufzeit diesen Movie sooft du willst auf die Stage attachen.
Wenn du nun den Überblick behalten willst, packst du die attachten Movieclips in ein Array. Nun kannst du über die entsprechenden Array-Manipulationen immer genau die richtige Anzahl Ballons anzeigen.

Try out!

peace
jeypack ist offline   Mit Zitat antworten
Alt 01-10-2003, 16:47   #4 (permalink)
Neuer User
 
Registriert seit: May 2002
Ort: München
Beiträge: 178
Hola,


Danke....... und wunderbar... und werde ich testen........

Gib dann morgen bescheid..

einen hab ich noch:

hat jemand noch ne Ahnung wie ich hitTest auch bestimmen kann wenn die Taste gedrückt ist ( und er sozusagen in den Ballon reinfliegt)
onClipEvent (keyDown) und keyUp muss die Taste ja gerade gedrückt werden und bei enterFrame zählt er ja solange bis ich wieder draussen bin.....(aus dem Ballon)

müsste ich da mit zwei Schlüsselbilder arbeiten so wie bei nem Scrollbutton?????

Auch schon im voraus dankbar..


Grüße

Delay

Geändert von Delay (01-10-2003 um 16:48 Uhr)
Delay ist offline   Mit Zitat antworten
Alt 01-10-2003, 16:55   #5 (permalink)
User
 
Benutzerbild von jeypack
 
Registriert seit: Sep 2003
Ort: Essen
Beiträge: 616
da gibt's 'ne Menge Möglichkeiten.
Gib' mal 'nen Ausschnitt deines AS-Codes, damit man sieht wie weit du in AS bist. Dann kann ich dir die für dich einfachste Methode erklären.

peace
jeypack ist offline   Mit Zitat antworten
Alt 02-10-2003, 08:34   #6 (permalink)
Neuer User
 
Registriert seit: May 2002
Ort: München
Beiträge: 178
Hola und moin,

onClipEvent (keyUp) {
if (_root.man.hitTest (_root.back3.kontakt))
{
trace ("POINT");
_root.punkte = _root.treffer += 1;

_root.attachMovie("ballon", "ballon"+i,i);
_root["ballon"+i]._x = x;
_root["ballon"+i]._y = y;
x+=20;
i++;

}
if (_root.man.hitTest (_root.back4))
{
_root.punkte = _root.treffer -= 1;
trace ("STONE");
}
if (_root.man.hitTest (_root.back5))
{
_root.punkte = _root.treffer -= 1;
trace ("STONE");
}
if (_root.man.hitTest (_root.bird))
{
_root.punkte = _root.treffer -= 1;
trace ("Tschiiiiiep");
}
}


//das gleiche lege ich auch auf keyDown//


die ballons zählt es noch nicht runter das kommt noch
schon mal danke an newton..!!



Grüße

Delay
Delay ist offline   Mit Zitat antworten
Alt 02-10-2003, 10:56   #7 (permalink)
User
 
Benutzerbild von jeypack
 
Registriert seit: Sep 2003
Ort: Essen
Beiträge: 616
Hola Delay,

ich würde auf jeden Fall mit dem Array (Objekt) arbeiten, wie schon erwähnt.
Ansonsten hab' ich dir hier mal einen kleinen Vorschlag gemacht, wie du die Sache mit den Tasten angehen kannst.
Diese Script liegt dann auf dem Movieclip mit dem der Ballon gefangen wird.

onClipEvent (enterFrame) {
// 37 = left - 38 = up - 39 = right - 40 = down
if (Key.isDown(37)) {
if (this.hitTest(_root.ball)) {
// info ist ein textfeld auf _root
// den ballon musst du natürlich dann entfernen
// sonst zählt er ja solange du durch ihn durchgehst
_root.info = count++;
}
_x -= 5;
} else if (Key.isDown(39)) {
if (this.hitTest(_root.ball)) {
_root.info = count++;
}
_x += 5;
} else if (Key.isDown(38)) {
if (this.hitTest(_root.ball)) {
_root.info = count++;
}
_y -= 5;
} else if (Key.isDown(40)) {
if (this.hitTest(_root.ball)) {
_root.info = count++;
}
_y += 5;
}
}

Viel Spass beim Testen!

Gruß
jeypack
jeypack ist offline   Mit Zitat antworten
Alt 02-10-2003, 16:47   #8 (permalink)
Neuer User
 
Registriert seit: May 2002
Ort: München
Beiträge: 178
Hola,

danke schon mal,

komme aber erst wieder am Montag dazu das ein um oder anzubauen..

melde mich dann mal


und Grüße
Delay ist offline   Mit Zitat antworten
Alt 06-10-2003, 09:25   #9 (permalink)
Neuer User
 
Registriert seit: May 2002
Ort: München
Beiträge: 178
duplicate--delete

Moin,

das funktioniert jetzt wunderbar mit dem hochzählen

_root.attachMovie("ballon", "ballon"+i,i);
_root["ballon"+i]._x = x;
_root["ballon"+i]._y = y;
x+=20;
i++;

und runterzählen

_root["ballon"+i]._x == null ;
_root["ballon"+i]._x != null;
_root["ballon"+i].removeMovieClip();
i--;
x-=20;


jetzt möchte ich das bei onPress ( ich gehe zu einem neuen Schlüsselbild) alle Ballons die noch vorhanden sind gelöscht werden???

hat da jemand einen Tipp????
Ich komm nicht drauf......... bei mir verschwindet immer nur einer


Grüße und Danke im voraus

Delay
Delay ist offline   Mit Zitat antworten
Alt 06-10-2003, 09:41   #10 (permalink)
User
 
Benutzerbild von jeypack
 
Registriert seit: Sep 2003
Ort: Essen
Beiträge: 616
Smile

// wenn du mit 0 angefangen hast, ansonsten e=1
for (var e=0; e<=i; e++){
_root["ballon"+e].removeMovieClip();
}
jeypack ist offline   Mit Zitat antworten
Alt 06-10-2003, 10:02   #11 (permalink)
Neuer User
 
Registriert seit: May 2002
Ort: München
Beiträge: 178
Hola,

komme leider jetzt erst später dazu das zu testen...

aber schon mal thanx

bis denne


Delay
Delay ist offline   Mit Zitat antworten
Alt 07-10-2003, 10:42   #12 (permalink)
Neuer User
 
Registriert seit: May 2002
Ort: München
Beiträge: 178
Hallo,

on (release) {

for( e=0; e<=i; e++){
ziel="ballon"+e;
ziel2="ballon"
_root[ziel].removeMovieClip();
_root[ziel2].removeMovieClip();

}
hab ich jetzt,
es werden aber nur beim erstenmal alle ballons gelöscht ansonten nur die ersten zwei.

beim button playagain springt er nen frame zurück und hat dann das gleiche Problem.... schon beim ersten mal
Müsste ich die ballons anders duplizieren?
oder kann ich das nicht alles .delete

Grüße

Delay
Delay ist offline   Mit Zitat antworten
Alt 07-10-2003, 12:08   #13 (permalink)
User
 
Benutzerbild von jeypack
 
Registriert seit: Sep 2003
Ort: Essen
Beiträge: 616
Hallo Delay,

kann ich ohne die Datei zu sehen jetzt auch nicht genau sagen. Poste halt' mal die Datei, oder probier mit ein paar sinnvoll gesetzten trace(...) dahinter zu kommen. Vielleicht mal trace(i);...
jeypack ist offline   Mit Zitat antworten
Alt 07-10-2003, 12:35   #14 (permalink)
Neuer User
 
Registriert seit: May 2002
Ort: München
Beiträge: 178
Hallo,


ich hab 8 ballons z.b. und dann bei dem Button löscht er nur die ersten zwei

und bei trace (i)

zeigt er in der ausgabe als wert 1

und bei trace (ballon+e)

zeigt er in der ausgabe als wert 2


das werden die zwei Ballons sein die er löscht.

kann man die anzahl der attache Ballons nicht noch zusätzlich in einem Array speichern das ich dann komplett lösche ???

und grüße

Delay

Geändert von Delay (07-10-2003 um 12:37 Uhr)
Delay ist offline   Mit Zitat antworten
Alt 07-10-2003, 15:09   #15 (permalink)
User
 
Benutzerbild von jeypack
 
Registriert seit: Sep 2003
Ort: Essen
Beiträge: 616
si! Hab' ich dir aber schon vorgeschlagen. Nach dem attachen sofort in ein array packen. Nur mit den Namen aufpassen (also das Array nicht ballons nennen sondern wasweißich ball). Also erst attachen dann ball=_root["ballon"+i]; und du hast sie dem Array zugewiesen, wenn du vorher mit ball=[]; eins angelegt hast. Für die weitere Vorgehensweise lies erstmal die Hilfe. Wichtig, um alle Array-Funktionen kennen zu lernen.
jeypack ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 04:35 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele