OSDN Git Service

行動異常不具合修正
authornagoling <>
Thu, 31 Oct 2013 23:35:35 +0000 (08:35 +0900)
committernagomi <nagomi@192.168.1.23>
Thu, 31 Oct 2013 23:35:35 +0000 (08:35 +0900)
ctrl.js
lang/ja.js
main.js

diff --git a/ctrl.js b/ctrl.js
index 66effc5..3eb768c 100644 (file)
--- a/ctrl.js
+++ b/ctrl.js
@@ -203,6 +203,9 @@ var WorldCursorTouchEvent = enchant.Class.create(ATouchEvent,{
        touchend : function(e){
        }
 });
+/**
+ * プレイヤーゆっくりの移動を支持
+ */
 var WorldTargetTouchEvent = enchant.Class.create(ATouchEvent,{
        initialize: function (ctl){
                this.ctl = ctl;
@@ -217,6 +220,15 @@ var WorldTargetTouchEvent = enchant.Class.create(ATouchEvent,{
                        var vx = (-backgroundMap.x + e.x) - this.ctl.player.getX() ;
                        var vy = (-backgroundMap.y + e.y) - this.ctl.player.getY() ;
 
+                       //移動先のx,y
+                       //action status
+                       //
+                       ctl.player.cmdQue.push(new CommandQueueObject({
+                               vx:vx,
+                               vy:vy,
+                               date:ctl.getDate(),
+                               actionStatus:EAction.MOVE_TO_COMMAND
+                       }));
                        // this.ctl.player.action.setStatus(EAction.MOVE_TO_COMMAND);
                        // new MoveCommandEvent({
                        //      "vx": vx,
@@ -426,6 +438,12 @@ var MangLabel = enchant.Class.create({
                }
        }
 });
+var CommandQueueObject = enchant.Class.create({
+       initialize: function (_data){
+               this.data = _data;
+       }
+});
+
 var MangMsg = enchant.Class.create({
        initialize: function (ctl){
                this.ctl = ctl;
@@ -490,6 +508,7 @@ var MangMsg = enchant.Class.create({
                        yukkuri.tweet(M.get(myCode,mySize,"EAT_FAILED1"));
                }
                else if(emsg == EMsg.SAY_HELLO){
+
                        if(yukkuri.getAddress(targetYukkuri) === null){
                                yukkuri.tweet(M.get(myCode,mySize,"SAY_HELLO1"));
                        }else{
index 6cb2735..115c300 100644 (file)
@@ -32,11 +32,11 @@ M.BASE.L.UNUN_SPELL1 = "うんうんくさい!";
 M.BASE.L.EAT_FAILED1 = "どぼじで\nたべものさん\nないのおおおおお!?";
 M.BASE.L.SAY_HELLO1 = "%name%は%name%だよ!\nゆっくりしていってね!";
 M.BASE.L.SAY_HELLO2 = "ゆっくりしていってね!";
-M.BASE.L.TARGETING_EAT1 = "ゆゆ??\nたべものさんnはっけんだよ!";
+M.BASE.L.TARGETING_EAT1 = "ゆゆ??\nたべものさん\nはっけんだよ!";
 M.BASE.L.DECLARE_PLACE1 = "ここを%name%の\nゆっくりぷれいすにするよ!";
 M.BASE.L.HUNT1 = "ゆっくりかりをするよ!!";
 M.BASE.L.HUNT2 = "ゆー♪たいっりょうだよ~";
-M.BASE.L.REHUNT1 = "ゆっくりほかのたべものさんさがすよ!";
+M.BASE.L.REHUNT1 = "ゆっくりほかの\nたべものさんさがすよ!";
 M.BASE.L.HUNT_ESCAPE1 = "ゆ~たいりょうだよ~";
 M.BASE.L.YYUYYU1 = "ゆっゆっゆっ♪";
 M.BASE.L.YYUYYU2 = "ゆっくりーのひー\nまったりーのひー\nすっきりーのひー♪";
@@ -44,6 +44,7 @@ M.BASE.L.MOVE_GOTO_HOME1 = "ゆっくりおうちにかえるよ!";
 
 
 
+
 M.MARISA = {};
 M.MARISA.L = {};
 M.MARISA.L.WALK1 = "ゆっ!ゆっ!\nゆっくりすすむよっ!";
diff --git a/main.js b/main.js
index 80ae56a..222420e 100644 (file)
--- a/main.js
+++ b/main.js
@@ -32,7 +32,7 @@ var CHARA_WIDTH = 64;
 var CHARA_HEIGHT = 64;
 var GAME_WIDTH = 800;
 var GAME_HEIGHT = 600;
-var FPS = 20;
+var FPS = 50;
 var BASE_FPS = 20;
 var HUNGRY_MAX = 100;
 var MIN = BASE_FPS;
@@ -151,6 +151,7 @@ var EAction = {
        MOVE_GOTO_HOME: 28,
        IN_HOME: 29,
        THINK_IN_HOME: 30,
+       EAT_IN_HOME: 31,
        NONE: 9999
 };
 var EDirection = {
@@ -373,12 +374,23 @@ window.onload = function(){
                        this.observe();
                        switch(this.status){
                                case EAction.WAIT:
-
+                                       this.waitCnt++;
+                                       if(this.waitCnt >= BASE_FPS * 60 * 24 * 3){
+                                               this.waitCnt = 0;
+                                               this.setStatus(EAction.THINK);
+                                               console.log("wait cnt end");
+                                       }
                                break;
                                case EAction.THINK_IN_HOME:
+                                       this.waitCnt = 0;
+                                       this.search();
                                        this.think_in_home();
                                break;
+                               case EAction.EAT_IN_HOME:
+                                       this.eat_in_home();
+                               break;
                                case EAction.THINK:
+                                       this.waitCnt = 0;
                                        if(this.yukkuri.age%2 === 0){
                                                this.yukkuri.changeFace();
                                                this.search();
@@ -489,7 +501,12 @@ window.onload = function(){
                        if((date === EDate.MIDNIGHT || date === EDate.NIGHT)
                                && !this.yukkuri.isSleep()){
                                //sleep
-
+                               new SleepEvent({
+                                       "action": this,
+                                       "nextStatus":EAction.THINK_IN_HOME,
+                                       "myYukkuri": this.yukkuri
+                               });
+                               return;
                        }
                        else if(date === EDate.EVENING){
                                //QK
@@ -509,6 +526,13 @@ window.onload = function(){
                                }
                        }
                },
+               eat_in_home: function(){
+                       new EatInHomeEvent({
+                               "targetNode": this.yukkuri.getPlace(),
+                               "action": this,
+                               "myYukkuri": this.yukkuri
+                       });
+               },
                move_to_eat_start : function(){
                        new MoveToEatEvent({
                                "type": 'food',
@@ -776,10 +800,9 @@ window.onload = function(){
                        return ret;
                },
                callEvent: function(yukkuri){
-                       ununs = this.get(ESearch.UNUN);
-                       if(ununs.length !== 0){
+                       if(yukkuri.isItemsMax() && yukkuri.isPlace()){
                                yukkuri.action.targetNode = yukkuri.getPlace();
-                               yukkuri.action.setStatus(EAction.UNUN_SMELL_START);
+                               yukkuri.action.setStatus(EAction.MOVE_GOTO_HOME);
                                return;
                        }
                        if(yukkuri.isVeryKuhuku()){
@@ -820,6 +843,12 @@ window.onload = function(){
                                        return;
                                }
                        }
+                       ununs = this.get(ESearch.UNUN);
+                       if(ununs.length !== 0){
+                               yukkuri.action.targetNode = yukkuri.getPlace();
+                               yukkuri.action.setStatus(EAction.UNUN_SMELL_START);
+                               return;
+                       }
                        var searchYukkuri = this.getNear(ESearch.YUKKURI, yukkuri);
                        if(searchYukkuri !== null && yukkuri.isCommunication(searchYukkuri)){
                                yukkuri.action.targetNode = searchYukkuri;
@@ -901,8 +930,8 @@ window.onload = function(){
                                        yukkuri.setFaceImage(EFace.NORMAL);
                                        yukkuri.tlResume();
                                        // self.action.setStatus(EAction.WAIT);
-                                       if(this.data.nextStatus !== undefined){
-                                               self.action.setStatus(this.data.nextStatus);
+                                       if(self.data.nextStatus !== undefined){
+                                               self.action.setStatus(self.data.nextStatus);
                                        }else{
                                                self.action.setStatus(EAction.THINK);
                                        }
@@ -1005,7 +1034,7 @@ window.onload = function(){
                onactionend:function(self){
                        return function(e){
                                if(typeof e === "undefined")return;
-                               if(self.food.getAmount() <= 0 || self.yukkuri.isManpuku()){
+                               if(self.food == null || self.food.getAmount() <= 0 || self.yukkuri.isManpuku()){
                                        self.action.setStatus(EAction.THINK);
                                        self.yukkuri.setFaceImage(EFace.NORMAL);
                                }else{
@@ -1124,10 +1153,12 @@ window.onload = function(){
                                this.yukkuri.setFaceImage(EFace.HAPPY1);
                        }else{
                                if(this.yukkuri.isItemsMax()){
+                                       sec = 1;
                                        this.huntingStatus = "return";
-                                       mangMsg.output(this.yukkuri, EMsg.REHUNT);
+                                       // mangMsg.output(this.yukkuri, EMsg.REHUNT);
                                        this.yukkuri.setFaceImage(EFace.NORMAL);
                                }else{
+                                       sec = BASE_FPS * 3;
                                        this.huntingStatus = "cry";
                                        mangMsg.output(this.yukkuri, EMsg.EAT_FAILED);
                                        this.yukkuri.setFaceImage(EFace.CRY2);
@@ -1156,18 +1187,25 @@ window.onload = function(){
                                if(self.huntingStatus == "hunting"){
                                        if(self.yukkuri.isItemsMax()){
                                                self.action.setStatus(EAction.MOVE_GOTO_HOME);
-                                               mangMsg.output(self.yukkuri, EMsg.MOVE_GOTO_HOME);
+                                               // mangMsg.output(self.yukkuri, EMsg.MOVE_GOTO_HOME);
                                        }else{
                                                self.action.setStatus(EAction.HUNT_START);
                                        }
                                }
                                else if(self.huntingStatus == "return"){
-                                       self.action.setStatus(EAction.THINK);
+                                       self.action.setStatus(EAction.MOVE_GOTO_HOME);
                                }
                                else if(self.huntingStatus === "cry"){
                                        self.action.setStatus(EAction.THINK);
                                }
+                               self.release();
                        };
+               },
+               release:function(){
+                       this.action = null;
+                       this.yukkuri = null;
+                       this.food = null;
+                       this.data = null;
                }
        });
        var MoveGotoHomeEvent = enchant.Class.create(Event,{
@@ -1183,6 +1221,12 @@ window.onload = function(){
                                this.action.setStatus(EAction.WAIT);
                                yukkuri.vx = place.x - yukkuri.getX() + place.width / 2;
                                yukkuri.vy = place.y - yukkuri.getY() - yukkuri.getHeight() / 2 + place.height;
+                               // console.log("place.x:" + place.x);
+                               // console.log("place.y:" + place.y);
+                               // console.log("yukkuri.getX():" + yukkuri.getX());
+                               // console.log("yukkuri.getY():" + yukkuri.getY());
+                               // console.log("yukkuri.vx:" + yukkuri.vx);
+                               // console.log("yukkuri.vy:" + yukkuri.vy);
                                var distance = (Math.abs(yukkuri.vx) + Math.abs(yukkuri.vy)) / 2;
                                var frame = distance + distance/2 + 1 ;
                                frame += plusFrameScale(frame, this.yukkuri.getMyScale());
@@ -1208,7 +1252,13 @@ window.onload = function(){
                        return function(e){
                                if(typeof e === "undefined")return;
                                self.action.setStatus(EAction.IN_HOME);
+                               self.release();
                        };
+               },
+               release:function(){
+                       this.action = null;
+                       this.yukkuri = null;
+                       this.data = null;
                }
        });
        var InHomeEvent = enchant.Class.create(Event,{
@@ -1221,14 +1271,10 @@ window.onload = function(){
                        var place = this.data.targetNode;
                        if(yukkuri.isVeryKuhuku()){
                                if(place.isFood()){
-                                       new EatInHomeEvent({
-                                               "targetNode": place,
-                                               "action": this.action,
-                                               "myYukkuri": yukkuri
-                                       });
+                                       this.action.setStatus(EAction.EAT_IN_HOME);
                                        return;
                                }else{
-                                       mangMsg.output(self.yukkuri, EMsg.EAT_FAILED);
+                                       mangMsg.output(yukkuri, EMsg.EAT_FAILED);
                                }
                        }
                        this.action.setStatus(EAction.WAIT);
@@ -1285,16 +1331,17 @@ window.onload = function(){
                onactionend:function(self){
                        return function(e){
                                if(typeof e === "undefined")return;
-                               if(self.place.isFood() && self.yukkuri.isManpuku()){
-
-                                       self.action.setStatus(EAction.THINK);
-                                       self.yukkuri.setFaceImage(EFace.NORMAL);
+                               if(self.place.isFood() && !self.yukkuri.isManpuku()){
+                                       self.action.setStatus(EAction.EAT_IN_HOME);
+
+                                       // new EatInHomeEvent({
+                                       //      "targetNode": self.place,
+                                       //      "action": self.action,
+                                       //      "myYukkuri": self.yukkuri
+                                       // });
                                }else{
-                                       new EatInHomeEvent({
-                                               "targetNode": self.place,
-                                               "action": self.action,
-                                               "myYukkuri": self.yukkuri
-                                       });
+                                       self.action.setStatus(EAction.THINK_IN_HOME);
+                                       self.yukkuri.setFaceImage(EFace.NORMAL);
                                }
                        };
                }
@@ -1491,7 +1538,7 @@ window.onload = function(){
                                this.image = game.assets[EResPath.GRASS];
                                this.frame = 0;
                                this.give = 10;
-                               this.amount = 2;
+                               this.amount = 20;
                        }
                        this.x = x;
                        this.y = y;
@@ -1600,7 +1647,7 @@ window.onload = function(){
                        this.x = x;
                        this.y = y;
                        backgroundMap.addChild(this);
-                       this.lifetime = 60 * 24 * 3;
+                       this.lifetime = 30 * 24 * 3;
                        this.addEventListener('enterframe', this.runEnterframe(this));
                        // game.rootScene.addEventListener('enterframe', this.runEnterframe(this));
 
@@ -2364,10 +2411,10 @@ window.onload = function(){
                backgroundMap.addChild(foodGroup);
                // backgroundMap.addChild(placeGroup);
                var player = new Player(PALYER_INIT_X, PALYER_INIT_Y);
-               // new Marisa(PALYER_INIT_X + 50, PALYER_INIT_Y + 200, EGrow.ADULT);
-               // new Marisa(PALYER_INIT_X + 100, PALYER_INIT_Y + 200, EGrow.SUBADULT);
-               // new Marisa(PALYER_INIT_X + 150, PALYER_INIT_Y + 200, EGrow.CHILD);
-               new Reimu(PALYER_INIT_X + 100, PALYER_INIT_Y + 100, EGrow.ADULT);
+               new Marisa(PALYER_INIT_X + 50, PALYER_INIT_Y + 200, EGrow.ADULT);
+               new Marisa(PALYER_INIT_X + 100, PALYER_INIT_Y + 200, EGrow.SUBADULT);
+               new Marisa(PALYER_INIT_X + 150, PALYER_INIT_Y + 200, EGrow.CHILD);
+               new Reimu(PALYER_INIT_X + 400, PALYER_INIT_Y + 400, EGrow.ADULT);
                // new Unun(100, 100);
                // new Place("tree", PALYER_INIT_X, PALYER_INIT_Y - 50);
                var touchX = 0;