HTML部分:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Sliding Block Puzzle</title> <!-- tmlib.js をgithub からインクルード、もちろんローカルに置いてもよい --> <script src="http://rawgithub.com/phi-jp/tmlib.js/0.2.0/build/tmlib.js"></script> <script src="main-0010.js"></script> <!-- プログラム本体 --> </head> <body> <canvas id="world" width="640" height="480"></canvas> <!-- クロイガメン様表示部分 --> </body> </html>
JavaScript 部分:
tm.main(function() { var app = tm.app.CanvasApp("#world"); // アプリケーション作成 app.background = "rgba(0, 0, 0, 0.1)"; // 背景色をセット app.run(); // 実行 });
演習問題:
tm.main(function() { var app = tm.app.CanvasApp("#world"); // アプリケーション作成 app.background = "darkgreen"; // 背景色をセット var label = tm.app.Label("Hello, world!"); // ラベルオブジェクト生成 label.x = 320-100; // 位置をセット label.y = 240; label.width = 200; // 幅をセット app.currentScene.addChild(label); // シーンに追加 app.run(); // 実行 });
label.setX(320-100).setY(240).setWidth(200);
tm.main(function() { var app = tm.app.CanvasApp("#world"); // アプリケーション作成 app.background = "rgba(0, 0, 0, 0.1)"; // 背景色をセット var star = tm.app.Shape(64, 64); // Shape オブジェクト生成 star.canvas.setColorStyle("blue", "yellow"); // ペン、ブラシ色設定 star.canvas.fillStar(32, 32, 32, 5); // ★描画。引数:サイズ、半径、頂点数 app.currentScene.addChild(star); // シーンに追加 app.currentScene.update = function(app) { star.x = app.pointing.x; // マウス位置 or タッチ位置に移動 star.y = app.pointing.y; } app.run(); // 実行 });
演習問題:
tm.main(function() { var app = tm.app.CanvasApp("#world"); // アプリケーション作成 app.background = "lightgray"; // 背景色をセット var WD = 128; var HT = 64; var R = HT/8; var block = tm.app.Shape(WD, HT); // ブロック block.canvas.setColorStyle("black", "lightyellow"); block.canvas.fillRoundRect(0, 0, WD, HT, R); block.canvas.strokeRoundRect(0, 0, WD, HT, R); block.y = 100; block.y = 240; app.currentScene.addChild(block); // シーンに追加 app.currentScene.update = function(app) { block.x = app.pointing.x; } app.run(); // 実行 });
演習問題:
tm.main(function() { var target = null; // ドラッグ中オブジェクト ..... app.currentScene.update = function(app) { if( app.pointing.getPointingStart() ) { // マウスボタンプレス target = null; if( block.isHitPointRect(app.pointing.x, app.pointing.y) ) target = block; } if( app.pointing.getPointingEnd() ) { // マウスボタンリリース target = null; } if( target != null ) target.x = app.pointing.x; } app.run(); // 実行 });
演習問題:
tm.main(function() { var target = null; // ドラッグ中オブジェクト var blocks = []; // ブロックリスト var app = tm.app.CanvasApp("#world"); // アプリケーション作成 app.background = "lightgray"; // 背景色をセット var WD = 128; var HT = 64; var R = HT/8; for(var y = 140; y <= 340; y += 100) { var block = tm.app.Shape(WD, HT); // ブロック生成 block.canvas.setColorStyle("black", "lightyellow"); block.canvas.fillRoundRect(0, 0, WD, HT, R); block.canvas.strokeRoundRect(0, 0, WD, HT, R); block.x = 100; block.y = y; app.currentScene.addChild(block); // シーンに追加 blocks.push(block); } app.currentScene.update = function(app) { if( app.pointing.getPointingStart() ) { // マウスボタンクリック target = null; for(var i = 0; i < blocks.length; ++i) { if( blocks[i].isHitPointRect(app.pointing.x, app.pointing.y) ) target = blocks[i]; } } if( app.pointing.getPointingEnd() ) { // マウスボタンリリース target = null; } if( target != null ) target.x = app.pointing.x; } app.run(); // 実行 });