Changeset 106 for pycodeshooter/trunk/shooter/barrage.js
- Timestamp:
- 01/26/11 02:40:22 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pycodeshooter/trunk/shooter/barrage.js
r96 r106 14 14 */ 15 15 16 var Barrage = function(bullet, size, color, interval, speed, way, dir) {16 var Barrage = function(bullet, size, color, frame, interval, speed, way, dir) { 17 17 this.bullet = bullet; 18 18 this.size = size; 19 19 this.color = color; 20 this.frame = frame; 20 21 this.interval = interval; 21 22 this.speed = speed; … … 44 45 }; 45 46 46 var LinerBarrage = function(bullet, size, color, interval, speed, way, dir) {47 var that = new Barrage(bullet, size, color, interval, speed, way, dir);47 var LinerBarrage = function(bullet, size, color, frame, interval, speed, way, dir) { 48 var that = new Barrage(bullet, size, color, frame, interval, speed, way, dir); 48 49 49 50 that.state = 0; … … 55 56 56 57 trooper.addBullet(this.bullet, this.size, this.color, 57 this. posX(), this.posY(),58 this.frame, this.posX(), this.posY(), 58 59 dir * Math.PI, this.speed); 59 60 … … 62 63 63 64 trooper.addBullet(this.bullet, this.size, this.color, 64 this. posX(), this.posY(),65 this.frame, this.posX(), this.posY(), 65 66 (dir - d) * Math.PI, this.speed); 66 67 trooper.addBullet(this.bullet, this.size, this.color, 67 this. posX(), this.posY(),68 this.frame, this.posX(), this.posY(), 68 69 (dir + d) * Math.PI, this.speed); 69 70 } … … 76 77 }; 77 78 78 var ArchBarrage = function(bullet, size, color, 79 var ArchBarrage = function(bullet, size, color, frame, 79 80 interval, speed, way, dir, delta) { 80 81 81 var that = new Barrage(bullet, size, color, interval, speed, way, dir);82 var that = new Barrage(bullet, size, color, frame, interval, speed, way, dir); 82 83 83 84 that.delta = delta; 84 85 85 if ( that.way % 2)86 if (!(that.way % 2)) 86 87 that.way++; 87 88 … … 94 95 return false; 95 96 96 var angle = this.angle(trooper, enemy) - (this.delta * this.way/ 2);97 var angle = this.angle(trooper, enemy) - (this.delta * (this.way - 1) / 2); 97 98 98 99 for (var i = 0; i < this.way; i++) { 99 100 trooper.addBullet(this.bullet, this.size, this.color, 100 this. posX(), this.posY(),101 this.frame, this.posX(), this.posY(), 101 102 angle * Math.PI, this.speed); 102 103 angle += this.delta; … … 110 111 }; 111 112 112 var CircularBarrage = function(bullet, size, color, 113 var CircularBarrage = function(bullet, size, color, frame, 113 114 interval, speed, way, dir) { 114 if (way % 2) 115 way++; 116 117 var that = new ArchBarrage(bullet, size, color, 115 var that = new ArchBarrage(bullet, size, color, frame, 118 116 interval, speed, way, dir, 2 / way); 119 117 return that; 120 } 121 122 var DelayedArchBarrage = function(bullet, size, color, 118 }; 119 120 var DelayedArchBarrage = function(bullet, size, color, frame, 123 121 interval, speed, way, dir, delta) { 124 122 125 var that = new Barrage(bullet, size, color, interval, speed, way, dir);123 var that = new Barrage(bullet, size, color, frame, interval, speed, way, dir); 126 124 127 125 that.delta = delta; 128 126 129 if ( that.way % 2)127 if (!(that.way % 2)) 130 128 that.way++; 131 129 … … 143 141 if (this.curAngle == null) 144 142 this.curAngle = this.angle(trooper, enemy) - 145 this.delta * (this.way / 2);143 this.delta * (this.way - 1) / 2; 146 144 147 145 trooper.addBullet(this.bullet, this.size, this.color, 148 this. posX(), this.posY(),146 this.frame, this.posX(), this.posY(), 149 147 this.curAngle * Math.PI, this.speed); 150 151 this.curAngle += this.delta;152 148 153 149 if (--this.remain <= 0) { 154 150 return this.reset(); 155 151 } 152 153 this.curAngle += this.delta; 156 154 157 155 return false; … … 167 165 }; 168 166 169 var DelayedCircularBarrage = function(bullet, size, color, 167 var DelayedCircularBarrage = function(bullet, size, color, frame, 170 168 interval, speed, way, dir) { 171 if (way % 2) 172 way++; 173 174 var that = new DelayedArchBarrage(bullet, size, color, 169 var that = new DelayedArchBarrage(bullet, size, color, frame, 175 170 interval, speed, way, dir, 2 / way); 176 171 return that; 177 172 }; 178 173 179 var DelayedRecursiveArchBarrage = function(bullet, size, color, 174 var DelayedRecursiveArchBarrage = function(bullet, size, color, frame, 180 175 interval, speed, way, dir, cnt) { 181 176 182 var that = new DelayedArchBarrage(bullet, size, color, 177 var that = new DelayedArchBarrage(bullet, size, color, frame, 183 178 interval, speed, way, dir); 184 179 … … 204 199 }; 205 200 206 var DelayedRecursiveCircularBarrage = function(bullet, size, color, 201 var DelayedRecursiveCircularBarrage = function(bullet, size, color, frame, 207 202 interval, speed, way, dir, cnt) { 208 203 209 var that = new DelayedCircularBarrage(bullet, size, color, 204 var that = new DelayedCircularBarrage(bullet, size, color, frame, 210 205 interval, speed, way, dir); 211 206 … … 230 225 }; 231 226 232 var MultiRounderBarrage = function(bullet, size, color, 227 var MultiRounderBarrage = function(bullet, size, color, frame, 233 228 interval, speed, way, dir, 234 229 klass, radius, num) { 230 if (way < 3) 231 way = 3; 232 235 233 if (radius == null) { 236 radius = size * way ;234 radius = size * way * 3; 237 235 if (radius > 50) 238 236 radius = 50; … … 240 238 241 239 if (num == null) 242 num = Math.ceil((1 / way) * 5 0);240 num = Math.ceil((1 / way) * 5); 243 241 244 242 var start = 0.25; … … 251 249 252 250 for (var i = 0; i < num; i++) { 253 var b = new klass(bullet, size, color, 251 var b = new klass(bullet, size, color, frame, 254 252 interval, speed, w, dir); 255 253 … … 286 284 }; 287 285 288 var MultiRounderArchBarrage = function(bullet, size, color, 286 var MultiRounderArchBarrage = function(bullet, size, color, frame, 289 287 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, 288 var that = new MultiRounderBarrage(bullet, size, color, frame, 289 interval, speed, way, dir, ArchBarrage); 290 return that; 291 }; 292 293 var MultiRounderDelayedArchBarrage = function(bullet, size, color, frame, 303 294 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, 295 var that = new MultiRounderBarrage(bullet, size, color, frame, 296 interval, speed, way, dir, DelayedArchBarrage); 297 return that; 298 }; 299 300 var MultiRounderDelayedRecursiveArchBarrage = function(bullet, size, color, frame, 317 301 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); 302 var that = new MultiRounderBarrage(bullet, size, color, frame, 303 interval, speed, way, dir, DelayedRecursiveArchBarrage); 327 304 return that; 328 305 }; … … 337 314 DelayedRecursiveCircularBarrage, 338 315 MultiRounderArchBarrage, 339 MultiRounderCircularBarrage,340 316 MultiRounderDelayedArchBarrage, 341 MultiRounderDelayedCircularBarrage, 342 MultiRounderDelayedRecursiveArchBarrage, 343 MultiRounderDelayedRecursiveCircularBarrage]; 317 MultiRounderDelayedRecursiveArchBarrage]
Note: See TracChangeset
for help on using the changeset viewer.