Changeset 96 for pycodeshooter/trunk/shooter/barrage.js
- Timestamp:
- 01/22/11 20:15:17 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pycodeshooter/trunk/shooter/barrage.js
r94 r96 36 36 return false; 37 37 }; 38 this.posX = function() { 39 return 0; 40 }; 41 this.posY = function() { 42 return 0; 43 }; 38 44 }; 39 45 … … 49 55 50 56 trooper.addBullet(this.bullet, this.size, this.color, 51 0, 0, dir * Math.PI, this.speed); 52 53 for (i = 2; i < this.way + 1; i++) { 57 this.posX(), this.posY(), 58 dir * Math.PI, this.speed); 59 60 for (var i = 2; i < this.way + 1; i++) { 54 61 var d = 0.5 / i; 55 62 56 63 trooper.addBullet(this.bullet, this.size, this.color, 57 0, 0, (dir - d) * Math.PI, this.speed); 64 this.posX(), this.posY(), 65 (dir - d) * Math.PI, this.speed); 58 66 trooper.addBullet(this.bullet, this.size, this.color, 59 0, 0, (dir + d) * Math.PI, this.speed); 67 this.posX(), this.posY(), 68 (dir + d) * Math.PI, this.speed); 60 69 } 61 70 … … 87 96 var angle = this.angle(trooper, enemy) - (this.delta * this.way / 2); 88 97 89 for ( i = 0; i < this.way; i++) {98 for (var i = 0; i < this.way; i++) { 90 99 trooper.addBullet(this.bullet, this.size, this.color, 91 0, 0, angle * Math.PI, this.speed); 100 this.posX(), this.posY(), 101 angle * Math.PI, this.speed); 92 102 angle += this.delta; 93 103 } … … 136 146 137 147 trooper.addBullet(this.bullet, this.size, this.color, 138 0, 0, this.curAngle * Math.PI, this.speed); 148 this.posX(), this.posY(), 149 this.curAngle * Math.PI, this.speed); 139 150 140 151 this.curAngle += this.delta; … … 216 227 return true; 217 228 }; 229 return that; 230 }; 231 232 var MultiRounderBarrage = function(bullet, size, color, 233 interval, speed, way, dir, 234 klass, radius, num) { 235 if (radius == null) { 236 radius = size * way; 237 if (radius > 50) 238 radius = 50; 239 } 240 241 if (num == null) 242 num = Math.ceil((1 / way) * 50); 243 244 var start = 0.25; 245 246 this.initBarrage = function() { 247 this.brrg = new Array(); 248 this.flag = new Array(); 249 250 var w = Math.ceil(way / num); 251 252 for (var i = 0; i < num; i++) { 253 var b = new klass(bullet, size, color, 254 interval, speed, w, dir); 255 256 b.r = radius; 257 b.posX = function() { 258 start += 1 / (num * 2); 259 this.a = i * (1 / num) + start; 260 return this.r * Math.cos(2 * Math.PI * this.a); 261 }; 262 263 b.posY = function() { 264 return this.r * Math.sin(2 * Math.PI * this.a); 265 }; 266 267 this.brrg.push(b); 268 this.flag.push(false); 269 } 270 }; 271 272 this.update = function(trooper, enemy) { 273 for (var i = 0; i < this.brrg.length; i++) { 274 if (!this.flag[i]) 275 this.flag[i] = this.brrg[i].update(trooper, enemy); 276 } 277 for (var i = 0; i < this.flag.length; i++) { 278 if (!this.flag[i]) 279 return false; 280 } 281 this.initBarrage(); 282 return true; 283 }; 284 285 this.initBarrage(); 286 }; 287 288 var MultiRounderArchBarrage = function(bullet, size, color, 289 interval, speed, way, dir) { 290 var that = new MultiRounderBarrage(bullet, size, color, interval, speed, 291 way, dir, ArchBarrage); 292 return that; 293 }; 294 295 var MultiRounderCircularBarrage = function(bullet, size, color, 296 interval, speed, way, dir) { 297 var that = new MultiRounderBarrage(bullet, size, color, interval, speed, 298 way, dir, CircularBarrage); 299 return that; 300 }; 301 302 var MultiRounderDelayedArchBarrage = function(bullet, size, color, 303 interval, speed, way, dir) { 304 var that = new MultiRounderBarrage(bullet, size, color, interval, speed, 305 way, dir, DelayedArchBarrage); 306 return that; 307 }; 308 309 var MultiRounderDelayedCircularBarrage = function(bullet, size, color, 310 interval, speed, way, dir) { 311 var that = new MultiRounderBarrage(bullet, size, color, interval, speed, 312 way, dir, DelayedCircularBarrage); 313 return that; 314 }; 315 316 var MultiRounderDelayedRecursiveArchBarrage = function(bullet, size, color, 317 interval, speed, way, dir) { 318 var that = new MultiRounderBarrage(bullet, size, color, interval, speed, 319 way, dir, DelayedRecursiveArchBarrage); 320 return that; 321 }; 322 323 var MultiRounderDelayedRecursiveCircularBarrage = function(bullet, size, color, 324 interval, speed, way, dir) { 325 var that = new MultiRounderBarrage(bullet, size, color, interval, speed, 326 way, dir, DelayedRecursiveCircularBarrage); 218 327 return that; 219 328 }; … … 226 335 DelayedCircularBarrage, 227 336 DelayedRecursiveArchBarrage, 228 DelayedRecursiveCircularBarrage]; 337 DelayedRecursiveCircularBarrage, 338 MultiRounderArchBarrage, 339 MultiRounderCircularBarrage, 340 MultiRounderDelayedArchBarrage, 341 MultiRounderDelayedCircularBarrage, 342 MultiRounderDelayedRecursiveArchBarrage, 343 MultiRounderDelayedRecursiveCircularBarrage];
Note: See TracChangeset
for help on using the changeset viewer.