OSDN Git Service

アイテムの実装
authorttwilb <ttwilb@users.sourceforge.jp>
Wed, 14 Aug 2013 13:37:40 +0000 (22:37 +0900)
committerttwilb <ttwilb@users.sourceforge.jp>
Wed, 14 Aug 2013 13:37:40 +0000 (22:37 +0900)
www/corelib/classes/GameStageClass.js
www/corelib/classes/ItemClass.js [new file with mode: 0644]
www/corelib/classes/MessageItemClass.js [new file with mode: 0644]
www/corelib/classes/MovableStageObjectClass.js
www/corelib/header.js

index 1d9d26c..8935b83 100644 (file)
@@ -153,7 +153,7 @@ GameStage.prototype = {
        collideJudge: function(obj, x, y, items){
                var gainItem = items instanceof Array;
                return !this.eachStageObject(function(f){
-                       if(!f.isPhantom && f !== obj)
+                       if(f !== obj)
                        {
                                if(obj.isCollided(f, x, y))
                                {
@@ -163,6 +163,7 @@ GameStage.prototype = {
                                                {
                                                        for(var titem in items)
                                                        {
+                                                               
                                                                if(titem == f) return true;
                                                        }
                                                        items.push(f);
@@ -218,8 +219,9 @@ GameStage.prototype = {
                obj.origin.x = ex;
                obj.origin.y = ey;
                
-               for(var item in gotItems)
+               for(var i in gotItems)
                {
+                       var item = gotItems[i];
                        if(item.itemAttacked)
                        {
                                //\83A\83C\83e\83\80\82ð\8eæ\93¾\82µ\82½\82Æ\82«\82Ì\8f\88\97\9d\82ð\8cÄ\82Ô(\92N\82ª\8eæ\93¾\82µ\82½\82©\81A\8eæ\93¾\82µ\82½\93z\82Ì\8c»\8dÝ\88Ê\92u\82ð\93n\82·\81j
diff --git a/www/corelib/classes/ItemClass.js b/www/corelib/classes/ItemClass.js
new file mode 100644 (file)
index 0000000..d9d0693
--- /dev/null
@@ -0,0 +1,25 @@
+var ItemClass = function(ownerStage, args)
+{
+       //args[imgName]
+       ItemClass.base.apply(this, arguments);
+       this.isPhantom = true;
+       
+}.extend(StageObject, {
+       draw: function(x, y){
+
+       },
+       
+       //\83u\83\8d\83b\83N\82Ì\93\96\82½\82è\94»\92è\97Ì\88æ\82ð\95Ï\8dX\82·\82é\82½\82ß\82É\82Í\82±\82Ì\8aÖ\90\94\82ð\83I\81[\83o\81[\83\89\83C\83h\82·\82é
+       //\88ø\90\94\82É\82Í\81A\93\96\82½\82è\82ð\8am\82©\82ß\82é\97v\91f\82Ì\93\96\82½\82è\94»\92è\97Ì\88æ\82Ì 1:\8d\8fã\8b÷ 2: \89E\89º\8b÷\82Ì\8dÀ\95W\82ð\8ew\92è
+       //MovableStageObject.isCollided\82©\82ç\8cÄ\82Î\82ê\82é
+       isCollided: function(x1, y1, x2, y2){
+               return x2 >= this.origin.x && x1 < this.origin.x + this.size.x && y2 >= this.origin.y && y1 < this.origin.y + this.size.y;
+       },
+       
+       itemAttacked : function(obj, obj_x, obj_y)
+       {
+               //\82±\82Ì\8f\88\97\9d\82ð\8eq\83N\83\89\83X\82Å\8fã\8f\91\82«\82µ\82Ä\83A\83C\83e\83\80\82Ì\93®\8dì\82ð\92è\8b`\82·\82é
+               //obj : \82±\82Ì\83A\83C\83e\83\80\82É\90G\82Á\82½\90l(MainCharacter\82È\82Ç)
+               //obj_x : obj\82Ì\90G\82ê\82½\92¼\8cã\82Ìx\8dÀ\95W
+       }
+});
\ No newline at end of file
diff --git a/www/corelib/classes/MessageItemClass.js b/www/corelib/classes/MessageItemClass.js
new file mode 100644 (file)
index 0000000..0c726c5
--- /dev/null
@@ -0,0 +1,27 @@
+var MessageItemClass = function(ownerStage, args)
+{
+       //args[imgName]
+       MessageItemClass.base.apply(this, arguments);
+       
+       var img = document.createElement('img');
+       img.src = "images/1234.png";    //\89æ\91\9c\82Í\89¼
+       this.image = img;
+       this.message = args[0];
+       
+}.extend(ItemClass, {
+       draw: function(x, y){
+               this.ownerStage.mainContext.globalAlpha = this.opacity;
+               this.ownerStage.mainContext.drawImage(this.image, x, y, 32, 32);
+               this.ownerStage.mainContext.globalAlpha = 1.0;
+       },
+       
+       itemAttacked : function(obj, obj_x, obj_y)
+       {
+               console.log(obj);
+               if(obj instanceof MainCharacterClass)   //\8c»\8dÝ\91\80\8dì\92\86\82Ì\83L\83\83\83\89\82Å\82 \82é
+               {
+                       //\8c\99\82È\97\\8a´... \83u\83\89\83N\83\89\94­\93®
+                       window.alert(this.message);
+               }
+       }
+});
index 63a6e3e..5e51f0e 100644 (file)
@@ -52,7 +52,7 @@ var MovableStageObjectClass = function(stage, args)
        isCollided : function(obj, x, y)
        {
                //MovableStageObject\82ª(x, y)\82Ì\82Æ\82«\91\8a\8eè\82Ìobj\82Æ\8fÕ\93Ë\82·\82é\82©\94»\92è
-               if(obj instanceof BlockClass)
+               if(obj instanceof BlockClass || obj instanceof ItemClass)
                {
                        return obj.isCollided(x + this.collisionMarginLeft, y + this.collisionMarginTop, x + this.size.x - this.collisionMarginRight, y + this.size.y - this.collisionMarginBottom);
                }
index 6668e3d..c587525 100644 (file)
@@ -4,6 +4,8 @@ document.write("<script type='text/javascript' src='corelib/classes/GameStageCla
 document.write("<script type='text/javascript' src='corelib/classes/HorizonalScrollStageClass.js'></script>");
 document.write("<script type='text/javascript' src='corelib/classes/PCDSLStageClass.js'></script>");
 document.write("<script type='text/javascript' src='corelib/classes/StageObjectClass.js'></script>");
+document.write("<script type='text/javascript' src='corelib/classes/ItemClass.js'></script>");
+document.write("<script type='text/javascript' src='corelib/classes/MessageItemClass.js'></script>");
 document.write("<script type='text/javascript' src='corelib/classes/BlockClass.js'></script>");
 document.write("<script type='text/javascript' src='corelib/classes/SlopeBlockClass.js'></script>");
 document.write("<script type='text/javascript' src='corelib/classes/MovableStageObjectClass.js'></script>");