SonMiko
Erfahrenes Mitglied
Hallo zusammen,
Ich bin derzeit damit beschäftigt ein "Maulwurf-Spiel" zu programmieren.
Es soll eines dieser Spiele werden, wo eine bestimmte Anzahl an Maulwurfslöchern zu sehen ist. Dann tauchen nach einander per Zufall aus den Löchern Köpfe auf, welche man anklicken muss um einen Punkt zu erhalten.
Davon bin ich aber noch ein Stück entfernt.
Derzeit habe ich folgendes Problem:
Ich erstelle dynamisch die besagten Löcher, kann diese aber nicht "ansteuern".
Das Problem ist, dass beispielsweise die Funktion immer nur auf das letzte Feld angewendet wird. Klar - weil der Zähler "i" zuletzt bei der höhsten Zahl stehen geblieben ist - wie aber erreiche ich es, das ich trotzdem alle Felder ansteuern kann bzw. das überall diese besagte Funktion ausgeführt wird?
Kann oder wäre es sinnvoll wenn ich ein Array verwende?
Ansätze mit aktfeld_mc[i] habe ich schon versucht - leider erfolglos...
Wäre sehr dankbar für Hilfe.
Besten Gruß,
Mike
Ich bin derzeit damit beschäftigt ein "Maulwurf-Spiel" zu programmieren.
Es soll eines dieser Spiele werden, wo eine bestimmte Anzahl an Maulwurfslöchern zu sehen ist. Dann tauchen nach einander per Zufall aus den Löchern Köpfe auf, welche man anklicken muss um einen Punkt zu erhalten.
Davon bin ich aber noch ein Stück entfernt.
Derzeit habe ich folgendes Problem:
Ich erstelle dynamisch die besagten Löcher, kann diese aber nicht "ansteuern".
Code:
stop();
//Variablen
var feldanzahl:Number=20;
var feldanzahlx:Number=5;
var feldposx:Number=0;
var feldposy:Number=0;
//Rastererzeugung
_root.createEmptyMovieClip("felder_mc",this.getNextHighestDepth());
felder_mc._x=75;
felder_mc._y=20;
//---FELDERERZEUGUNG
for(i=1;i<=feldanzahl;i++){
aktfeld_mc=felder_mc.attachMovie("feld_mc","feld_mc"+i,i);
aktfeld_mc.feldnummer_txt.text=i;
//--Abstaende errechnet durch Breite und Höhe des Feldes
feldbreite=aktfeld_mc._width;
feldhoehe=aktfeld_mc._height;
//--Felder werden ausgerichtet
if (feldposx<feldanzahlx) {
aktfeld_mc._x = feldposx*feldbreite;
aktfeld_mc._y = feldposy;
feldposx++;
} else {
feldposx = 0;
feldposy += feldbreite;
aktfeld_mc._x = feldposx*feldbreite;
aktfeld_mc._y = feldposy;
feldposx++;
}
//Einzelne Feldfunktion
aktfeld_mc.onEnterFrame=function(){
aktfeld_mc.feldnummer_txt.text=random(500); //PROBLEM }
}
//---MAUSZEIGER
_root.Mouse.hide();
_root.attachMovie("zeiger_mc", "zeiger_mc", this.getNextHighestDepth());
zeiger_mc._x=_root._xmouse;
zeiger_mc._y=_root._ymouse;
_root.onMouseDown=function(){
_root.zeiger_mc.play();
}
_root.onMouseMove=function(){
_root.zeiger_mc._x=_root._xmouse;
_root.zeiger_mc._y=_root._ymouse;
_root.zeiger_mc._alpha=100;
}
Das Problem ist, dass beispielsweise die Funktion immer nur auf das letzte Feld angewendet wird. Klar - weil der Zähler "i" zuletzt bei der höhsten Zahl stehen geblieben ist - wie aber erreiche ich es, das ich trotzdem alle Felder ansteuern kann bzw. das überall diese besagte Funktion ausgeführt wird?
Kann oder wäre es sinnvoll wenn ich ein Array verwende?
Ansätze mit aktfeld_mc[i] habe ich schon versucht - leider erfolglos...
Wäre sehr dankbar für Hilfe.
Besten Gruß,
Mike