@@ -159,51 +159,49 @@ module fighter
159
159
var i :number = 0 ;
160
160
var bullet :fighter . Bullet ;
161
161
var myBulletsCount :number = this . myBullets . length ;
162
- var delArr :any [ ] = [ ] ;
163
- for ( ; i < myBulletsCount ; i ++ ) {
162
+ for ( ; i < myBulletsCount ; i ++ ) {
164
163
bullet = this . myBullets [ i ] ;
165
- bullet . y -= 12 * speedOffset ;
166
- if ( bullet . y < - bullet . height )
167
- delArr . push ( bullet ) ;
168
- }
169
- for ( i = 0 ; i < delArr . length ; i ++ ) {
170
- bullet = delArr [ i ] ;
171
- this . removeChild ( bullet ) ;
172
- fighter . Bullet . reclaim ( bullet , "b1" ) ;
173
- this . myBullets . splice ( this . myBullets . indexOf ( bullet ) , 1 ) ;
164
+ if ( bullet . y < - bullet . height ) {
165
+ this . removeChild ( bullet ) ;
166
+ Bullet . reclaim ( bullet ) ;
167
+ this . myBullets . splice ( i , 1 ) ;
168
+ i -- ;
169
+ myBulletsCount -- ;
170
+ }
171
+ bullet . y -= 12 * speedOffset ;
172
+
174
173
}
175
- delArr = [ ] ;
176
174
//敌人飞机运动
177
175
var theFighter :fighter . Airplane ;
178
176
var enemyFighterCount :number = this . enemyFighters . length ;
179
- for ( i = 0 ; i < enemyFighterCount ; i ++ ) {
177
+ for ( i = 0 ; i < enemyFighterCount ; i ++ ) {
180
178
theFighter = this . enemyFighters [ i ] ;
181
- theFighter . y += 4 * speedOffset ;
182
- if ( theFighter . y > this . stageH )
183
- delArr . push ( theFighter ) ;
184
- }
185
- for ( i = 0 ; i < delArr . length ; i ++ ) {
186
- theFighter = delArr [ i ] ;
187
- this . removeChild ( theFighter ) ;
188
- fighter . Airplane . reclaim ( theFighter , "f2" ) ;
189
- theFighter . removeEventListener ( "createBullet" , this . createBulletHandler , this ) ;
190
- theFighter . stopFire ( ) ;
191
- this . enemyFighters . splice ( this . enemyFighters . indexOf ( theFighter ) , 1 ) ;
179
+ if ( theFighter . y > this . stage . stageHeight ) {
180
+ this . removeChild ( theFighter ) ;
181
+ Airplane . reclaim ( theFighter ) ;
182
+ theFighter . removeEventListener ( "createBullet" , this . createEnemyBulletHandler , this ) ;
183
+ theFighter . stopFire ( ) ;
184
+ this . enemyFighters . splice ( i , 1 ) ;
185
+ i -- ;
186
+ enemyFighterCount -- ;
187
+ }
188
+ theFighter . y += 4 * speedOffset ;
189
+
192
190
}
193
- delArr = [ ] ;
194
191
//敌人子弹运动
195
192
var enemyBulletsCount :number = this . enemyBullets . length ;
196
- for ( i = 0 ; i < enemyBulletsCount ; i ++ ) {
193
+ for ( i = 0 ; i < enemyBulletsCount ; i ++ ) {
197
194
bullet = this . enemyBullets [ i ] ;
198
- bullet . y += 8 * speedOffset ;
199
- if ( bullet . y > this . stageH )
200
- delArr . push ( bullet ) ;
201
- }
202
- for ( i = 0 ; i < delArr . length ; i ++ ) {
203
- bullet = delArr [ i ] ;
204
- this . removeChild ( bullet ) ;
205
- fighter . Bullet . reclaim ( bullet , "b2" ) ;
206
- this . enemyBullets . splice ( this . enemyBullets . indexOf ( bullet ) , 1 ) ;
195
+ if ( bullet . y > this . stage . stageHeight ) {
196
+ this . removeChild ( bullet ) ;
197
+ Bullet . reclaim ( bullet ) ;
198
+ this . enemyBullets . splice ( i , 1 ) ;
199
+ i -- ;
200
+ enemyBulletsCount -- ; //数组长度已经改变
201
+ }
202
+
203
+ bullet . y += 8 * speedOffset ;
204
+
207
205
}
208
206
this . gameHitTest ( ) ;
209
207
}
@@ -258,7 +256,7 @@ module fighter
258
256
this . myBullets . splice ( this . myBullets . indexOf ( bullet ) , 1 ) ;
259
257
else
260
258
this . enemyBullets . splice ( this . enemyBullets . indexOf ( bullet ) , 1 ) ;
261
- fighter . Bullet . reclaim ( bullet , bullet . textureName ) ;
259
+ fighter . Bullet . reclaim ( bullet ) ;
262
260
}
263
261
this . myScore += delFighters . length ;
264
262
while ( delFighters . length > 0 ) {
@@ -267,7 +265,7 @@ module fighter
267
265
theFighter . removeEventListener ( "createBullet" , this . createBulletHandler , this ) ;
268
266
this . removeChild ( theFighter ) ;
269
267
this . enemyFighters . splice ( this . enemyFighters . indexOf ( theFighter ) , 1 ) ;
270
- fighter . Airplane . reclaim ( theFighter , "f2" ) ;
268
+ fighter . Airplane . reclaim ( theFighter ) ;
271
269
}
272
270
}
273
271
}
@@ -287,12 +285,12 @@ module fighter
287
285
while ( this . myBullets . length > 0 ) {
288
286
bullet = this . myBullets . pop ( ) ;
289
287
this . removeChild ( bullet ) ;
290
- fighter . Bullet . reclaim ( bullet , "b1" ) ;
288
+ fighter . Bullet . reclaim ( bullet ) ;
291
289
}
292
290
while ( this . enemyBullets . length > 0 ) {
293
291
bullet = this . enemyBullets . pop ( ) ;
294
292
this . removeChild ( bullet ) ;
295
- fighter . Bullet . reclaim ( bullet , "b2" ) ;
293
+ fighter . Bullet . reclaim ( bullet ) ;
296
294
}
297
295
//清理飞机
298
296
var theFighter :fighter . Airplane ;
@@ -301,7 +299,7 @@ module fighter
301
299
theFighter . stopFire ( ) ;
302
300
theFighter . removeEventListener ( "createBullet" , this . createBulletHandler , this ) ;
303
301
this . removeChild ( theFighter ) ;
304
- fighter . Airplane . reclaim ( theFighter , "f2" ) ;
302
+ fighter . Airplane . reclaim ( theFighter ) ;
305
303
}
306
304
//显示成绩
307
305
this . scorePanel . showScore ( this . myScore ) ;
@@ -310,4 +308,4 @@ module fighter
310
308
this . addChild ( this . scorePanel ) ;
311
309
}
312
310
}
313
- }
311
+ }
0 commit comments