Flashhilfe.de - Flash Community

berechnung funzt nicht wenn swf extern geladen [Flash 8]

 


AntwortenRegistrieren Seite1  

italia#1
Benutzerbild von italia
Beiträge: 179
Wohnort: Berlin/ Turin/ Hamburg
Registriert: Jun 2006

06.08.2007, 12:40

Hi Leute
ich glaub ich seh den wald vor lauter Bäumen nicht mehr.
Ich habe hier ein Jump n' rum spiel das ich extern in einen film reinlade. Wenn ich die jump n#run  swf öffne geht das allses aber nicht mehr wenn ich es in einen anderen film reinlade.
bei Key.Down sollte sich die figur eigendlich bewegen, tut sie aber nicht.
Vielleicht seh ich einfach nicht wo der fehler liegen könnte. Kann mir jemand bitte helfen?
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
bg_mukke = new Sound(sound_mc);
bg_mukke.attachSound("bg_mukke");
bg_mukke.setVolume(80);
bg_mukke.start(0, 999);
ting = new Sound(sound_mc);
ting.attachSound("ting");
ting.setVolume(40);
boing = new Sound(sound_mc);
boing.attachSound("boing");
ouch = new Sound(sound_mc);
ouch.attachSound("ouch");
klatsch = new Sound(sound_mc);
klatsch.attachSound("slap");
fall = new Sound(sound_mc);
fall.attachSound("fall");
pust = new Sound(sound_mc2);
pust.attachSound("pust");
pust.setVolume(20);
//Werte Initialisieren
gravity = 1;
xspeed = 0;
yspeed = 0;
jump = true;
jumpHeight = 8;
runspeed = 3;
beschleunigung = 0.5;
hit_bad = false;
leben = 3;
start_x = 20;
punkte = 0;
level = 1;
gefunden = 0;
id_count = 1;
down_count = 1;
kontrolle = true;
p_move = true;
fallsound = false;
//_root.fall = false;
//Funktionen
//___________________________________________________________________________________________________________________
function bewegung() {   
   if (!bkg.hitTest(player._x, player._y, true) && bkg.hitTest(player._x, player._y-30, true)) {
      //countx++;
      player._y -= 1;
   }
   if (!bkg.hitTest(player._x, player._y, true) && bkg.hitTest(player._x-10, player._y, true)) {
      //countx++; <<-- anstieg rechts
      player._x -= 1;
   }
      if (!bkg.hitTest(player._x, player._y, true) && bkg.hitTest(player._x+10, player._y, true)) {
         //countx++;  <<-- anstieg links
         player._x += 1;
      } 
      if (!bkg.hitTest(player._x, player._y+1, true)) {
         if (bkg.hitTest(player._x+1, player._y+2, true)) {
            player._x += 3;
         } else if (bkg.hitTest(player._x-1, player._y+2, true)) {
            player._x -= 3;
         }
   }   
   if (rotation_count != 0) {// stark abrutschen/ansteigen
      if (rotation_count<0) {
         rotation_count += 0.5;
      } else {
         rotation_count -= 0.5;
      }
   }
   player._rotation = rotation_count;//bergauf nach vorn kippen
   if (auf_eis) {// Berechnung auf Eis
      current_beschleunigung = 0.1;
   } else {
      current_beschleunigung = beschleunigung;
   }
   if (nextlvl == true) {// Punkt gefunden
      level++;
      gotoAndPlay("lvl_"+level);
   }
   if (hit_bad) {//--- bei getroffen oder Fall
      fallsound = false;
      stop();
      player.gotoAndStop("tot");
      leben--;
   } else {
      if (p_move) {// --- Tomalik Animation
         if (p_richtung == "links") {
            player._xscale = 100;
            //trace(xspeed)
         } else {
            player._xscale = -100;
         }
         /*if (yspeed<0) {
            player.gotoAndStop("jump");
         } else {*/

            if (xspeed<0.5 && xspeed>-0.5 && xspeed != 0) {
            } else {
               if (!key_press) {
                  staubwolke();
               //}
            }
         }
         // ==============================
         if (kontrolle) {// player movement  [ KEYS ]
            if (Key.isDown(Key.up)) {
               if (jump) {
                  yspeed = yspeed-jumpHeight;//<<<<<<<<<<<<<<< PROBLEM
                  jump = false;
                  player.gotoAndStop("jump");
                  boing.start(0, 1);
                  rotation_count = 0;
               }
            } else if (Key.isDown(Key.right)) {
               player.gotoAndStop("run");
               if (xspeed<runspeed) {
                  //trace("right"); <-- macht er
                  xspeed = xspeed+current_beschleunigung; //<<<<<<<<<<<<<<< PROBLEM
                  p_richtung = "rechts";
                  key_press = true;
               }
            } else if (Key.isDown(Key.left)) {
               player.gotoAndStop("run");
               if (xspeed>-runspeed) {
                  //trace("left"); <-- macht er
                  xspeed = xspeed-current_beschleunigung; //<<<<<<<<<<<<<<< PROBLEM
                  p_richtung = "links";
                  key_press = true;
               }
            } else {
               key_press = false;
               player.gotoAndStop("stand");
               // ==============================
               // apply horizontal inertia
               if (auf_eis) {
                  xspeed = xspeed*0.99;
               } else {
                  if (xspeed != 0) {
                     xspeed = xspeed*0.9;
                  }
               }
            }
            /*else if (Key.isDown(Key.down)) {
            // Down
            //_root.nextlvl = true;
            } */

         }
         // ==============================       
         // apply gravity
         yspeed = yspeed+gravity;
         // ==============================
         // where player would like to be
         x = player._x+xspeed;
         y = player._y+yspeed;
         // ==============================
         // hit test x against walls
         if (bkg.hitTest(x, player._y, true)) {
            player._x = x;
            
         } else {
            if (key_press == true) {// abrutschen(einfach)
               if (bkg.hitTest(x, player._y-3, true)) {
                  player._y -= 1;
                  if (p_richtung == "rechts") {
                     player._x += 2;
                     
                  } else {
                     player._x -= 2;
                  }
               } else {
                  if (key_press == true) {// starker anstieg
                     if (bkg.hitTest(x, player._y-6, true)) {
                        player._y -= 3;
                        if (p_richtung == "rechts") {
                           player._x += 2;
                           rotation_count = 7;
                           dreck();
                        } else {
                           player._x -= 2;
                           rotation_count = -7;
                           dreck();
                        }
                     } else {
                        player.gotoAndStop("stand");
                        this.xspeed = 0;
                     }
                  }
               }
            }
         }
         //==========================
         //hittest Decke
         if (!bkg.hitTest(player._x, player._y-66, true) && !hitroof) {
            yspeed = 0;
            hitroof = true;
         }
         // ==============================       
         // hit test y against walls
         if (bkg.hitTest(player._x, y, true)) {
            player._y = y;
         } else {
            if (yspeed<0) {
               // hit roof
            } else {
               // hit floor
               jump = true;
            }
            yspeed = 0;
            hitroof = false;
         }
      }
   }
}


Werbung
Beiträge: 0
Registriert: Feb 2016


mathis#2
Benutzerbild von mathis
Beiträge: 1443
Wohnort: bei Kiel
Registriert: Aug 2005

06.08.2007, 12:47

Das ist nciht so einfach...
Ich vermute, dass Problem liegt beim hitTest.
Der geht nämlich dummerweise immer nur von den _root-Koordinaten aus.
Also musst du entweder mit localToGlobal arbeiten, oder immer die Koordinaten des MovieClips in dem die externe SWF liegt dazuzählen (sofern sie nicht skaliert oder gedreht ist).

mathis

italia#3
Benutzerbild von italia
Beiträge: 179
Wohnort: Berlin/ Turin/ Hamburg
Registriert: Jun 2006

Themenautor/in

06.08.2007, 13:34

danke für deine schnelle antwort!
okay ich muss gestehen über localToGlobal bin ich noch nicht gestolpert, an welche stelle muss ich das einsetzen? und wenn ich meinen"mc" bestimmen soll, wie es in der hilfe beschrieben ist, ist es dann "this"?
gruß
che

mathis#4
Benutzerbild von mathis
Beiträge: 1443
Wohnort: bei Kiel
Registriert: Aug 2005

06.08.2007, 20:09

Wird nichts werden.

Ganz oben in die bewegen Funktion
ActionScript:
1
2
var playerPos:Object = {x:player._x, y:player._y};
localToGlobal(playerPos);


Und bei jedem hitTest dann playerPos.x bzw. playerPos.y in den Klammern angeben.

mathis

Werbung
Beiträge: 0
Registriert: Feb 2016


italia#5
Benutzerbild von italia
Beiträge: 179
Wohnort: Berlin/ Turin/ Hamburg
Registriert: Jun 2006

Themenautor/in

07.08.2007, 10:10

hmm... ich hab jetzt deinen rat befolgt und einigermasen verstanden habe ich auch was das ganze macht, aber mein player läuft nicht. weder in der swf "normal", noch geladen...
hab ich das denn jetzt auch richtig gemacht?

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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
//Werte Initialisieren
gravity = 1;
xspeed = 0;
yspeed = 0;
jump = true;
jumpHeight = 8;
runspeed = 3;
beschleunigung = 0.5;
hit_bad = false;
leben = 3;
start_x = 20;
punkte = 0;
level = 1;
gefunden = 0;
id_count = 1;
down_count = 1;
kontrolle = true;
p_move = true;
fallsound = false;
//Funktionen_________________________________________________________________________________________________
function bewegung() {
   var playerPos:Object = {x:player._x, y:player._y}; //<<----------------------HIER----------------------
   localToGlobal(playerPos);
   if (!bkg.hitTest(playerPos.x, playerPos.y, true) && bkg.hitTest(playerPos.x, playerPos.y-30, true)) {
      playerPos.y -= 1;
   }
   if (!bkg.hitTest(playerPos.x, playerPos.y, true) && bkg.hitTest(playerPos.x-10, playerPos.y, true)) {
      //<<-- anstieg rechts
      playerPos.x -= 1;
   }
   if (!bkg.hitTest(playerPos.x, playerPos.y, true) && bkg.hitTest(playerPos.x+10, playerPos.y, true)) {
      //<<-- anstieg links
      playerPos.x += 1;
   }
   if (!bkg.hitTest(playerPos.x, playerPos.y+1, true)) {
      if (bkg.hitTest(playerPos.x+1, playerPos.y+2, true)) {
         playerPos.x += 3;
      } else if (bkg.hitTest(playerPos.x-1, playerPos.y+2, true)) {
         playerPos.x -= 3;
      }
   }
   if (rotation_count != 0) {
      // stark abrutschen/ansteigen
      if (rotation_count<0) {
         rotation_count += 0.5;
      } else {
         rotation_count -= 0.5;
      }
   }
   player._rotation = rotation_count;
   //bergauf nach vorn kippen
   if (auf_eis) {
      // Berechnung auf Eis
      current_beschleunigung = 0.1;
   } else {
      current_beschleunigung = beschleunigung;
   }
   if (nextlvl == true) {
      // Punkt gefunden
      level++;
      gotoAndPlay("lvl_"+level);
   }
   if (hit_bad) {
      //--- bei getroffen oder Fall
      fallsound = false;
      stop();
      player.gotoAndStop("tot");
      leben--;
   } else {
      if (p_move) {
         // --- Tomalik Animation
         if (p_richtung == "links") {
            player._xscale = 100;
         } else {
            player._xscale = -100;
         }
         if (xspeed<0.5 && xspeed>-0.5 && xspeed != 0) {
         } else {
            if (!key_press) {
               staubwolke();
            }
         }
         // ==============================
         if (kontrolle) {
            // player movement  [ KEYS ]
            if (Key.isDown(Key.up)) {
               if (jump) {
                  yspeed = yspeed-jumpHeight;
                  jump = false;
                  player.gotoAndStop("jump");
                  boing.start(0, 1);
                  rotation_count = 0;
               }
            } else if (Key.isDown(Key.right)) {
               player.gotoAndStop("run");
               if (xspeed<runspeed) {
                  xspeed = xspeed+current_beschleunigung;
                  p_richtung = "rechts";
                  key_press = true;
               }
            } else if (Key.isDown(Key.left)) {
               player.gotoAndStop("run");
               if (xspeed>-runspeed) {
                  xspeed = xspeed-current_beschleunigung;
                  p_richtung = "links";
                  key_press = true;
               }
            } else {
               key_press = false;
               player.gotoAndStop("stand");
               // ==============================
               if (auf_eis) {
                  xspeed = xspeed*0.99;
               } else {
                  if (xspeed != 0) {
                     xspeed = xspeed*0.9;
                  }
               }
            }
         }
         // ==============================       
         // apply gravity
         yspeed = yspeed+gravity;
         // ==============================
         //Pos.x = player._x+xspeed;
         //Pos.y = player._y+yspeed;
         // ==============================
         // hit test x against walls
         if (bkg.hitTest(playerPos.x+xspeed, playerPos.y, true)) {//<<---------UND HIER---------
            player._x = playerPos.x+xspeed;
         } else {
            if (key_press == true) {
               // abrutschen(einfach)
               if (bkg.hitTest(playerPos.x+xspeed, playerPos.y-3, true)) {
                  player._y -= 1;
                  if (p_richtung == "rechts") {
                     player._x += 2;
                  } else {
                     player._x -= 2;
                  }
               } else {
                  if (key_press == true) {
                     // starker anstieg
                     if (bkg.hitTest(playerPos.x+xspeed, playerPos.y-6, true)) {
                        player._y -= 3;
                        if (p_richtung == "rechts") {
                           player._x += 2;
                           rotation_count = 7;
                           dreck();
                        } else {
                           player._x -= 2;
                           rotation_count = -7;
                           dreck();
                        }
                     } else {
                        player.gotoAndStop("stand");
                        xspeed = 0;
                     }
                  }
               }
            }
         }
         //==========================
         //hittest Decke
         if (!bkg.hitTest(playerPos.x, playerPos.y-66, true) && !hitroof) {
            yspeed = 0;
            hitroof = true;
         }
         // ==============================         
         // hit test y against walls
         if (bkg.hitTest(playerPos.x, playerPos.y+yspeed, true)) {
            player._y = playerPos.y+yspeed;
         } else {
            if (yspeed<0) {
            } else {
               jump = true;
            }
            yspeed = 0;
            hitroof = false;
         }
      }
   }
}

ich fühl mich n bisschen unsicher, da ich damit noch gearbeitet habe.

Danke für die hilfe

che

pact kiz reman#6
Benutzerbild von pact kiz reman
Beiträge: 172
Registriert: May 2006

07.08.2007, 11:56

Ich glaube ja, du solltest mehr Augenmark auf die Pfade legen.
Der Einsatz _root.x oder _level0.x etc. hilft vielleicht Variablen besser zu übergeben, bzw. überhaupt. - Ich fand deinen Ansatz am Anfang ja ganz richtig.

Gruß!

Gruss + Dank!
Patrick
mathis#7
Benutzerbild von mathis
Beiträge: 1443
Wohnort: bei Kiel
Registriert: Aug 2005

07.08.2007, 13:37

Ansich sieht das richtig aus.
Aber wie wird die bewegen-Funktion eigentlich aufgerufen?
Da muss es ja noch andere Script-Teile geben.

mathis

italia#8
Benutzerbild von italia
Beiträge: 179
Wohnort: Berlin/ Turin/ Hamburg
Registriert: Jun 2006

Themenautor/in

07.08.2007, 15:13

ich werd mal n bisschen ausholen müssen... nein nein so schlimm wird es nicht.
Eigendlich wird das spiel in einem Browserfenster geöffnet... das sich das projekt aber geändert hat soll ich das spiel in einen Flashfilm reinladen... sprich mit _root. kann ich nicht arbeiten.
Dann hat meine spielrunde 2 bilder, im ersten wird bewegung(); aufgerufen und im zweiten wird man zurückgeschickt zum ersten. (bis ich meinen punkt eingesammelt habe und zur nächsten spielrunde komme).
na ja und dann gibt es da noch n paar scriptschnipsel die aber nix mit der bewegung zu tun haben.

che

italia#9
Benutzerbild von italia
Beiträge: 179
Wohnort: Berlin/ Turin/ Hamburg
Registriert: Jun 2006

Themenautor/in

08.08.2007, 11:10

moin
ich muss euch nochmal fragen

ich hab das system jetzt verstanden... aber am  einbauen haperts also bei "GEHT" gehst, aber was mach ich bei "HIER" und "UND HIER"?
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
function bewegung() {
   var playerPos:Object = {x:player._x, y:player._y}; //<<----------------------GEHT----------------------
   this.localToGlobal(playerPos);
   if (!bkg.hitTest(playerPos.x, playerPos.y, true) && bkg.hitTest(playerPos.x, playerPos.y-30, true)) {
      player._y -= 1;
   }
   if (!bkg.hitTest(playerPos.x, playerPos.y, true) && bkg.hitTest(playerPos.x-10, playerPos.y, true)) {
      //<<-- anstieg rechts
      player._x -= 1;
   }
   if (!bkg.hitTest(playerPos.x, playerPos.y, true) && bkg.hitTest(playerPos.x+10, playerPos.y, true)) {
      //<<-- anstieg links
      player._x += 1;
   }
   if (!bkg.hitTest(playerPos.x, playerPos.y+1, true)) {
      if (bkg.hitTest(playerPos.x+1, playerPos.y+2, true)) {
         player._x += 3;
      } else if (bkg.hitTest(playerPos.x-1, playerPos.y+2, true)) {
         player._x -= 3;
      }
   }
   if (rotation_count != 0) {
      // stark abrutschen/ansteigen
      if (rotation_count<0) {
         rotation_count += 0.5;
      } else {
         rotation_count -= 0.5;
      }
   }
   player._rotation = rotation_count;
   //bergauf nach vorn kippen
   if (auf_eis) {
      // Berechnung auf Eis
      current_beschleunigung = 0.1;
   } else {
      current_beschleunigung = beschleunigung;
   }
   if (nextlvl == true) {
      // Punkt gefunden
      level++;
      gotoAndPlay("lvl_"+level);
   }
   if (hit_bad) {
      //--- bei getroffen oder Fall
      fallsound = false;
      stop();
      player.gotoAndStop("tot");
      leben--;
   } else {
      if (move) {
         // --- Tomalik Animation
         if (p_richtung == "links") {
            player._xscale = 100;
         } else {
            player._xscale = -100;
         }
         if (xspeed<0.5 && xspeed>-0.5 && xspeed != 0) {
         } else {
            if (!key_press) {
               staubwolke();
            }
         }
         // ==============================
         if (kontrolle) {
            // player movement  [ KEYS ]
            if (Key.isDown(Key.UP)) {
               if (jump) {
                  yspeed = yspeed-jumpHeight;
                  jump = false;
                  player.gotoAndStop("jump");
                  boing.start(0, 1);
                  rotation_count = 0;
               }
            } else if (Key.isDown(Key.RIGHT)) {
               player.gotoAndStop("run");
               if (xspeed<runspeed) {
                  xspeed = xspeed+current_beschleunigung;
                  p_richtung = "rechts";
                  key_press = true;
               }
            } else if (Key.isDown(Key.LEFT)) {
               player.gotoAndStop("run");
               if (xspeed>-runspeed) {
                  xspeed = xspeed-current_beschleunigung;
                  p_richtung = "links";
                  key_press = true;
               }
            } else {
               key_press = false;
               player.gotoAndStop("stand");
               // ==============================
               if (auf_eis) {
                  xspeed = xspeed*0.99;
               } else {
                  if (xspeed != 0) {
                     xspeed = xspeed*0.9;
                  }
               }
            }
         }
         // ==============================       
         // apply gravity
         yspeed = yspeed+gravity;
         // ==============================
         //var pos:Object = {x:player._x, y:player._y}; //<<----------------------HIER----------------------
         //this.localToGlobal(pos);
         x = player._x+xspeed;
         y = player._y+yspeed;
         // ==============================
         // hit test x against walls
         if (bkg.hitTest(x, player._y, true)) {//<<---------UND HIER---------
            player._x = x;
         } else {
            if (key_press == true) {
               // abrutschen(einfach)
               if (bkg.hitTest(x, player._y-3, true)) {
                  player._y -= 1;
                  if (p_richtung == "rechts") {
                     player._x += 2;
                  } else {
                     player._x -= 2;
                  }
               } else {
                  if (key_press == true) {
                     // starker anstieg
                     if (bkg.hitTest(x, player._y-6, true)) {
                        player._y -= 3;
                        if (p_richtung == "rechts") {
                           player._x += 2;
                           rotation_count = 7;
                           dreck();
                        } else {
                           player._x -= 2;
                           rotation_count = -7;
                           dreck();
                        }
                     } else {
                        player.gotoAndStop("stand");
                        xspeed = 0;
                     }
                  }
               }
            }
         }
         //==========================
         //hittest Decke
         if (!bkg.hitTest(player._x, player._y-66, true) && !hitroof) {
            yspeed = 0;
            hitroof = true;
         }
         // ==============================         
         // hit test y against walls
         if (bkg.hitTest(player._x, y, true)) {
            player._y = y;
         } else {
            if (yspeed<0) {
            } else {
               jump = true;
            }
            yspeed = 0;
            hitroof = false;
         }
      }
   }
}

wenn ich da playerPos.x / .y eintragegeht es nicht mehr auch nicht in der eigendlich swf, kann ich da noch n localToGlobal einsetzen oder bringt das alles durcheinander, ich probier noch n bisschen rum , würd mich aber  über ne antwort freuen.
gruss che

italia#10
Benutzerbild von italia
Beiträge: 179
Wohnort: Berlin/ Turin/ Hamburg
Registriert: Jun 2006

Themenautor/in

09.08.2007, 16:51

Jetzt lasst mich bitte nicht im stich- ihr habt mir doch sonst immer helfen können, seid tagen irre ich im netz und find keine lösung

Also nur so fürs grundverständnis.  muss ich localToGlobal in meinen spiel aufrugen oder im hauptfilm, in den ich es reinlade?
und hab ich überhaupt den richtigen ansatz?
nach tagelangem lesen bin ich völlig durcheinander.

bin für eure antworten dankbar
grüße che

italia#11
Benutzerbild von italia
Beiträge: 179
Wohnort: Berlin/ Turin/ Hamburg
Registriert: Jun 2006

Themenautor/in

14.08.2007, 14:52

also gut ich versuch es weiter
vllt kann mir doch noch jemand helfen.

ich habe mich durch einiges material geschlagen und hab das glaub ich, hoffendlich einigermasen kapiert... aber nu hänge ich hier doch rum und komm nicht weiter.

ich hab die koordinaten mit localToGlobal bearbeitet, und laut meinen traces scheint auch alles richitg zu liegen aber irgendwie wird die 2. hittest-reihe nicht richtig beachtet(???)... ach keine ahnung werd langsam projektblind... aufjedenfall steht meine figur richtig und reagiert auf die Tasten aber bewegt sich weder vor noch zurück oder nach oben.


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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
function bewegung() {
   var playerPos = new Object();
   playerPos.x = 0;
   playerPos.y = 0;
   localToGlobal(playerPos);
   if (!bkg.hitTest(playerPos.x, playerPos.y, true) && bkg.hitTest(playerPos.x, playerPos.y-30, true)) {
      player._y -= 1;
   }
   if (!bkg.hitTest(playerPos.x, playerPos.y, true) && bkg.hitTest(playerPos.x-10, playerPos.y, true)) {
      player._x -= 1;
   }
   if (!bkg.hitTest(playerPos.x, playerPos.y, true) && bkg.hitTest(playerPos.x+10, playerPos.y, true)) {
      player._x += 1;
   }
   if (!bkg.hitTest(playerPos.x, playerPos.y+1, true)) {
      if (bkg.hitTest(playerPos.x+1, playerPos.y+2, true)) {
         player._x += 3;
      } else if (bkg.hitTest(playerPos.x-1, playerPos.y+2, true)) {
         player._x -= 3;
      }
   }
   if (rotation_count != 0) {
      if (rotation_count<0) {
         rotation_count += 0.5;
      } else {
         rotation_count -= 0.5;
      }
   }
   player._rotation = rotation_count;
   if (auf_eis) {
      current_beschleunigung = 0.1;
   } else {
      current_beschleunigung = beschleunigung;
   }
   if (nextlvl == true) {
      level++;
      gotoAndPlay("lvl_"+level);
   }
   if (hit_bad) {
      fallsound = false;
      stop();
      player.gotoAndStop("tot");
      leben--;
   } else {
      if (move) {
         if (p_richtung == "links") {
            player._xscale = 100;
         } else {
            player._xscale = -100;
         }
         if (xspeed<0.5 && xspeed>-0.5 && xspeed != 0) {
         } else {
            if (!key_press) {
               staubwolke();
            }
         }
         if (kontrolle) {
            if (Key.isDown(Key.UP)) {
               if (jump) {
                  yspeed = yspeed-jumpHeight;
                  jump = false;
                  player.gotoAndStop("jump");
                  boing.start(0, 1);
                  rotation_count = 0;
               }
            } else if (Key.isDown(Key.RIGHT)) {
               player.gotoAndStop("run");
               if (xspeed<runspeed) {
                  xspeed = xspeed+current_beschleunigung;
                  p_richtung = "rechts";
                  key_press = true;
               }
            } else if (Key.isDown(Key.LEFT)) {
               player.gotoAndStop("run");
               if (xspeed>-runspeed) {
                  xspeed = xspeed-current_beschleunigung;
                  p_richtung = "links";
                  key_press = true;
               }
            } else {
               key_press = false;
               player.gotoAndStop("stand");
            }
         }
         yspeed = yspeed+gravity;
         var myPoint = new Object();
         myPoint.x = playerPos.x+xspeed;
         myPoint.y = playerPos.y+yspeed;
         localToGlobal(myPoint);
         trace("playerPos.x: "+playerPos.x+" ; myPoint.x: "+myPoint.x);
         trace("");
         trace("playerPos.y: "+playerPos.y+" ; myPoint.y: "+myPoint.y);
         trace("");
         if (bkg.hitTest(myPoint.x, playerPos.y, true)) {
// HIER PASSIERT NIX WENN ICH DEN FILM LADE
            player._x = myPoint.x;
         } else {
            if (key_press == true) {
               if (bkg.hitTest(myPoint.x, playerPos.y-3, true)) {
                  player._y -= 1;
                  if (p_richtung == "rechts") {
                     player._x += 2;
                  } else {
                     player._x -= 2;
                  }
               } else {
                  if (key_press == true) {
                     if (bkg.hitTest(myPoint.x, playerPos.y-6, true)) {
                        player._y -= 3;
                        if (p_richtung == "rechts") {
                           player._x += 2;
                           rotation_count = 7;
                           dreck();
                        } else {
                           player._x -= 2;
                           rotation_count = -7;
                           dreck();
                        }
                     } else {
                        player.gotoAndStop("stand");
                        xspeed = 0;
                     }
                  }
               }
            }
         }
         if (!bkg.hitTest(playerPos.x, playerPos.y-66, true) && !hitroof) {
            yspeed = 0;
            hitroof = true;
         }         
         if (bkg.hitTest(playerPos.x, myPoint.y, true)) {
            player._y = myPoint.y;
         } else {
            if (yspeed<0) {
            } else {
               jump = true;
            }
            yspeed = 0;
            hitroof = false;
         }
      } 
   }
}


vllt ist es ja nur n schreibfehler, aber ich komm gerade nicht weiter
Danke schonmal
grüße che
Geändert von italia am 14.08.07 um 14:58 Uhr

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   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de