OSDN Git Service

pcdsl adjustの実装
authorttwilb <ttwilb@users.sourceforge.jp>
Fri, 16 Aug 2013 02:05:38 +0000 (11:05 +0900)
committerttwilb <ttwilb@users.sourceforge.jp>
Fri, 16 Aug 2013 02:05:38 +0000 (11:05 +0900)
stage/pcdsltest.js にコメントいっぱいサンプルを作成

www/corelib/classes/PCDSLStageClass.js
www/stage/pcdsltest.js [new file with mode: 0644]

index 61f5100..700cb6f 100644 (file)
@@ -26,7 +26,9 @@ var PCDSLStageClass = function(stgInfo, tbl)
                        
                        if(item != null)
                        {
-                               //item\82ª {class: ... , args : ...}\82Ì\8c`\8e®\82Å\82 \82é\82©\8am\94F
+                               var adjust = new Point2D(0, 0);
+                               
+                               //item\82ª {base: ... , args : ...}\82Ì\8c`\8e®\82Å\82 \82é\82©\8am\94F
                                if(item.base && item.args)
                                {
                                        //\83R\83\93\83X\83g\83\89\83N\83^\82Ì\88ø\90\94\82à\8ew\92è\82³\82ê\82Ä\82¢\82é
@@ -37,24 +39,30 @@ var PCDSLStageClass = function(stgInfo, tbl)
                                        {
                                                obj = new (item.base)(this, [item.args]);
                                        }
+                                       
+                                       // {prop: { propName: "value" }\82Ì\8c`\82Å\83v\83\8d\83p\83e\83B\82ª\8ew\92è\82³\82ê\82Ä\82¢\82é
+                                       if(item.prop)
+                                       {
+                                               for(var propName in item.prop)
+                                               {
+                                                       //\83I\83u\83W\83F\83N\83g\82É\83v\83\8d\83p\83e\83B\82ð\90Ý\92è
+                                                       obj[propName] = item.prop[propName];
+                                               }
+                                       }
+                                       
+                                       // adjust : [10, -10]\82Ì\8c`\82Å\88Ê\92u\82Ì\94÷\92²\90®\82ª\82È\82³\82ê\82Ä\82¢\82é
+                                       if(item.adjust)
+                                       {
+                                               adjust = new Point2D(item.adjust[0], item.adjust[1]);
+                                       }
                                }else
                                {
                                        //\88ø\90\94\82ð\8ew\92è\82µ\82È\82¢ --- stage\83C\83\93\83X\83^\83\93\83X\82ð\88ø\90\94\82É\82Â\82¯\82é
                                        obj = new item(this);
                                }
                                
-                               // {prop: { propName: "value" }\82Ì\8c`\82Å\83v\83\8d\83p\83e\83B\82ª\8ew\92è\82³\82ê\82Ä\82¢\82é
-                               if(item.prop)
-                               {
-                                       for(var propName in item.prop)
-                                       {
-                                               //\83I\83u\83W\83F\83N\83g\82É\83v\83\8d\83p\83e\83B\82ð\90Ý\92è
-                                               obj[propName] = item.prop[propName];
-                                       }
-                               }
-                               
                                //\94z\92u
-                               obj.origin = new Point2D(x * 32, y * 32);
+                               obj.origin = new Point2D(x * 32 + adjust.x, y * 32 + adjust.y);
                                this.addStageObject(obj);
                        }
                }
diff --git a/www/stage/pcdsltest.js b/www/stage/pcdsltest.js
new file mode 100644 (file)
index 0000000..ff8e8ca
--- /dev/null
@@ -0,0 +1,79 @@
+
+// StageObjects\82Í\83X\83e\81[\83W\82É\95\8e\9a\83V\83\93\83{\83\8b\82Æ\82µ\82Ä\94z\92u\82µ\82½\82¢\83I\83u\83W\83F\83N\83g\92è\8b`\82Ì\98A\91z\94z\97ñ\82Å\82 \82é\81B
+// StageObject\82Ì\8ae\8d\80\96Ú\82Ì\8ew\92è\95û\96@\82Í\88È\89º\82Ì\93ñ\92Ê\82è\82 \82é\81B
+// \81E\83N\83\89\83X\96¼\8ew\92è ... \83R\83\93\83X\83g\83\89\83N\83^\82ª\82É\88ø\90\94\82ª\95s\97v\82È\8e\9e
+// a : BlockClass
+// \81E\8ag\92£\8ew\92è
+// a : {base : FreeItemClass,                  //\92\92\8c^\82Æ\82È\82é\83N\83\89\83X\96¼
+//      args : '1190.png',                             //\83R\83\93\83X\83g\83\89\83N\83^\82É\8ew\92è\82·\82é\88ø\90\94(\88ê\82Â\82¾\82¯\82Ì\8fê\8d\87) stage\82Í\8e©\93®\82Å\8ew\92è\82³\82ê\82é\82Ì\82Å\95s\97v
+//      args : ['1190.png', callback], //\93ñ\82Â\88È\8fã\82Ì\8fê\8d\87\81B\82â\82Í\82è\91æ\88ê\88ø\90\94\82Ìstage\82Í\95s\97v
+//      prop : {times : 1},                            //\8ae\83C\83\93\83X\83^\83\93\83X\82É\8ew\92è\82µ\82½\82¢\83v\83\8d\83p\83e\83B\82Ì\98A\91z\94z\97ñ\81B(\8fÈ\97ª\89Â)
+                                                                               //\82±\82Ì\97á\82Å\82ÍaFreeItemClass.times\83v\83\8d\83p\83e\83B\82ð1\82É\8ew\92è\82µ\82Ä\82¢\82é
+//      adjust : [-50, 50]},                   //\88Ê\92u\82Ì\94÷\92²\90®\81B\95K\82¸X\8dÀ\95W\81AY\8dÀ\95W\82Ì\91\8a\91Î\88Ê\92u\82ð\8e¦\82·\94z\97ñ\82É\82·\82é\81B(\8fÈ\97ª\89Â)
+
+var stgObjects = {
+       
+       // BlockClass : \95\81\92Ê\82Ì\83u\83\8d\83b\83N\81\88ø\90\94\82É\89æ\91\9c\96¼\82ð\8ew\92è
+    a : {base:BlockClass,args:'1190.png'},
+    
+    // SlopeBlockClass : \93\96\82½\82è\94»\92è\82ª\8eÎ\82ß\82Ì\83u\83\8d\83b\83N\81B
+    // \88ø\90\94 : \89æ\91\9c\96¼, \93\96\82½\82è\94»\92è\97Ì\88æ\8d\91¤\82Ì\8aJ\8en\88Ê\92u\82Ì\83u\83\8d\83b\83N\8fã\95Ó\82©\82ç\82Ì\8d\82\82³, \93\96\82½\82è\94»\92è\97Ì\88æ\89E\91¤\82Ì...
+    //        \82½\82Æ\82¦\82Î\81A\82±\82Ì\97á\82Ì\82æ\82¤\82É 0, 32 \82Æ\8ew\92è\82·\82ê\82Î\89E\89º\82ª\82è\82Ì\8dâ\82É\82È\82è\81A32, 0\82Æ\8ew\92è\82·\82ê\82Î\8d\89º\82ª\82è\81A 16, 16\82Æ\8ew\92è\82·\82ê\82Î\94¼\95ª\82Ì\8d\82\82³\82Ì\92·\95û\8c`\82É\82È\82é
+    // enableBlockMode : \93\96\82½\82è\94»\92è\97Ì\88æ\82ð\83f\83o\83b\83O\95\\8e¦\82·\82é\81B
+    b : {base:SlopeBlockClass,args:['1191.png',0,32],prop:{enableDebugMode:true}},
+    
+    // FreeItemClass : \83L\83\83\83\89\82ª\8eæ\93¾\82·\82é\82Æ\83R\81[\83\8b\83o\83b\83N\82ª\8eÀ\8ds\82³\82ê\82é\83A\83C\83e\83\80
+    // callback : \92N\82©\82É\8eæ\93¾\82³\82ê\82½\82Æ\82«\82É\94­\90\82·\82é\83R\81[\83\8b\83o\83b\83N\81B\83A\83^\83b\83N\82µ\82½\90l\81A\82»\82Ì\83A\83^\83b\83N\92¼\8cã\82Ìx, y\8dÀ\95W\82ª\88ø\90\94\82É\83Z\83b\83g\82³\82ê\82é\81B
+    // times : \8eæ\93¾\82Å\82«\82é\89ñ\90\94\82Å\81A-1\82Å\96³\8cÀ\81B
+    c : {base:FreeItemClass,args:["1234.png",callBack],prop:{times:1}},
+    
+    // \89½\82à\83u\83\8d\83b\83N\82ð\92u\82©\82È\82¢\88Ê\92u\82Ì\82½\82ß\82É\82©\82È\82ç\82¸\82±\82Ì\82æ\82¤\82È\83G\83\93\83g\83\8a\81[\82ð\8bL\8fq
+    _ : null
+};
+
+// FreeItemClass\82Ì\83R\81[\83\8b\83o\83b\83N
+function callBack(obj, obj_x, obj_y)
+{
+       if(ibj instanceof MainCharacterClass) // .....
+}
+
+var stgInfo = {
+    width: 6400,                               //\89¡\83T\83C\83Y
+    height: 480,                               //\8fc\83T\83C\83Y
+    background: "back2.png"            //\94w\8ci\89æ\91\9c\81B\89¡\95\9d\82Í640px\82Å\82 \82é\95K\97v\82Í\82È\82¢\81B
+};
+
+with(stgObjects) {
+    var tbl = [
+        [],
+        [],
+        [],
+        [],
+        [],
+        [],
+        [],
+        [],
+        [],
+        [],
+        [b],
+        [_,b],
+        [_,_,b],
+        [_,_,_,b,_,_,_,_,_,c],
+        [a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a],
+    ];
+}
+
+//\96ñ\91©\8e\96
+var stage = new PCDSLStageClass(stgInfo, tbl, null);
+
+
+var main = new MainCharacterClass(stage, [["kuma1.png","kuma2.png","kuma3.png", "kuma4.png", "kuma3.png", "kuma2.png"], ["kumaready.png"]]);
+main.size.x = 64;
+main.size.y=64;
+main.origin.x = 50;
+main.origin.y =0;
+stage.operatingCharacter = main;
+stage.addStageObject(main);
+
+
+stage;