• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > ActionScript > Spielkonzepte und Spieleprogrammierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-07-2010, 00:47   #1 (permalink)
Mediendesigner
 
Benutzerbild von izanagi
 
Registriert seit: Jan 2007
Ort: Köln
Beiträge: 418
Smile Auf dem Weg zum ersten Tower Defence

Hallo zusamm,
ich habe eine Woche Konzeption hinter mir und beginne
gerade mit der Programmierung. Ohne jegliche Grafik.

Es kann sein das ich die nächsten Tage etwas Hilfe benötige.
Je nach Anliegen würde ich auch bei Projektende, kleine Spenden verteilen
falls ihr ein Paypalkonto habt.
Zur Behebung größere Probleme, werde ich einen von euch dann
anschreiben und nach Absprache bezahlen.


Meine erste kleine Frage ist folgende:

PHP-Code:
for (var w:int 1<= 7w++) {
    
menu_waffen.bau_objekt[w].btn_bau.addEventListener(MouseEvent.CLICKausbau[w]);
    function 
ausbau[w] {
        
trace("joo");

}

Hab auch so ein schwachsinn hier probiert ....
PHP-Code:
for (var w:int 1<= 7w++) {
    
menu_waffen.this["bau_objekt" w].btn_bau.addEventListener(MouseEvent.CLICKthis["ausbau" w]);
    function 
this["ausbau" w] {
        
trace("joo");
//    waffenbutton=[w];
//    waffenbau();
}

Wie kann ich über die Schleife mehrere Listener und Functions erstellen ?
izanagi ist offline   Mit Zitat antworten
Alt 10-07-2010, 01:08   #2 (permalink)
ING
whatever
 
Registriert seit: May 2008
Beiträge: 415
so zum beispiel:

ActionScript:
  1. function ausbau(e:MouseEvent) {
  2.    trace(e);
  3.    // hier musst du unterscheiden was passiert
  4. }
  5. for (var w:int = 1; w <= 7; w++) {
  6.    menu_waffen.bau_objekt[w].btn_bau.addEventListener(MouseEvent.CLICK, ausbau);
  7. }

sonst würde ich erst nochmal die grundlagen empfehlen, du scheinst da bei einigen sachen noch grundlegende verständnis probleme zu haben wenn ich mir den code so angucke oder hast einfach nur wild rumgeraten
ING ist offline   Mit Zitat antworten
Alt 10-07-2010, 01:24   #3 (permalink)
Mediendesigner
 
Benutzerbild von izanagi
 
Registriert seit: Jan 2007
Ort: Köln
Beiträge: 418
Grüss dich,
ich hatte vorher mit AS3 nicht viel gemacht auf der Arbeit.
Hab jetzt 2 Wochen Crashkurs in AS3 Grundlagen zu OOP
und ein Tutorial zu einem Weltraumspiel.
Hatte gehofft einigermaßen vorbereitet zu sein

Naaja gibt halt doch noch viele kleinigkeiten wo ich nicht hinter komm.
Also oben das Problem war wie du sagstest rumgeraten, weil ich keine
7 Funktionen und 7 Listener schreiben wollte. Too much.
Daher wollt ich ich die Funktionen von der For schleife erstellen.

Muss die Funktion eigentlich immer ein e:MouseEvent haben?
Bisher haben meine Buttons auch mit einem einfachen "e" funktioniert. So hab ichs im AS3 Kurs gelernt

Dein Code petzt rum:
Error #1010: Ein Begriff ist nicht definiert und hat keine Eigenschaften.

Geändert von izanagi (10-07-2010 um 01:34 Uhr)
izanagi ist offline   Mit Zitat antworten
Alt 10-07-2010, 01:38   #4 (permalink)
in the boondocks
 
Benutzerbild von shin10
 
Registriert seit: Feb 2006
Ort: Augsburg
Beiträge: 3.238
hi,

wenn du für e die klasse mit angibst, bekommst du zum einen sinnvollere fehlermeldungen und außerdem entsprechende codehilfen bei der eingabe. andernfalls wird e als object behandelt und das macht alles unübersichtlich, schwer zu lesen, schwer zu debuggen, fehleranfälliger.

mfg

sx

EDIT: gib mal nen vollständigen (nicht zusammengesetzten) pfad zu einem deiner objekte
menu_waffen.bau_objekt1
oder
menu_waffen.bau_objekt.1 ??

vermutlich so:
PHP-Code:
function ausbau(e:MouseEvent) {
    
trace(e);
    
// hier musst du unterscheiden was passiert
}
for (var 
w:int 1<= 7w++) {
    
menu_waffen["bau_objekt"+w].btn_bau.addEventListener(MouseEvent.CLICKausbau);

__________________

flintfabrik.de

Geändert von shin10 (10-07-2010 um 01:46 Uhr)
shin10 ist offline   Mit Zitat antworten
Alt 10-07-2010, 01:45   #5 (permalink)
Mediendesigner
 
Benutzerbild von izanagi
 
Registriert seit: Jan 2007
Ort: Köln
Beiträge: 418
Ok das natürlich gut zu wissen, also immer die klasse mit angeben.
Ich hab gerad nochmal den korrigierten Code getestet, irgendwie bekomm
ich das nicht hin. Zudem soll jeder Listener eine eigene Funktion bekommen.
Also 1-7 Listener und 1-7 Funktionen.
Hintergrund: ich habe im Menü 7 Buttons. Jeder Button baut eine andere Waffe.

this.menu_waffen.bau_objekt1.btn_bau das ganze geht dann bis objekt7


EDIT:
Danke shin, das sieht gut aus. Das sind wieder Dinge die ich nicht versteh, dieser eine "punkt" macht alles kaputt.
ich hätte aus der logik heraus das gemacht
PHP-Code:
menu_waffen.["bau_objekt"+w].btn_bau.addEventListener(MouseEvent.CLICKausbau); 
Und dieser . vor dem [] wäre da fatal. hmmm

Geändert von izanagi (10-07-2010 um 01:53 Uhr)
izanagi ist offline   Mit Zitat antworten
Alt 10-07-2010, 01:56   #6 (permalink)
in the boondocks
 
Benutzerbild von shin10
 
Registriert seit: Feb 2006
Ort: Augsburg
Beiträge: 3.238
jap, so ist es. denn mit den klammern [..] greifst du ja ohnehin auf eine variable oder ein objekt zu, wie auch bei einem array

vielleicht bringt dich das weiter:
PHP-Code:
function ausbau(e:MouseEvent) {
    var 
btn:Button e.currentTarget as Button;// wenn die selbstgemacht sind, musst du beide male Button durch SimpleButton ersetzen
    
var mc:MovieClip btn.parent as MovieClip;
    
trace("waffe " mc.id);
}
for (var 
w:int 1<= 7w++) {
    
menu_waffen["bau_objekt"+w].id int(w);
    
menu_waffen["bau_objekt"+w].btn_bau.addEventListener(MouseEvent.CLICKausbau);

__________________

flintfabrik.de

Geändert von shin10 (10-07-2010 um 02:02 Uhr)
shin10 ist offline   Mit Zitat antworten
Alt 10-07-2010, 02:09   #7 (permalink)
Mediendesigner
 
Benutzerbild von izanagi
 
Registriert seit: Jan 2007
Ort: Köln
Beiträge: 418
du bist schon ein kleiner Held, das ist ja richtig ausgeklügelt.
Also da wär ich mit meinem Hirn jetzt nicht drauf gekommen
vor allem kannte ich die "as" und "id" funktion noch nicht.

Super, er baut nun alle Waffen an ausgewählten Gebäude.
Dann werd ich jetzt selbst weiter machen. Nach 17 stunden bin ich jetzt aber erstmal runde schlafen.
Vielen vielen Dank bisher

Geändert von izanagi (10-07-2010 um 02:10 Uhr)
izanagi ist offline   Mit Zitat antworten
Alt 10-07-2010, 02:13   #8 (permalink)
in the boondocks
 
Benutzerbild von shin10
 
Registriert seit: Feb 2006
Ort: Augsburg
Beiträge: 3.238
jap,

as WhatEver; ist ziemlich nützlich. id ist allerdings keine funktion oder so. du kannst einem movieclip, wie auch einem object, beliebige variablen verpassen. man hätte es stattdessen auch nummer, waffe oder gugelhupf nennen können. das wär egal. hauptsache du verstehst in nem halben jahr noch, was gemeint ist.

mfg

sx
__________________

flintfabrik.de
shin10 ist offline   Mit Zitat antworten
Alt 10-07-2010, 02:23   #9 (permalink)
Mediendesigner
 
Benutzerbild von izanagi
 
Registriert seit: Jan 2007
Ort: Köln
Beiträge: 418
ahsooo dann versteh ich es doch gerade. Hatte mich nur verwirrt das
das "id" blau ist. Schien mit wie eine festdefinierte eigenschaft für jedes einzelne objekt. Is ja auch wurst, weiss ja was damit gemeint ist
izanagi ist offline   Mit Zitat antworten
Alt 10-07-2010, 11:55   #10 (permalink)
Mediendesigner
 
Benutzerbild von izanagi
 
Registriert seit: Jan 2007
Ort: Köln
Beiträge: 418
Weiss jemand ob man intelligent ein Gutscheinsystem umsetzen kann?
ich wollte bei Spielende einen Code generieren den der spieler bekommt
und in einem shop einsetzen kann. Der zufallgenerierte Code sollte dann
vom Shopbetreiber in seine Datenbank aufgenommen werden um
ihn später zu vergleichen ob dieser bereits genutzt wurde.
So hat ich mir das vorgestellt, nur... kann jeder theoretisch seinen eigenen
Code selbst erfinden.
Oder ich bau innerhalb des Codes einen festen "marker" der die echtheit zertifiziert. Aber dieser muss dann wieder
beim Shopbetreiber in einer datenbank zu finden sein.

Geändert von izanagi (10-07-2010 um 11:57 Uhr)
izanagi ist offline   Mit Zitat antworten
Alt 10-07-2010, 12:22   #11 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 11.856
Schräger Themenwechsel.

Du müsstest die Spieler ihre Email Adresse angeben lassen und den Code dann vom System des Shopbetreibers abholen. Der Code würde dann aber direkt an die Email Adresse des Spielers geschickt werden. Um es einigermaßen sicher zu machen müsste der Client als Client beim System an- und abgemeldet werden, da es sich um eine öffentlich API handelt.

Solche Fragen aber vom Thread trennen... das Forum hat einen Sinn.
Omega Psi ist offline   Mit Zitat antworten
Alt 10-07-2010, 16:35   #12 (permalink)
Mediendesigner
 
Benutzerbild von izanagi
 
Registriert seit: Jan 2007
Ort: Köln
Beiträge: 418
Klar, sorry das war vorab nur eine kleine Nachfrage. Das hat Zeit...werd es dann viell nochmal seperat ansprechen.
izanagi ist offline   Mit Zitat antworten
Alt 10-07-2010, 16:53   #13 (permalink)
Mediendesigner
 
Benutzerbild von izanagi
 
Registriert seit: Jan 2007
Ort: Köln
Beiträge: 418
currentTarget.currentTarget

Gibt es sowas ? In der Adobe Hilfe finde ich gerade keinen HInweis.
Ich brauch das übergeordnete Objekt des ausführenden Listeners

EDIT danke habs schon ^^
e.currentTarget.parent.
dachte erst das es parent nicht mehr gibt.

Geändert von izanagi (10-07-2010 um 16:55 Uhr)
izanagi ist offline   Mit Zitat antworten
Alt 10-07-2010, 17:19   #14 (permalink)
in the boondocks
 
Benutzerbild von shin10
 
Registriert seit: Feb 2006
Ort: Augsburg
Beiträge: 3.238

ein event hat immer ein target und ein currentTarget. oft ist beides das selbe.
der unterschied kommt meist nur bei mouseevents zum tragen. currentTarget gibt dir dann immer das zurück, woran du den listener angehängt hast. target unter umständen ein unterobjekt davon.

mfg

sx
__________________

flintfabrik.de
shin10 ist offline   Mit Zitat antworten
Alt 14-07-2010, 13:07   #15 (permalink)
Mediendesigner
 
Benutzerbild von izanagi
 
Registriert seit: Jan 2007
Ort: Köln
Beiträge: 418
hm weiss jemand wie ich ein Geschoß, vom Turm zur gegnerziel koordinate animieren lasse ? Das Geschoß beinhaltet dann den Kollisionsradius.
Wie ich ihn in eine Richtung lenke weiss ich, aber die Richtung ist ja relativ zum Gegner, weil er sich bewegt.
Problem ist dazu noch, das das Geschoß nicht Rund ist, somit müsste sich sogar das Geschoß selbst in Richtung drehen :/

Geändert von izanagi (14-07-2010 um 13:09 Uhr)
izanagi 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mehrere Kollisionen sparsam erstellen (Tower Defence Game) ?!? themerx Flash 8 5 29-10-2008 14:35
hilfe bei erstellung von tower defense flash cmdSoniq ActionScript 1 7 12-02-2008 16:17
Die ersten Schritte hunkarcelebi Flash Einsteiger 17 28-02-2006 22:12
ersten 3d schritte... Hamster2k Softwarearchitektur und Entwurfsmuster 35 21-10-2002 12:45
sound wird beim Preloader auf ersten dem ersten Frame geladen II werbe-grafix Flash 4 und Flash 5 1 18-12-2001 19:24


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:54 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele