OSDN Git Service

敵が落ちた時に削除されるようにした。
[h58pcdgame/GameScriptCoreLibrary.git] / www / corelib / classes / EnemyCharacterClass.js
1 var EnemyCharacterClass = function(stage, args){
2         EnemyCharacterClass.base.apply(this, arguments);
3         
4         this.movingVelocity = 150;
5         
6         //メインキャラクターを追跡する場合はtrue
7         this.chasing = true;
8         //メインキャラクターを感知する範囲(原点距離がこれ以内の場合に追跡をする。)
9         this.chasingRange = 200;
10         
11         this.touchDamage = 10;
12         this.damagePerTickBase = 60;
13         this.damagePerTickCount = this.damagePerTickBase;
14         this.damaging = false;
15 }.extend(OperatedCharacterClass, {
16         className: "EnemyCharacterClass",
17         tick : function()
18         {
19                 var main = this.ownerStage.userControlledCharacter;
20                 var distX = main.origin.x - this.origin.x;
21                 if(this.chasing && Math.abs(distX) <= this.chasingRange && Math.abs(this.origin.y - main.origin.y) <= this.chasingRange){
22                         if(distX > 0){
23                                 this.goRight();
24                         } else{
25                                 this.goLeft();
26                         }
27                 }
28                 if(this.damaging){
29                         console.log("s");
30                         if(this.damagePerTickCount == this.damagePerTickBase){
31                                 this.ownerStage.manager.userManager.damage(this.touchDamage);
32                         } else{
33                                 this.damagePerTickCount--;
34                                 if(this.damagePerTickCount <= 0){
35                                         this.damagePerTickCount = this.damagePerTickBase;
36                                 }
37                         }
38                 }
39                 
40                 if(this.origin.y > 1000)
41                 {
42                         this.ownerStage.removeStageObject(this);
43                 }
44                 
45                 EnemyCharacterClass.base.prototype.tick.apply(this);
46         },
47         isCollided : function(obj, x, y)
48         {
49                 //MovableStageObjectが(x, y)のとき相手のobjと衝突するか判定
50                 var retv = OperatedCharacterClass.prototype.isCollided.apply(this, arguments);
51                 if(obj == this.ownerStage.userControlledCharacter){
52                         if(retv){
53                                 this.damaging = true;
54                         } else{
55                                 this.damaging = false;
56                                 this.damagePerTickCount = this.damagePerTickBase;
57                         }
58                 }
59                 return retv
60         },
61         
62 });