From eb641534a3276e786244b69fbb05ee8f96651cb7 Mon Sep 17 00:00:00 2001 From: ttwilb Date: Mon, 5 Aug 2013 01:07:13 +0900 Subject: [PATCH] =?utf8?q?HorizonalStage=E3=81=8B=E3=82=89manager=E3=81=8C?= =?utf8?q?=E3=81=86=E3=81=BE=E3=81=8F=E8=AA=AD=E3=82=81=E3=81=A6=E3=81=84?= =?utf8?q?=E3=81=AA=E3=81=84=E3=82=88=E3=81=86=E3=81=A0=20new=20GameStage?= =?utf8?q?=20=E3=82=92=20new=20HorizonalScrollStageClass=E3=81=AB=E3=81=99?= =?utf8?q?=E3=82=8B=E3=81=A8=E3=81=B0=E3=81=90=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit その他いろいろ --- documents/ClassTree.txt | 8 +++ www/corelib/classes/GameStageClass.js | 70 ++++++++++++++++++++---- www/corelib/classes/HorizonalScrollStageClass.js | 37 ++++++++++++- www/corelib/classes/StageObjectClass.js | 3 +- www/corelib/core.js | 1 - www/index_local_debug.html | 17 +++++- 6 files changed, 118 insertions(+), 18 deletions(-) diff --git a/documents/ClassTree.txt b/documents/ClassTree.txt index e69de29..9971a0a 100644 --- a/documents/ClassTree.txt +++ b/documents/ClassTree.txt @@ -0,0 +1,8 @@ +GameStage + HorizonalScrollStageClass +StageObject + MovableStageObjectClass + CharacterClass + OperatedCharacterClass + BlockStageObjectClass + \ No newline at end of file diff --git a/www/corelib/classes/GameStageClass.js b/www/corelib/classes/GameStageClass.js index fbbba70..d998917 100644 --- a/www/corelib/classes/GameStageClass.js +++ b/www/corelib/classes/GameStageClass.js @@ -45,16 +45,52 @@ GameStage.prototype = { this.tickCount++; drawText(this.debugContext, "tick:" + this.tickCount, 0, 20); + //‘S‚ẴIƒuƒWƒFƒNƒg‚ðŒvŽZ + for(var sp in this.stageObjectList) + { + var tickAllObjects = true; + + //‚Ü‚¸ ƒNƒ‰ƒX’è‹`.tick() (—Ⴆ‚ÎBlockStageObjectClass.tick = function(){};) ‚ª’è‹`‚³‚ê‚Ä‚½‚çŽÀs + if(sp.tick) + { + tickAllObjects = sp.tick(this.stageObjectList[sp]); + } + + //ŽŸ‚ÉŠeŽíStageObject‚Ìtick‚ðŽÀs + if(tickAllObjects) + { + for(i = 0; i < this.stageObjectList[sp].length; i++){ + + this.stageObjectList[sp][i].tick(); + + } + } + } + + //—Ⴆ‚Ώˆ—‚Ì’x‰„‚Å–ž‘«‚Édraw‚Å‚«‚È‚¢‚Æ‚«‚É‚Í‚µ‚å‚ê‚é‚悤draw‚͕ʏˆ—‚É‚µ‚½ + + }, + draw: function(){ + this.drawBackground(); + this.drawAsPoint(0, 0); + }, + drawAsPoint: function(x, y){ + //‚·‚ׂăIƒuƒWƒFƒNƒgÄ•`‰æ + for(var sp in this.stageObjectList) + { + //ŽŸ‚ÉŠeŽíStageObject‚Ìdraw‚ðŽÀs + for(i = 0; i < this.stageObjectList[sp].length; i++){ + + var stgobj = this.stageObjectList[sp][i]; + stgobj.draw(stgobj.origin.x - x, stgobj.origin.y - y); + + } + } + }, + drawBackground: function(){ //ƒLƒƒƒ“ƒoƒX‚ð‘SÁ‹Ž this.mainContext.clearRect(0, 0, this.mainCanvas.width, this.mainCanvas.height); this.collisionMapContext.clearRect(0, 0, this.collisionMapCanvas.width * 8, this.collisionMapCanvas.height * 8); - //‘S‚ẴIƒuƒWƒFƒNƒg‚ðÄ•`‰æ - - for(i = 0; i < this.stageObjectList.length; i++){ - //console.log(this.stageObjectList[i]); - this.stageObjectList[i].tick(); - - } }, runStage: function(){ //ƒXƒe[ƒW‰Šú‰»ˆ— @@ -74,12 +110,24 @@ GameStage.prototype = { this.stageObjectList = null; }, addStageObject: function(aStageObject){ - //StageObject’ljÁˆ— - this.stageObjectList.push(aStageObject); + + var sp = aStageObject.constructor; + if(!this.stageObjectList[sp]) + { + this.stageObjectList[sp] = []; + } + this.stageObjectList[sp].push(aStageObject); }, removeStageObject: function(aStageObject){ - //StageObjectíœˆ— - removeObjectFromArray(this.stageObjectList, aStageObject); + var sp = aStageObject.constructor; + if(this.stageObjectList[sp]) + { + removeObjectFromArray(this.stageObjectList[sp], aStageObject); + if(this.stageObjectList[sp].length == 0) + { + removeObjectFromArray(this.stageObjectList, sp); + } + } } }; diff --git a/www/corelib/classes/HorizonalScrollStageClass.js b/www/corelib/classes/HorizonalScrollStageClass.js index 2e9a4dc..d732335 100644 --- a/www/corelib/classes/HorizonalScrollStageClass.js +++ b/www/corelib/classes/HorizonalScrollStageClass.js @@ -1,9 +1,40 @@ -var HorizonalScrollStageClass = function() +var HorizonalScrollStageClass = function(opCharacter) { HorizonalScrollStageClass.base.apply(this, []); + + console.log(this.manager); + //Œ»Ý‘€ì‘ΏۂɂȂÁ‚Ä‚¢‚éƒLƒƒƒ‰ƒNƒ^[B - var /* OperatedCaracterClass */ OperatingCharacter; + var /* OperatedCaracterClass */ OperatingCharacter = opCharacter; + + //”wŒi‚̉摜 + var background = null; + + var scrollX = 0; + var scrollMaxX =1280 - 640; //ƒXƒe[ƒW‚̉¡‚Ì’·‚³-640 -}.extend(GameStage); +}.extend(GameStage, { + timerTick: function(){ + this.constructor.base.timerTick.call(this); + this.scrollX = opCharacter.origin.x; + if(this.scrollX > this.scrollMaxX) this.scrollX = this.scrollMaxX; + }, + draw: function() + { + this.drawBackground(); + this.drawAsPoint(scrollX, 0); + }, + drawBackground: function(){ + if(this.background) + { + this.mainContext.drawImage(background, 0, 0, 640, 480); + }else + { + //ƒLƒƒƒ“ƒoƒX‚ð‘SÁ‹Ž + this.mainContext.clearRect(0, 0, this.mainCanvas.width, this.mainCanvas.height); + this.collisionMapContext.clearRect(0, 0, this.collisionMapCanvas.width * 8, this.collisionMapCanvas.height * 8); + } + } +}); diff --git a/www/corelib/classes/StageObjectClass.js b/www/corelib/classes/StageObjectClass.js index 12793d9..eb7298a 100644 --- a/www/corelib/classes/StageObjectClass.js +++ b/www/corelib/classes/StageObjectClass.js @@ -14,10 +14,9 @@ function StageObject(ownerStage){ StageObject.prototype = { tick: function(){ //Ä•`‰æ‚̃^ƒCƒ~ƒ“ƒO‚²‚ƂɌĂ΂ê‚éB - this.display(); }, - display: function(){ + draw: function(){ //ŽÀÛ‚Ì•`‰æ‚Ì‚Ý‚ðs‚¤BŒvŽZ‚Ítick‚ōs‚¤B } diff --git a/www/corelib/core.js b/www/corelib/core.js index c7c8dc6..19d7e27 100755 --- a/www/corelib/core.js +++ b/www/corelib/core.js @@ -263,7 +263,6 @@ GameManager.prototype = { }, loadStageFromLocal: function(code, onLoaded){ var stage = eval(code); - console.log(code); mainManager.runStage(stage); }, loadStageFromNetwork: function(name, onLoaded){ diff --git a/www/index_local_debug.html b/www/index_local_debug.html index 7b8de2f..14906dc 100644 --- a/www/index_local_debug.html +++ b/www/index_local_debug.html @@ -8,6 +8,15 @@ @@ -93,7 +107,8 @@ stage; - +
+ ※すべてのコードを消したうえでセーブし更新すると最初のコードに戻ります。 -- 2.11.0