Ignore:
Timestamp:
01/26/11 02:40:22 (13 years ago)
Author:
atzm
Message:
  • fixed small bug
  • add bullet frame
  • parameter adjust
File:
1 edited

Legend:

Unmodified
Added
Removed
  • pycodeshooter/trunk/shooter/barrage.js

    r96 r106  
    1414 */ 
    1515 
    16 var Barrage = function(bullet, size, color, interval, speed, way, dir) { 
     16var Barrage = function(bullet, size, color, frame, interval, speed, way, dir) { 
    1717    this.bullet   = bullet; 
    1818    this.size     = size; 
    1919    this.color    = color; 
     20    this.frame    = frame; 
    2021    this.interval = interval; 
    2122    this.speed    = speed; 
     
    4445}; 
    4546 
    46 var LinerBarrage = function(bullet, size, color, interval, speed, way, dir) { 
    47     var that = new Barrage(bullet, size, color, interval, speed, way, dir); 
     47var LinerBarrage = function(bullet, size, color, frame, interval, speed, way, dir) { 
     48    var that = new Barrage(bullet, size, color, frame, interval, speed, way, dir); 
    4849 
    4950    that.state  = 0; 
     
    5556 
    5657        trooper.addBullet(this.bullet, this.size, this.color, 
    57                           this.posX(), this.posY(), 
     58                          this.frame, this.posX(), this.posY(), 
    5859                          dir * Math.PI, this.speed); 
    5960 
     
    6263 
    6364            trooper.addBullet(this.bullet, this.size, this.color, 
    64                               this.posX(), this.posY(), 
     65                              this.frame, this.posX(), this.posY(), 
    6566                              (dir - d) * Math.PI, this.speed); 
    6667            trooper.addBullet(this.bullet, this.size, this.color, 
    67                               this.posX(), this.posY(), 
     68                              this.frame, this.posX(), this.posY(), 
    6869                              (dir + d) * Math.PI, this.speed); 
    6970        } 
     
    7677}; 
    7778 
    78 var ArchBarrage = function(bullet, size, color, 
     79var ArchBarrage = function(bullet, size, color, frame, 
    7980                           interval, speed, way, dir, delta) { 
    8081 
    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); 
    8283 
    8384    that.delta = delta; 
    8485 
    85     if (that.way % 2) 
     86    if (!(that.way % 2)) 
    8687        that.way++; 
    8788 
     
    9495            return false; 
    9596 
    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); 
    9798 
    9899        for (var i = 0; i < this.way; i++) { 
    99100            trooper.addBullet(this.bullet, this.size, this.color, 
    100                               this.posX(), this.posY(), 
     101                              this.frame, this.posX(), this.posY(), 
    101102                              angle * Math.PI, this.speed); 
    102103            angle += this.delta; 
     
    110111}; 
    111112 
    112 var CircularBarrage = function(bullet, size, color, 
     113var CircularBarrage = function(bullet, size, color, frame, 
    113114                               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, 
    118116                               interval, speed, way, dir, 2 / way); 
    119117    return that; 
    120 } 
    121  
    122 var DelayedArchBarrage = function(bullet, size, color, 
     118}; 
     119 
     120var DelayedArchBarrage = function(bullet, size, color, frame, 
    123121                                  interval, speed, way, dir, delta) { 
    124122 
    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); 
    126124 
    127125    that.delta = delta; 
    128126 
    129     if (that.way % 2) 
     127    if (!(that.way % 2)) 
    130128        that.way++; 
    131129 
     
    143141        if (this.curAngle == null) 
    144142            this.curAngle = this.angle(trooper, enemy) - 
    145                 this.delta * (this.way / 2); 
     143                this.delta * (this.way - 1) / 2; 
    146144 
    147145        trooper.addBullet(this.bullet, this.size, this.color, 
    148                           this.posX(), this.posY(), 
     146                          this.frame, this.posX(), this.posY(), 
    149147                          this.curAngle * Math.PI, this.speed); 
    150  
    151         this.curAngle += this.delta; 
    152148 
    153149        if (--this.remain <= 0) { 
    154150            return this.reset(); 
    155151        } 
     152 
     153        this.curAngle += this.delta; 
    156154 
    157155        return false; 
     
    167165}; 
    168166 
    169 var DelayedCircularBarrage = function(bullet, size, color, 
     167var DelayedCircularBarrage = function(bullet, size, color, frame, 
    170168                                      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, 
    175170                                      interval, speed, way, dir, 2 / way); 
    176171    return that; 
    177172}; 
    178173 
    179 var DelayedRecursiveArchBarrage = function(bullet, size, color, 
     174var DelayedRecursiveArchBarrage = function(bullet, size, color, frame, 
    180175                                           interval, speed, way, dir, cnt) { 
    181176 
    182     var that = new DelayedArchBarrage(bullet, size, color, 
     177    var that = new DelayedArchBarrage(bullet, size, color, frame, 
    183178                                      interval, speed, way, dir); 
    184179 
     
    204199}; 
    205200 
    206 var DelayedRecursiveCircularBarrage = function(bullet, size, color, 
     201var DelayedRecursiveCircularBarrage = function(bullet, size, color, frame, 
    207202                                               interval, speed, way, dir, cnt) { 
    208203 
    209     var that = new DelayedCircularBarrage(bullet, size, color, 
     204    var that = new DelayedCircularBarrage(bullet, size, color, frame, 
    210205                                          interval, speed, way, dir); 
    211206 
     
    230225}; 
    231226 
    232 var MultiRounderBarrage = function(bullet, size, color, 
     227var MultiRounderBarrage = function(bullet, size, color, frame, 
    233228                                   interval, speed, way, dir, 
    234229                                   klass, radius, num) { 
     230    if (way < 3) 
     231        way = 3; 
     232 
    235233    if (radius == null) { 
    236         radius = size * way; 
     234        radius = size * way * 3; 
    237235        if (radius > 50) 
    238236            radius = 50; 
     
    240238 
    241239    if (num == null) 
    242         num = Math.ceil((1 / way) * 50); 
     240        num = Math.ceil((1 / way) * 5); 
    243241 
    244242    var start = 0.25; 
     
    251249 
    252250        for (var i = 0; i < num; i++) { 
    253             var b = new klass(bullet, size, color, 
     251            var b = new klass(bullet, size, color, frame, 
    254252                              interval, speed, w, dir); 
    255253 
     
    286284}; 
    287285 
    288 var MultiRounderArchBarrage = function(bullet, size, color, 
     286var MultiRounderArchBarrage = function(bullet, size, color, frame, 
    289287                                       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 
     293var MultiRounderDelayedArchBarrage = function(bullet, size, color, frame, 
    303294                                              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 
     300var MultiRounderDelayedRecursiveArchBarrage = function(bullet, size, color, frame, 
    317301                                                       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); 
    327304    return that; 
    328305}; 
     
    337314                     DelayedRecursiveCircularBarrage, 
    338315                     MultiRounderArchBarrage, 
    339                      MultiRounderCircularBarrage, 
    340316                     MultiRounderDelayedArchBarrage, 
    341                      MultiRounderDelayedCircularBarrage, 
    342                      MultiRounderDelayedRecursiveArchBarrage, 
    343                      MultiRounderDelayedRecursiveCircularBarrage]; 
     317                     MultiRounderDelayedRecursiveArchBarrage] 
Note: See TracChangeset for help on using the changeset viewer.