OSDN Git Service

個別キャラクタ関連の実装
author西田 耀 <hikarupsp@users.sourceforge.jp>
Tue, 27 Aug 2013 04:15:51 +0000 (13:15 +0900)
committer西田 耀 <hikarupsp@users.sourceforge.jp>
Tue, 27 Aug 2013 04:15:51 +0000 (13:15 +0900)
www/corelib/classes/EnemyCharacters/EnemyCharacterClass_Bear.js
www/corelib/classes/EnemyCharacters/EnemyCharacterClass_Farmer.js
www/corelib/classes/EnemyCharacters/EnemyCharacterClass_PanTank.js
www/corelib/classes/EnemyCharacters/EnemyCharacterClass_Rat.js
www/corelib/classes/MainCharacters/MainCharacterClass_NakedMan.js
www/corelib/classes/MessageWidgetClass.js
www/corelib/core.js
www/stage/okubo.js

index fc7b8a4..974bf29 100644 (file)
@@ -1,7 +1,16 @@
-var MainCharacterClass_Bear = function(stage, args){
-       MainCharacterClass_Bear.base.apply(this, arguments);
+var EnemyCharacterClass_Bear = function(stage, args){
+       EnemyCharacterClass_Bear.base.apply(this, [stage, [["kuma1.png","kuma2.png","kuma3.png","kuma4.png","kumaready.png","kumaswang.png","kuma3.png","kuma2.png",]]]);
 
+       this.size.x = 64;
+       this.size.y = 64;
+
+       this.chasingRange = 400;
+       this.movingVelocity = 130;
+       this.max_HP = 40;
+       this.HP = this.max_HP;
+       
+       stage.addStageObject(this);
 }.extend(EnemyCharacterClass, {
-       className: "MainCharacterClass_Bear",
+       className: "EnemyCharacterClass_Bear",
 
 });
index c9df005..1c000c0 100644 (file)
@@ -1,7 +1,17 @@
-var MainCharacterClass_Farmer = function(stage, args){
-       MainCharacterClass_Farmer.base.apply(this, arguments);
+var EnemyCharacterClass_Farmer = function(stage, args){
+       EnemyCharacterClass_Farmer.base.apply(this, [stage, [["farmer1.png","farmer2.png","farmer3.png","farmer4.png","farmeraim.png","farmerfire.png","farmercooldown.png","farmerrelord.png","farmerfire.png","farmercooldown.png","farmerrelord.png","farmerfire.png","farmercooldown.png","farmerrelord.png","farmerfire.png","farmercooldown.png","farmerfire.png","farmer3.png","farmer2.png",]]]);
+
+       this.size.x = 50;
+       this.size.y=   100;
+       
+       this.chasingRange = 600;
+       this.movingVelocity = 100;
+       this.max_HP = 150;
+       this.HP = this.max_HP;
+       this.touchDamage = 30;
+       stage.addStageObject(this);
 
 }.extend(EnemyCharacterClass, {
-       className: "MainCharacterClass_Farmer",
+       className: "EnemyCharacterClass_Farmer",
 
 });
index 7a3aa26..c5f0878 100644 (file)
@@ -1,7 +1,35 @@
 var MainCharacterClass_PanTank = function(stage, args){
-       MainCharacterClass_PanTank.base.apply(this, arguments);
+       MainCharacterClass_PanTank.base.apply(this, [stage, [["pantank1.png","pantank2.png","pantank3.png","pantankaim.png","pantankfire.png","pantankcooldown.png",]]]);
 
+       this.size.x = 128;
+       this.size.y = 128;
+       
+       this.chasingRange = 700;
+       this.collisionMargin.top = 90;
+       this.collisionMargin.bottom = 10;
+       
+       this.movingVelocity = 130;
+       
+       this.touchDamage = 30;
+       this.hurt = 0;
+       this.max_HP = 80;
+       this.HP = this.max_HP;
+       
+       this.isItemCollector = false;
+       this.isWeaponed = true;
+
+       stage.addStageObject(this);
 }.extend(EnemyCharacterClass, {
        className: "MainCharacterClass_PanTank",
-
+       fire: function()
+       {
+               if(this.lastFireTick < this.ownerStage.manager.tickCount - this.fireTickInterval){
+                       var f = new FireObjectClass(this.ownerStage, [["bullet.png"]]);
+                       f.maxBoundCount = 1;
+                       f.size.x = 16;
+                       f.size.y = 16;
+                       f.fire(this);
+                       this.lastFireTick = this.ownerStage.manager.tickCount;
+               }
+       },
 });
index 2901e03..75ded8a 100644 (file)
@@ -1,7 +1,17 @@
-var MainCharacterClass_Rat = function(stage, args){
-       MainCharacterClass_Rat.base.apply(this, arguments);
+var EnemyCharacterClass_Rat = function(stage, args){
+       EnemyCharacterClass_Rat.base.apply(this, [stage, [["baka_om1.png","baka_om2.png","baka_om3.png","baka_om4.png",]]]);
 
+       this.size.x = 32;
+       this.size.y = 32;
+       
+       this.chasingRange = 300;
+       
+       this.movingVelocity = 160;
+       this.max_HP = 10;
+       this.HP = this.max_HP;
+       
+       stage.addStageObject(this);
 }.extend(EnemyCharacterClass, {
-       className: "MainCharacterClass_Rat",
+       className: "EnemyCharacterClass_Rat",
 
 });
index 1c6b50d..17ddc38 100644 (file)
@@ -1,6 +1,13 @@
 var MainCharacterClass_NakedMan = function(stage, args){
-       MainCharacterClass_NakedMan.base.apply(this, arguments);
+       MainCharacterClass_NakedMan.base.apply(this, [stage, [["nakedman.png","nakedman2.png",]]]);
 
+       this.size.x = 32;
+       this.size.y = 64;
+       this.movingVelocity = 205;
+       
+       this.ownerUID = stage.manager.userID;
+       stage.userControlledCharacter = this;
+       stage.addStageObject(this, true);
 }.extend(MainCharacterClass, {
        className: "MainCharacterClass_NakedMan",
 
index 9ab9d92..74db68a 100644 (file)
@@ -27,6 +27,7 @@ var MessageWidgetClass = function(manager, args)
        
        this.wBox = null;
        this.isPaused = false;
+       this.closed = args[2];
        
 }.extend(WidgetClass, {
        attach : function(){
@@ -44,6 +45,9 @@ var MessageWidgetClass = function(manager, args)
        },
        detach : function(){
                this.manager.mainArea.removeChild(this.wBox);
+               if(this.closed){
+                       this.closed(this);
+               }
        },
        tick : function(){
                if(!this.manager.UIManager.keyState.cursorDown) this.downKeyPushed = false;
index 0feff09..c497325 100644 (file)
@@ -125,8 +125,6 @@ function GameManager(parent, debugTextName){
 }
 GameManager.prototype = {
        timerTick: function(){
-
-               
                //各オブジェクトの単位時間ごとの動作と再描画を行う
                //単位時間ごとの動作
                this.tickCount++;
@@ -167,15 +165,18 @@ GameManager.prototype = {
                
                //各オブジェクトの走査が終わってから、死亡判定およびステージ再読み込みを行う。
                if(this.userManager.HP == 0){
-                       alert("死んでしまった…");
-                       this.UIManager.clearInput();
-                       if(this.runningStageName){
-                               this.loadStageFromNetwork(this.runningStageName);
-                       } else{
-                               //ローカルモード時は動作を停止させるだけ
-                               this.stopStage();
-                       }
                        this.userManager.HP = this.userManager.max_HP;
+                       this.addWidget(new MessageWidgetClass(this, ["死んでしまった……\n", null, function(w){
+                               w.manager.UIManager.clearInput();
+                               if(w.manager.runningStageName){
+                                       w.manager.loadStageFromNetwork(w.manager.runningStageName);
+                               } else{
+                                       //ローカルモード時は動作を停止させるだけ
+                                       w.manager.stopStage();
+                               }
+                               w.manager.userManager.HP = w.manager.userManager.max_HP;
+                       }]));
+                       
                }
        },
        addWidget: function(w){
index c4e2172..9f6c448 100755 (executable)
@@ -118,163 +118,66 @@ var stage = new PCDSLStageClass(stgInfo, tbl);
 
 stage.runStage = function(){
        PCDSLStageClass.prototype.runStage.apply(this, []);
-       var main = new MainCharacterClass(stage, [["nakedman.png","nakedman2.png",]]);
-       main.size.x = 32;
-       main.size.y=64;
-       main.origin.x =0;
-       main.origin.y =0;
-       main.ownerUID = stage.manager.userID;
-        main.movingVelocity = 205;
-
-       stage.userControlledCharacter = main;
-       stage.addStageObject(main, true);
-       
-       var e1 = new EnemyCharacterClass(stage, [["pantank1.png","pantank2.png","pantank3.png","pantankaim.png","pantankfire.png","pantankcooldown.png",]]);
-       e1.size.x = 128;
-       e1.size.y=   128;
-       e1.origin.x =2800;
-       e1.origin.y =0;
-       e1.chasingRange = 700;
-       e1.collisionMargin.top = 90;
-       e1.collisionMargin.bottom = 10;
-       e1.ownerUID = stage.manager.userID;
-        e1.movingVelocity = 130;
-        e1.touchDamage = 30;
-       
-       
-       //メインキャラクターから受けるダメージの設定
-       e1.hurt = 0;
+       var main = new MainCharacterClass_NakedMan(stage);
+       main.origin.x = 0;
+       main.origin.y = 0;
+
+       var e1 = new MainCharacterClass_PanTank(stage);
+       e1.origin.x = 2800;
+       e1.origin.y = 0;
        
-       e1.max_HP = 80;
-       e1.HP = e1.max_HP;
+       var e2 = new EnemyCharacterClass_Rat(stage);
+       e2.origin.x = 500;
+       e2.origin.y = 200;
 
+       var e3 = new EnemyCharacterClass_Farmer(stage);
+       e3.origin.x = 6200;
+       e3.origin.y = 300;
 
+       var e4 = new EnemyCharacterClass_Bear(stage);
+       e4.origin.x = 5000;
+       e4.origin.y = 300;
        
-       stage.addStageObject(e1);
-       
-       var e2 = new EnemyCharacterClass(stage, [["baka_om1.png","baka_om2.png","baka_om3.png","baka_om4.png",]]);
-       e2.size.x = 32;
-       e2.size.y=   32;
-       e2.origin.x =500;
-       e2.origin.y =200;
-       e2.chasingRange = 300;
-       
-       e2.ownerUID = stage.manager.userID;
-        e2.movingVelocity = 160;
-        e2.max_HP = 10;
-       e2.HP = e2.max_HP;
-        
-        stage.addStageObject(e2);
-        
-        var e3 = new EnemyCharacterClass(stage, [["farmer1.png","farmer2.png","farmer3.png","farmer4.png","farmeraim.png","farmerfire.png","farmercooldown.png","farmerrelord.png","farmerfire.png","farmercooldown.png","farmerrelord.png","farmerfire.png","farmercooldown.png","farmerrelord.png","farmerfire.png","farmercooldown.png","farmerfire.png","farmer3.png","farmer2.png",]]);
-       e3.size.x = 50;
-       e3.size.y=   100;
-       e3.origin.x =6200;
-       e3.origin.y =300;
-       e3.chasingRange = 600;
-       e3.ownerUID = stage.manager.userID;
-        e3.movingVelocity = 100;
-        e3.max_HP = 150;
-       e3.HP = e3.max_HP;
-       e3.touchDamage = 30;
-        stage.addStageObject(e3);
-        
-          var e4 = new EnemyCharacterClass(stage, [["kuma1.png","kuma2.png","kuma3.png","kuma4.png","kumaready.png","kumaswang.png","kuma3.png","kuma2.png",]]);
-       e4.size.x = 64;
-       e4.size.y=   64;
-       e4.origin.x =5000;
-       e4.origin.y =300;
-       e4.chasingRange = 400;
-       e4.ownerUID = stage.manager.userID;
-        e4.movingVelocity = 130;
-        e4.max_HP = 40;
-       e4.HP = e4.max_HP;
-        
-        
-        stage.addStageObject(e4);
-        
-        var e5 = new EnemyCharacterClass(stage, [["baka_om1.png","baka_om2.png","baka_om3.png","baka_om4.png",]]);
-       e5.size.x = 32;
-       e5.size.y=   32;
-       e5.origin.x =1440;
-       e5.origin.y =220;
+       var e5 = new EnemyCharacterClass_Rat(stage);
+       e5.origin.x = 1440;
+       e5.origin.y = 220;
        e5.chasingRange = 270;
        e5.collisionMargin.top = 15;
-       e5.ownerUID = stage.manager.userID;
-        e5.movingVelocity = 200;
-        
-        e5.max_HP = 10;
-       e5.HP = e5.max_HP;
-        
-        
-        stage.addStageObject(e5);
-        
-         var e7 = new EnemyCharacterClass(stage, [["baka_om1.png","baka_om2.png","baka_om3.png","baka_om4.png",]]);
-       e7.size.x = 32;
-       e7.size.y=   32;
-       e7.origin.x =5596;
-       e7.origin.y =0;
+       e5.movingVelocity = 200;
+       
+       var e7 = new EnemyCharacterClass_Rat(stage);
+       e7.origin.x = 5596;
+       e7.origin.y = 0;
        e7.chasingRange = 270;
-       e7.ownerUID = stage.manager.userID;
-        e7.movingVelocity = 70;
-        e7.max_HP = 10;
-       e7.HP = e7.max_HP;
-        
-        
-        stage.addStageObject(e7);
-        
-         var e8 = new EnemyCharacterClass(stage, [["baka_om1.png","baka_om2.png","baka_om3.png","baka_om4.png",]]);
-       e8.size.x = 32;
-       e8.size.y=   32;
-       e8.origin.x =5532;
-       e8.origin.y =0;
+       e7.movingVelocity = 70;
+
+       var e8 = new EnemyCharacterClass_Rat(stage);
+       e8.origin.x = 5532;
+       e8.origin.y = 0;
        e8.chasingRange = 270;
-       e8.ownerUID = stage.manager.userID;
-        e8.movingVelocity = 70;
-        
-        e8.max_HP = 10;
-       e8.HP = e8.max_HP;
-        
-        
-        stage.addStageObject(e8);
-        
-        
-         var e9 = new EnemyCharacterClass(stage, [["baka_om1.png","baka_om2.png","baka_om3.png","baka_om4.png",]]);
+       e8.movingVelocity = 70;
+
+       var e9 = new EnemyCharacterClass_Rat(stage);
        e9.size.x = 32;
-       e9.size.y=   32;
+       e9.size.y= 32;
        e9.origin.x =5564;
-       e9.origin.y =0;
+       e9.origin.y = 0;
        e9.chasingRange = 270;
-       e9.ownerUID = stage.manager.userID;
-        e9.movingVelocity = 70;
-        
-        e9.max_HP = 10;
-       e9.HP = e9.max_HP;
-        
-        
-        stage.addStageObject(e9);
-        
-          var e10 = new EnemyCharacterClass(stage, [["toge.png",]]);
+       e9.movingVelocity = 70;
+
+       var e10 = new EnemyCharacterClass(stage, [["toge.png",]]);
        e10.size.x = 32;
        e10.size.y=   32;
        e10.origin.x =3936;
        e10.origin.y =383;
        e10.chasingRange = 0;
        e10.ownerUID = stage.manager.userID;
-        e10.movingVelocity = 0;
-        e10.touchDamage = 10;
-        e10.hurt = 0;
-        e10.collisionMarginTop = 28;
+       e10.movingVelocity = 0;
+       e10.touchDamage = 10;
+       e10.hurt = 0;
+       e10.collisionMarginTop = 28;
        e10.hurting = false;
-        
-        
-        
-        
-        stage.addStageObject(e10);
-        
-        
-        
-        
+       stage.addStageObject(e10);
        
        var c1 = new EnemyCharacterClass(stage, [["cowm1.png","cowm2.png","cowm3.png","cowm4.png","cowm3.png","cowm2.png",]]);
        c1.size.x = 100;