OSDN Git Service

debugCanvasの削除。
author西田 耀 <hikarupsp@users.sourceforge.jp>
Fri, 16 Aug 2013 09:57:51 +0000 (18:57 +0900)
committer西田 耀 <hikarupsp@users.sourceforge.jp>
Fri, 16 Aug 2013 09:57:51 +0000 (18:57 +0900)
コメントの充実。

www/corelib/classes/GameStageClass.js
www/corelib/core.js
www/index_local_debug.html

index 5449ce5..77827e9 100644 (file)
@@ -20,12 +20,10 @@ function GameStage(){
        //\8fÕ\93Ë\94»\92è\97pcanvas
        this.collisionMapCanvas = null;
        this.collisionMapContext = null;
-       
        //\94w\8ci\82Ì\89æ\91\9c\82Ìimg\83G\83\8c\83\81\83\93\83g\83I\83u\83W\83F\83N\83g\82ð\8ew\92è
        this.background = null;
        //\83\86\81[\83U\81[\82ª\91\80\8dì\82µ\82Ä\82¢\82é\83L\83\83\83\89\83N\83^\81[\83I\83u\83W\83F\83N\83g
        this.userControlledCharacter = null;
-       
        //\83W\83\83\83\93\83v\82ª\83{\83^\83\93\89\9f\82µ\82½\8fu\8aÔ\82Ì\82Ý\82É\8eÀ\8ds\82³\82ê\82é\82½\82ß\82É\8am\94F\82·\82é\83t\83\89\83O
        this.upArrowDown = false;
 }
@@ -33,28 +31,22 @@ GameStage.prototype = {
        //\88È\89º\82Ì\8aÖ\90\94\82ð\83I\81[\83o\81[\83\89\83C\83h\82µ\82Ä\83X\83e\81[\83W\82ð\8dì\90¬\82·\82é\81B
        keyDown: function(event){
                //\83L\81[\93ü\97Í
-               
        },
        keyUp: function(event){
                //\83L\81[\93ü\97Í
        },
        timerTick: function(){
                //\83^\83C\83}\81[
-               
                this.tickCount++;
-               drawText(this.debugContext, "tick:" + this.tickCount, 0, 20);
-               
                //\91S\82Ä\82Ì\83I\83u\83W\83F\83N\83g\82ð\8cv\8eZ
                for(var sp in this.stageObjectList)
                {
                        var tickAllObjects = true;
-                       
-                       //\82Ü\82¸ \83N\83\89\83X\92è\8b`.tick() (\97á\82¦\82ÎBlockStageObjectClass.tick = function(){};) \82ª\92è\8b`\82³\82ê\82Ä\82½\82ç\8eÀ\8ds
+                       //\82Ü\82¸\81A\83N\83\89\83X\92è\8b`.tick() (\97á\82¦\82ÎBlockStageObjectClass.tick = function(){};) \82ª\92è\8b`\82³\82ê\82Ä\82½\82ç\8eÀ\8ds
                        if(sp.tick)
                        {
                                tickAllObjects = sp.tick(this.stageObjectList[sp]);
                        }
-                       
                        //\8e\9f\82É\8ae\8eíStageObject\82Ìtick\82ð\8eÀ\8ds
                        if(tickAllObjects)
                        {
@@ -65,7 +57,6 @@ GameStage.prototype = {
                                }
                        }
                }
-               
                // \91\80\8dì\92\86\83L\83\83\83\89\82Ì\88Ú\93®\8f\88\97\9d
                if(this.userControlledCharacter)
                {
@@ -73,15 +64,16 @@ GameStage.prototype = {
                        {
                                if(this.upArrowDown == false)
                                {
+                                       //\83W\83\83\83\93\83v
                                        this.userControlledCharacter.jump();
                                        this.upArrowDown = true;
                                }
                        } else{
                                this.upArrowDown = false;
                        }
-                       
                        if(!(this.manager.keyState.leftArrow && this.manager.keyState.rightArrow))
                        {
+                               //\8d\89E
                                if(this.manager.keyState.leftArrow){
                                        this.userControlledCharacter.goLeft();
                                }
@@ -90,9 +82,6 @@ GameStage.prototype = {
                                }
                        }
                }
-               
-               //\97á\82¦\82Î\8f\88\97\9d\82Ì\92x\89\84\82Å\96\9e\91«\82Édraw\82Å\82«\82È\82¢\82Æ\82«\82É\82Í\82µ\82å\82ê\82é\82æ\82¤draw\82Í\95Ê\8f\88\97\9d\82É\82µ\82½
-               
        },
        draw: function(){
                this.drawBackground();
@@ -100,10 +89,11 @@ GameStage.prototype = {
                this.drawAsPoint(0, 0);
        },
        drawAsPoint: function(x, y){
-               //\82·\82×\82Ä\83I\83u\83W\83F\83N\83g\8dÄ\95`\89æ
+               //\82·\82×\82Ä\82Ì\83I\83u\83W\83F\83N\83g\82ð\8dÄ\95`\89æ
+               //x, y\82Í\95`\89æ\88Ê\92u\82Ì\83I\83t\83Z\83b\83g
                for(var sp in this.stageObjectList)
                {
-                       //\8e\9f\82É\8ae\8eíStageObject\82Ìdraw\82ð\8eÀ\8ds
+                       //\8ae\8eíStageObject\82Ìdraw\82ð\8eÀ\8ds
                        for(i = 0, li = this.stageObjectList[sp].length; i < li; i++){
                                var stgobj = this.stageObjectList[sp][i];
                                var px = stgobj.origin.x - x, py = stgobj.origin.y - y;
@@ -144,7 +134,9 @@ GameStage.prototype = {
                this.stageObjectList = null;
        },
        addStageObject: function(aStageObject, isGlobalObject){
+               //stageObject\82ð\83\8a\83X\83g\82É\92Ç\89Á\82·\82é
                //isGlobalObject:\83l\83b\83g\83\8f\81[\83N\8dX\90V\82ª\95K\97v\82È\8fê\8d\87true\82ð\93n\82·\81B\95s\97v\82È\8fê\8d\87\82Í\8fÈ\97ª\82Å\82«\82é\81B
+               //stageObjectList\82Í\83I\83u\83W\83F\83N\83g\82Ì\83N\83\89\83X\82²\82Æ\82Ì\98A\91z\94z\97ñ\82É\82È\82Á\82Ä\82¢\82é\81B
                var sp = aStageObject.constructor;
                if(this.stageObjectList[sp] == undefined)
                {
@@ -156,18 +148,23 @@ GameStage.prototype = {
                }
        },
        removeStageObject: function(aStageObject){
+               //stageObject\82ð\83\8a\83X\83g\82©\82ç\8dí\8f\9c\82·\82é
                var sp = aStageObject.constructor;
                if(sp in this.stageObjectList)
                {
                        removeObjectFromArray(this.stageObjectList[sp], aStageObject);
                        if(this.stageObjectList[sp].length == 0)
                        {
+                               //\8bó\82É\82È\82Á\82½\83N\83\89\83X\82Ì\94z\97ñ\82Í\8dí\8f\9c\82·\82é
                                removeObjectFromArray(this.stageObjectList, sp);
                        }
                }
+               //globalStageObjectList\82©\82ç\8dí\8f\9c\81B\91\8dÝ\82µ\82È\82¢\8fê\8d\87\82Í\89½\82à\8bN\82«\82È\82¢\82Ì\82Å\82±\82ê\82Å\91å\8fä\95v
                removeObjectFromArray(this.globalStageObjectList, aStageObject);
        },
        eachStageObject: function(f){
+               //\83\8a\83X\83g\8fã\82Ì\82·\82×\82Ä\82Ì\83I\83u\83W\83F\83N\83g\88ê\82Â\82¸\82Â\82ð\88ø\90\94\82Æ\82µ\82Ä\8aÖ\90\94f\82ð\82»\82ê\82¼\82ê\8eÀ\8ds\82·\82é\81B
+               //\8aÖ\90\94f\82ªfalse\82ð\95Ô\82µ\82½\8fê\8d\87\81A\82»\82±\82Å\8eÀ\8ds\82ð\92\86\92f\82µ\82Äfalse\82ð\95Ô\82·\81B
                for(var sp in this.stageObjectList)
                {
                        for(i = 0; i < this.stageObjectList[sp].length; i++){
index cf84044..e439eeb 100755 (executable)
@@ -17,6 +17,8 @@ HTMLソース側に、
 </div>
 <div id="Resources">
 </div>
+および
+mainManager = new GameManager();
 が必要。
 */
 
@@ -24,11 +26,12 @@ HTMLソース側に、
 //定数
 //
 
-//var URL_PCD_Root = "http://localhost/pcd2013dev/www/";
+var URL_PCD_Root = "http://localhost/pcd2013dev/www/";
 //var URL_PCD_Root = "http://192.168.6.242/pcd2013dev/www/";
 //var URL_PCD_Root = "http://192.168.0.3/PCD2013GSCL/www/";
-var URL_PCD_Root = "http://192.168.6.242/pcd2013hikarupsp/pcd2013dev/www/";
+//var URL_PCD_Root = "http://192.168.6.242/pcd2013hikarupsp/pcd2013dev/www/";
 var URL_PCD_Auth = URL_PCD_Root + "auth.php";
+var URL_PCD_Audio = URL_PCD_Root + "audio/";
 var URL_PCD_Stage = URL_PCD_Root + "stage/";
 var URL_PCD_Stage_Local = "stage/";
 
@@ -37,8 +40,6 @@ var URL_PCD_Stage_Local = "stage/";
 //
 
 function GameManager(){
-       //****コンストラクタ****
-       //**インスタンス変数宣言・初期化**
        //ユーザーID
        this.userID = 0;
        //ネットワークマネージャーの設定
@@ -46,10 +47,17 @@ function GameManager(){
        //必要最低限のCanvasとコンテキストの設定
        this.mainCanvas = createCanvas("MainCanvas", 640, 480, 0, 0, 1, "MainArea");
        this.mainCanvas.style.border = "solid 1px";
-       this.debugCanvas = createCanvas("DebugCanvas", 640, 480, 0, 480, 2, "MainArea");
        this.mainContext = this.mainCanvas.getContext('2d');
-       this.debugContext = this.debugCanvas.getContext('2d');
        this.debugText = document.getElementById('DebugText');
+       //ブラウザチェック
+       this.isIE = false;
+       if(!this.isAvailableBrowser()){
+               return null;
+       }
+       //描画コンテキストの初期設定
+       this.mainContext.fillStyle = "rgba(200,255,200,0.5)";
+       this.mainContext.strokeStyle = "rgba(0, 0, 0, 0.5)";
+       this.mainContext.font = "normal 20px sans-serif";
        //実行中のGameStageオブジェクトを格納
        this.runningStage = null;
        //現在存在しているWidghetのリストを格納
@@ -66,26 +74,6 @@ function GameManager(){
        this.keyState.downArrow = false;
        this.keyState.leftArrow = false;
        this.keyState.rightArrow = false;
-       
-       //ブラウザチェック
-       this.checkBrowser();
-       
-       //**描画コンテキスト取得、設定・HTML5対応チェック**
-       if(!this.mainCanvas || !this.mainCanvas.getContext){
-               //HTML5未対応の場合
-               alert("このゲームを遊ぶためには、HTML5に対応しているブラウザでアクセスしてください...。");
-               return false;
-       }
-       
-       //**Canvas描画コンテキストの初期設定**
-       //mainContext
-       this.mainContext.fillStyle = "rgba(200,255,200,0.5)";
-       this.mainContext.strokeStyle = "rgba(0, 0, 0, 0.5)";
-       //debugContext
-       this.debugContext.fillStyle = "rgb(255,255,255)";
-       this.debugContext.strokeStyle = "rgb(0, 0, 0)";
-       this.debugContext.font = "normal 20px sans-serif";
-       
        // pauseStage()が呼ばれたときにnullじゃなくなる
        this.stagePausedFunction = null;
        
@@ -104,10 +92,7 @@ function GameManager(){
        window.setInterval(timeStampTimerTickEventListener, this.updateIntervalMs);
 }
 GameManager.prototype = {
-       //****プロトタイプ宣言****
-       //prototype以下のプロパティは、新規インスタンスに参照が引き継がれる。
        keyDown: function(event){
-               //****keyDown****
                //コールバックではなくコールバック関数(keyDownEventListener)から呼び出されるので、thisはGameManagerのインスタンスとなる。
                keyCode = event.keyCode;
                switch(event.keyCode){
@@ -128,7 +113,6 @@ GameManager.prototype = {
                                this.keyState.rightArrow = true;
                                break;
                }
-               
                //実行中のステージに通知
                if(this.runningStage){
                        this.runningStage.keyDown(event);
@@ -143,7 +127,6 @@ GameManager.prototype = {
                }
        },
        keyUp: function(event){
-               //****keyUp****
                //コールバックではなくコールバック関数(keyUpEventListener)から呼び出されるので、thisはGameManagerのインスタンスとなる。
                keyCode = event.keyCode;
                switch(event.keyCode){
@@ -170,21 +153,16 @@ GameManager.prototype = {
                }
        },
        timerTick: function(){
-               //****timerTick****
+               //各オブジェクトの単位時間ごとの動作と再描画を行う
+               //単位時間ごとの動作
                this.tickCount++;
-               
-               // アップデート処理
-               
-               if(this.runningStage){
-                       if(this.stagePausedFunction == null)
-                       {
+               if(this.stagePausedFunction == null){
+                       //ポーズしていなければ更新処理
+                       if(this.runningStage){
+                               //ステージ
                                this.runningStage.timerTick();
                        }
-               }
-               
-               // runningStage.timerTick() 内でpauseStage()された時、ここで再度判定しないとWidghetのtickが実行されてしまう
-               if(this.stagePausedFunction == null)
-               {
+                       //ウィジェット
                        for(var i = 0; i < this.runningWidghets.length; i++){
                                var w = this.runningWidghets[i];
                                if(!w.tick()){
@@ -193,29 +171,29 @@ GameManager.prototype = {
                                        i--;
                                }
                        }
-               }else
-               {
+               } else{
+                       //ポーズしているならば処理関数を実行
                        this.stagePausedFunction();
                }
                
-               // 描画処理
-               
+               //描画処理
                if(this.runningStage){
+                       //ステージ
                        this.runningStage.draw();
                }
-               
+               //ウィジェット
                for(var i = 0; i < this.runningWidghets.length; i++){
                        var w = this.runningWidghets[i];
                        w.draw();
                }
        },
        timeStampTimerTick: function(){
+               //ネットワーク同期を司る
                //サーバーとの同期カウンタ・タイマー
                this.timeStamp += this.updateIntervalMs;
-               
-               //サーバーに追加情報をアップデート
-               //update
+               //サーバーに更新情報をアップロード
                if(this.userID != 0){
+                       //ユーザーIDが設定されている=オンライン状態
                        request = this.networkManager.CreateRequestObject();
                        //同期モード
                        request.open('POST', URL_PCD_Root + "update.php?uid=" + this.userID + "&action=refresh", false);
@@ -228,10 +206,10 @@ GameManager.prototype = {
                                        aData.append(i, anObj.objectID + "," + anObj.origin.x + "," + anObj.origin.y + "," + anObj.movingSpeed.x + "," +  anObj.movingSpeed.y+ "," + anObj.attribute);
                                }
                        }
-                       
+                       //送信
                        this.networkManager.RequestObjectDisableCache(request);
                        request.send(aData.data);
-                       
+                       //レスポンス確認
                        if(request.status == 0){
                                alert("ネットワークにアクセスできません。" + this.status + ":" + this.statusText);
                        }else if((200 <= request.status && request.status < 300) || (request.status == 304)){
@@ -286,12 +264,12 @@ GameManager.prototype = {
                this.runningWidghets.push(w);
        },
        runStage: function(stage){
-               //****新たなステージを開始する****
+               //新たなステージを開始する
                //実行中のステージがあれば終了処理を行わせる。
                if(this.runningStage){
                        this.stopStage();
                }
-               //**新たに開始するステージの初期化**
+               //新たに開始するステージの初期化
                //GameManager側の情報をGameStageに渡す。
                stage.manager = this;
                stage.mainCanvas = this.mainCanvas
@@ -300,8 +278,7 @@ GameManager.prototype = {
                stage.debugContext = this.debugContext
                //GameStage側の初期化処理を行わせる。
                stage.runStage();
-               //サーバーに追加情報をアップデート
-               //update
+               //サーバーに追加オブジェクトの情報をアップロード
                if(this.userID != 0){
                        request = this.networkManager.CreateRequestObject();
                        //同期モード
@@ -313,10 +290,10 @@ GameManager.prototype = {
                                anObj = stage.globalStageObjectList[i];
                                aData.append(i, anObj.origin.x.toString() + ":" + anObj.origin.y.toString() + ":" + anObj.movingSpeed.x.toString() + ":" +  anObj.movingSpeed.y.toString() + ":" + anObj.className + ":" + parseArrayToStringSource(anObj.attribute) + ":" + parseArrayToStringSource(anObj.constructorArgs));
                        }
-                       
+                       //送信
                        this.networkManager.RequestObjectDisableCache(request);
                        request.send(aData.data);
-                       
+                       //レスポンス確認
                        if(request.status == 0){
                                alert("ネットワークにアクセスできません。" + this.status + ":" + this.statusText);
                        }else if((200 <= request.status && request.status < 300) || (request.status == 304)){
@@ -324,9 +301,11 @@ GameManager.prototype = {
                                if(isValidResponseText(res)){
                                        var retArray = eval(res);
                                        this.timeStamp = retArray[0];
+                                       //割り当てられたobjectIDを設定する
                                        for(var i = 0; i < stage.globalStageObjectList.length; i++){
                                                stage.globalStageObjectList[i].objectID = retArray[1][i];
                                        }
+                                       //すでにステージ上にある他のユーザーのオブジェクトを追加する
                                        for(var i = 0; i < retArray[2].length; i++){
                                                var anArray = retArray[2][i];
                                                var args = eval(anArray[7]);
@@ -353,31 +332,28 @@ GameManager.prototype = {
        },
        pauseStage: function(func){
                //ステージの実行を一時停止する。一時停止中、funcに指定された関数が毎tick毎に呼ばれる
-               if(this.stagePausedFunction == null)
-               {
+               if(this.stagePausedFunction == null){
                        this.stagePausedFunction = func;
                        return true;
-               }else
-               {
+               } else{
                        //ステージが一時停止中のfunc()の中から二重にpauseStage()を呼んではいけない
                        return false;
                }
        },
        resumeStage: function(){
-               if(this.stagePausedFunction != null)
-               {
+               //ステージの実行を再開する
+               if(this.stagePausedFunction != null) {
                        //必ずpauseStage()の引数に指定したfunc()の中から呼ばれる・・・はず。
                        this.stagePausedFunction = null;
                        return true;
-               }else
-               {
+               } else{
                        return false;
                }
        },
        stopStage: function(){
-               //****現在実行中のステージを終了する****
+               //現在実行中のステージを終了する
                if(this.runningStage){
-                       //runningStageから解除することで、イベントの通知は行われなくなる。
+                       //runningStageã\81\8bã\82\89設å®\9a解é\99¤ã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\80\81ã\82¤ã\83\99ã\83³ã\83\88ã\81®é\80\9aç\9f¥ã\81¯è¡\8cã\82\8fã\82\8cã\81ªã\81\8fã\81ªã\82\8bã\80\82
                        var aGameStage = this.runningStage;
                        this.runningStage = null;
                        //GameStage側の終了処理を行わせる。
@@ -391,11 +367,11 @@ GameManager.prototype = {
                }
        },
        loadStageFromLocal: function(code, onLoaded){
-               var ____stage = eval(code);
-               mainManager.runStage(____stage);
+               var stage = eval(code);
+               mainManager.runStage(stage);
        },
        loadStageFromNetwork: function(name){
-               //urlに存在するjavascriptファイルを利用してステージを作成する。
+               //URL_PCD_Stage/name.jsを利用してステージを作成する。
                request = this.networkManager.CreateRequestObject();
                //同期モード
                request.open('GET', URL_PCD_Stage + name + ".js", false);
@@ -411,14 +387,17 @@ GameManager.prototype = {
                }
        },
        debugOut: function(str){
-               if(!/*@cc_on!@*/false)
+               if(this.isIE)
                {
+                       //CRLF
                        this.debugText.value = str.replace(/\n/g,"\r\n") + this.debugText.value;
                } else{
+                       //LF
                        this.debugText.innerHTML = str + this.debugText.value;
                }
        },
-       checkBrowser: function(){
+       isAvailableBrowser: function(){
+               //ブラウザの判別を行う。実行不可能な場合はfalseを返す。
                //http://d.hatena.ne.jp/Naotsugu/20110927/1317140891
                var userAgent = window.navigator.userAgent.toLowerCase();
                var appVersion = window.navigator.appVersion.toLowerCase();
@@ -442,6 +421,7 @@ GameManager.prototype = {
                        } else{
                                this.debugOut("Browser:IE?\n");
                        }
+                       this.isIE = true;
                } else if (userAgent.indexOf('chrome') != -1) {
                        //chrome
                        this.debugOut("Browser:Chrome\n");
@@ -455,7 +435,14 @@ GameManager.prototype = {
                        //unknown
                        this.debugOut("Browser:Unknown\n");
                }
-               this.debugOut(userAgent + "::" + appVersion + "\n");
+               //this.debugOut(userAgent + "::" + appVersion + "\n");
+               //描画コンテキストからHTML5対応チェック
+                       if(!this.mainCanvas || !this.mainCanvas.getContext){
+                               //HTML5未対応の場合
+                               alert("このゲームを遊ぶためには、HTML5に対応しているブラウザ(Google Chrome等)でアクセスしてください...。");
+                       return false;
+               }
+               return true;
        },
 };
 
@@ -479,52 +466,11 @@ Rectangle.prototype = {
        
 }
 
-function ResourceManager(){
-       //Not implemented.
-    this.resourceObjectList = new Array();
-    
-       this.ResourceTag.prototype = {
-        
-    }
-}
-ResourceManager.prototype = {
-       //Not implemented.
-    addAudioResource: function(id, src){
-        dobj = document.createElement("audio");
-        parent = document.getElementById("Resources");
-        dobj.id = id;
-        parent.appendChild(dobj);
-        
-        this.resourceObjectList.push(dobj);
-        
-        dobj.isLoaded = false;
-        dobj.onload = this.resourceLoaded;
-        dobj.src = src;
-    },
-    resourceLoaded: function(){
-        //コールバック関数のthisはコールバック関数の設定先オブジェクト(DOMObject)となる。
-        this.isLoaded = true;
-    },
-    waitForLoadResource: function(){
-        for(;;){
-            for(i = 0; i < resourceObjectList.length; i++){
-                if(!resourceObjectList[i].isLoaded){
-                    
-                    break;
-                }
-            }
-            if(i == resourceObjectList.length){
-                return;
-            }
-        }
-    },
-}
-
 function NetworkManager(){
 
 }
 NetworkManager.prototype = {
-//from http://hakuhin.jp/js/xmlhttprequest.html
+       //from http://hakuhin.jp/js/xmlhttprequest.html
        CreateRequestObject: function(){
                var rq = null;
                // XMLHttpRequest
@@ -559,6 +505,7 @@ NetworkManager.prototype = {
 }
 
 function RequestData(){
+       //FormDataがIEで動かないので代替
        this.data = "";
 }
 RequestData.prototype = {
@@ -570,9 +517,14 @@ RequestData.prototype = {
        }
 }
 
-//
-//サブルーチン
-//
+function createAudioElement(name)
+{
+       //mp3限定
+       //not implemented
+       var at = document.createElement("audio");
+       var src = document.createElement("source");
+       src.type = "audio/mp3";
+}
 
 function createCanvas(id, width, height, x, y, z, parent)
 {
@@ -658,6 +610,7 @@ function parseArrayToStringSource(anArray){
 
 function isValidResponseText(res)
 {
+       //phpからのレスポンスにエラーが含まれていないかをチェックする。
        if(res.indexOf("Warning") == -1){
                if(res.indexOf("error") == -1){
                        return true;
@@ -671,7 +624,7 @@ function isValidResponseText(res)
 //
 //イベントリスナー
 //
-//イベントリスナーにおけるthisは、イベントリスナーを登録したオブジェクトになり、通常とは異なるので注意。
+//ã\82¤ã\83\99ã\83³ã\83\88ã\83ªã\82¹ã\83\8aã\83¼ã\81«ã\81\8aã\81\91ã\82\8bthisã\81¯ã\80\81ã\82¤ã\83\99ã\83³ã\83\88ã\83ªã\82¹ã\83\8aã\83¼ã\82\92ç\99»é\8c²ã\81\97ã\81\9fã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¾ã\81\9fã\81¯windowã\81«ã\81ªã\82\8aã\80\81é\80\9a常ã\81¨ã\81¯ç\95°ã\81ªã\82\8bã\81®ã\81§æ³¨æ\84\8fã\80\82
 
 function keyDownEventListener(event)
 {
@@ -698,6 +651,13 @@ function timeStampTimerTickEventListener(event)
 //Canvas直接描画関連
 //
 
+//フォント設定方法
+//context.font = "normal 20px sans-serif";
+
+//色設定方法
+//context.fillStyle = "rgba(200,255,200,0.5)";
+//context.strokeStyle = "rgba(0, 0, 0, 0.5)";
+
 function drawText(gcontext, text, x, y)
 {
        //背景をfillStyle
index 2a8631d..a9fda90 100644 (file)
@@ -68,7 +68,9 @@ function save()
 //      args : ['1190.png', callback], //二つ以上の場合。やはり第一引数のstageは不要
 //      prop : {times : 1},                            //各インスタンスに指定したいプロパティの連想配列。(省略可)
                                                                                //この例ではaFreeItemClass.timesプロパティを1に指定している
-//      adjust : [-50, 50]},                   //位置の微調整。必ずX座標、Y座標の相対位置を示す配列にする。(省略可)
+//      adjust : [-50, 50],                            //位置の微調整。必ずX座標、Y座標の相対位置を示す配列にする。(省略可)
+//      extid : 19                                             //ネットワークを超えて一つのオブジェクトである必要がある場合にはゼロではない値を取る(ステージ内で固有の値, 省略可; 既定0)
+//             sync : true                                             //ネットワーク同期を有効に(addStageObjectの第二引数)(省略可; 既定false)
 
 var stgObjects = {
        
@@ -125,16 +127,19 @@ with(stgObjects) {
 }
 
 //約束事
-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);
+var stage = new PCDSLStageClass(stgInfo, tbl);
+
+stage.runStage = function(){
+       PCDSLStageClass.prototype.runStage.apply(this, []);
+       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;
+       main.ownerUID = stage.manager.userID;
+       stage.userControlledCharacter = main;
+       stage.addStageObject(main, true);
+},
 
 
 stage;