OSDN Git Service

eachStageObjectById
authorttwilb <ttwilb@users.sourceforge.jp>
Fri, 16 Aug 2013 01:36:15 +0000 (10:36 +0900)
committerttwilb <ttwilb@users.sourceforge.jp>
Fri, 16 Aug 2013 01:36:15 +0000 (10:36 +0900)
FreeItemClassでアイテム取得時のコールバック動作確認
aFreeItemClass.times で指定回数以上の取得で消滅の実装
index_local_debugのエディタでArrowKey

www/corelib/classes/FreeItemClass.js
www/corelib/classes/GameStageClass.js
www/corelib/classes/MainCharacterClass.js
www/corelib/classes/StageObjectClass.js
www/corelib/core.js
www/index_local_debug.html

index 3ffed80..cf680ed 100644 (file)
@@ -1,4 +1,4 @@
-var FreeItemClass = function(manager, args){
+var FreeItemClass = function(stage, args){
 
        FreeItemClass.base.apply(this, arguments);
        
@@ -33,6 +33,15 @@ var FreeItemClass = function(manager, args){
                        {
                                this.callback();
                        }
+                       
+                       if(this.times > 0)
+                       {
+                               this.times--;
+                               if(this.times == 0)
+                               {
+                                       this.ownerStage.removeStageObject(this);
+                               }
+                       }
                }
        }
 });
\ No newline at end of file
index 8935b83..799f9c0 100644 (file)
@@ -150,6 +150,20 @@ GameStage.prototype = {
                }
                return true;
        },
+       eachStageObjectById: function(id, f){
+               for(var sp in this.stageObjectList)
+               {
+                       for(i = 0; i < this.stageObjectList[sp].length; i++){
+                               
+                               var stgobj = this.stageObjectList[sp][i];
+                               if(stgobj.id == id)
+                               {
+                                       if(!f(stgobj)) return false;
+                               }
+                       }
+               }
+               return true;
+       },
        collideJudge: function(obj, x, y, items){
                var gainItem = items instanceof Array;
                return !this.eachStageObject(function(f){
index fbaab86..7fc5bcf 100644 (file)
@@ -20,11 +20,14 @@ var MainCharacterClass = function(stage, args){
                        this.upArrowDown = false;
                }
                
-               if(this.ownerStage.manager.keyState.leftArrow){
-                       this.goLeft();
-               }
-               if(this.ownerStage.manager.keyState.rightArrow){
-                       this.goRight();
+               if(!(this.ownerStage.manager.keyState.leftArrow && this.ownerStage.manager.keyState.rightArrow))
+               {
+                       if(this.ownerStage.manager.keyState.leftArrow){
+                               this.goLeft();
+                       }
+                       if(this.ownerStage.manager.keyState.rightArrow){
+                               this.goRight();
+                       }
                }
        }
        
index 7c430a2..d554eab 100644 (file)
@@ -23,6 +23,9 @@ function StageObject(ownerStage, args){
        this.objectID = 0;
        //\8eÀ\91Ì\82ð\8e\9d\82½\82È\82¢\81A\82Â\82Ü\82è\8fÕ\93Ë\94»\92è\82ª\95K\97v\82È\82¢\8fê\8d\87\82Ítrue.
        this.isPhantom = false;
+       
+       // PCDSL\82È\82Ç\82©\82ç\97\98\97p\82Å\82«\82éID
+       this.id = "";
 }
 StageObject.prototype = {
        className:"StageObject",
index 8e727a0..6c962ae 100755 (executable)
@@ -111,27 +111,25 @@ GameManager.prototype = {
                        case 38:
                                //上カーソル
                                this.keyState.upArrow = true;
-                               event.preventDefault();
                                break;
                        case 40:
                                //下カーソル
                                this.keyState.downArrow = true;
-                               event.preventDefault();
                                break;
                        case 37:
                                //左カーソル
                                this.keyState.leftArrow = true;
-                               event.preventDefault();
                                break;
                        case 39:
                                //右カーソル
                                this.keyState.rightArrow = true;
-                               event.preventDefault();
                                break;
                }
+               
                //実行中のステージに通知
                if(this.runningStage){
                        this.runningStage.keyDown(event);
+                       event.preventDefault();
                }
        },
        keyUp: function(event){
index f94e952..8b05437 100644 (file)
@@ -53,9 +53,9 @@ function save()
        <div id="Resources"></div>
        <div style="z-index: 1; top: 520px; position: absolute; left: 0;">
        <form><textarea id="DebugText" rows="8" cols="64"></textarea></form></div>
-       <div style="position: absolute; left: 650px; top: 0; right: 0; z-index: 1">
+       <div style="position: absolute; left: 650px; top: 0; right: 0; z-index: 100">
                <form>
-               <textarea id="stageCode" rows="60" style="width: 100%; height: 90%">
+               <textarea id="stageCode" rows="60" style="width: 100%; height: 90%; z-index: 100">
 
 
 var stgObjects = {