{lang: 'de'}
Flashhilfe.de - Flash Community

Objekte verlieren die zugewiesenen Koordinaten [Flash 11]

 


AntwortenRegistrieren Seite1  

KanoneTM#1
Benutzerbild von KanoneTM
Beiträge: 2
Wohnort: Leipzig
Registriert: Dec 2011

06.12.2011, 14:58

Hallo Leute =)
da ich mich zur Zeit mit Flash beschäftige(Anfänger) habe ich mich bei euch im Forum einmal angemeldet.
Heute hatte ich folgendes Problem:
Ich habe ein Spielfeld auf den 4 Spielfiguren sind, deren Ziel ist es Fragen zu beantworten. Der Benutzer klickt also auf eine Frage und wenn die Frage richtig beantwortet wird, so springt die Spielfigur auf das Fragenfeld ( in der nächsten Runde dann auf die nächte Frage usw.... ).

Nur wird die Spielfigur des zB. roten Spielers zurückgesetzt auf den Startpunkt sobald ein anderer Spieler eine Frage richtig beantwortet hat.

Der aktuelle Spieler wird durch einen Zähler (count) ermittelt. Ich hoffe das die Infos reichen, und hoffe das jemand eine Idee dafür hat.

Im Anhang befindet sich das Spielfeld.

Frame 1: ist initialisierungsframe für alle Objekte
Frame 2:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
function frageClicked(e:MouseEvent):void
{
     frageZahl = Math.round(Math.random() * 52); // 52 Fragen aus denen zufällig eine gewählt wird
   this.akutellerSpieler().setZielKoor(e.target.x,e.target.y); // target = koordinaten Fragefeld
   this.loadXML(); //läd Fragen in XML
   count++;   
     gotoAndStop(3);
 
}

if (richtigeAntwort == true// Wird aufgerufen falls Frame 3 richtigeAntwort auf true setzt
{
     trace(richtigeAntwort);
     this.richtigGeantwortet();
}

function richtigGeantwortet():void
{
     count--;
     if (count % 4 == 0)
     {
        Object(this).autoGelb.x = this.akutellerSpieler().zielKoorX;
        Object(this).autoGelb.y = this.akutellerSpieler().zielKoorY;
     }
 
     if (count % 4 == 1)
     {
        Object(this).autoGruen.x = this.akutellerSpieler().zielKoorX;
        Object(this).autoGruen.y = this.akutellerSpieler().zielKoorY;
     }
     if (count % 4 == 2)
     {
        Object(this).autoBlau.x = this.akutellerSpieler().zielKoorX;
        Object(this).autoBlau.y = this.akutellerSpieler().zielKoorY;
     }
     if (count % 4 == 3)
     {
 
        Object(this).autoRot.x = this.akutellerSpieler().zielKoorX;
        Object(this).autoRot.y = this.akutellerSpieler().zielKoorY;
     }
     count++;
}

function akutellerSpieler():Auto
{
 
     if (count % 4 == 0)
     {
        return spieler1;
     }
     if (count % 4 == 1)
     {
        return spieler2;
     }
     if (count % 4 == 2)
     {
        return spieler3;
     }
     if (count % 4 == 3)
     {
        return spieler4;
     }
     else
     {
        return null;
     }
}




Frame 3:

Hier sieht man ein Standardfragefeld mit Frage und 4 Antwortmöglichkeiten. auswahlUeberpruefen1 gilt somit für die erste Antwortmöglichkeit. Auch wenn die gotoAndStop's auf Frame 4 und 5 verweise, bitte nicht wundern, das ist nur der Infodialog mit der "Beglückwünschung" zur Antwort.

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
function auswahlUeberpruefen1(e:MouseEvent):void
{
     if (XMLdaten_antwort1[frageZahl].toString() == XMLdaten_richtige_Antwort[frageZahl].toString())
     {
        richtigeAntwort = true;
        gotoAndStop(5);
 
     }
     else
     {
        richtigeAntwort = false;
        gotoAndStop(4);
     }
}

function auswahlUeberpruefen2(e:MouseEvent):void
{
     if (XMLdaten_antwort2[frageZahl].toString() == XMLdaten_richtige_Antwort[frageZahl].toString())
     {
        richtigeAntwort = true;
        gotoAndStop(5);
 
 
     }
     else
     {
        richtigeAntwort = false;
        gotoAndStop(4);
 
 
     }
}
function auswahlUeberpruefen3(e:MouseEvent):void
{
     if (XMLdaten_antwort3[frageZahl].toString() == XMLdaten_richtige_Antwort[frageZahl].toString())
     {
             richtigeAntwort = true;
        gotoAndStop(5);
 
     }
     else
     {
        richtigeAntwort = false;
        gotoAndStop(4);
     }
}
function auswahlUeberpruefen4(e:MouseEvent):void
{
     if (XMLdaten_antwort4[frageZahl].toString() == XMLdaten_richtige_Antwort[frageZahl].toString())
     {
        richtigeAntwort = true;
        gotoAndStop(5);
     }
     else
     {      
        richtigeAntwort = false;
        gotoAndStop(4);
     }
}




Angehängte Dateien:
Bild Spielfeld.jpg184.24 KB
KanoneTM#2
Benutzerbild von KanoneTM
Beiträge: 2
Wohnort: Leipzig
Registriert: Dec 2011

Themenautor/in

07.12.2011, 07:56

Nach der Nachtschicht gestern habe ich ein Workaround eingerichtet, mit dem es nun klappt.
Weis zwar immernoch nicht warum Objekte ihre Koordinaten zurückgesetzt bekommen, aber nicht so schlimm.
Für die die es interessiert stelle ich den Code einmal online.
Das Prinzip ist das Zwischenspeichern der Koordinaten und vor jedem Aufbau des Spielfeldes die zuweisung der zwischengespeicherten Werte.

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
function falschGeantwortet():void
{
     Object(this).autoGelb.x = spieler1.zielKoorX;
     Object(this).autoGelb.y = spieler1.zielKoorY;
 
     Object(this).autoGruen.x = spieler2.zielKoorX;
     Object(this).autoGruen.y = spieler2.zielKoorY;
 
     Object(this).autoBlau.x = spieler3.zielKoorX;
     Object(this).autoBlau.y = spieler3.zielKoorY;
 
     Object(this).autoRot.x = spieler4.zielKoorX;
     Object(this).autoRot.y = spieler4.zielKoorY;
}

function richtigGeantwortet():void
{
 
  // Objekte bekomen die Koordinaten der Zwischenspeicherorte

     Object(this).autoGelb.x = spieler1.zielKoorX;
     Object(this).autoGelb.y = spieler1.zielKoorY;
 
     Object(this).autoGruen.x = spieler2.zielKoorX;
     Object(this).autoGruen.y = spieler2.zielKoorY;
 
     Object(this).autoBlau.x = spieler3.zielKoorX;
     Object(this).autoBlau.y = spieler3.zielKoorY;
 
     Object(this).autoRot.x = spieler4.zielKoorX;
     Object(this).autoRot.y = spieler4.zielKoorY;
 
     count--;
     switch (count % 4)
     {
        case 0 :
           Object(this).autoGelb.x = akutellerSpieler.zielKoorX;
           Object(this).autoGelb.y = akutellerSpieler.zielKoorY;
           break;
        case 1 :
           Object(this).autoGruen.x = akutellerSpieler.zielKoorX;
           Object(this).autoGruen.y = akutellerSpieler.zielKoorY;
           break;
        case 2 :
           Object(this).autoBlau.x = akutellerSpieler.zielKoorX;
           Object(this).autoBlau.y = akutellerSpieler.zielKoorY;
           break;
        case 3 :
           Object(this).autoRot.x = akutellerSpieler.zielKoorX;
           Object(this).autoRot.y = akutellerSpieler.zielKoorY;
           break;
     }
 
  //Zwischenspeicher bekommen die Koordinaten der Objekte auf dem Spielfeld.

     spieler1.setZielKoor(Object(this).autoGelb.x,Object(this).autoGelb.y);
     spieler2.setZielKoor(Object(this).autoGruen.x,Object(this).autoGruen.y);
     spieler3.setZielKoor(Object(this).autoBlau.x,Object(this).autoBlau.y);
     spieler4.setZielKoor(Object(this).autoRot.x, Object(this).autoRot.y);
 
 
     count++;
}

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2024 Sebastian Wichmann - Flashhilfe.de