先月作った「ペイント練習用のチャート隠しツール」と、
https://shunichi.hosono.com/?p=369
と、「チャートの自動めくり動画」を公開したところ、
https://shunichi.hosono.com/?p=443
数名の方から、ご意見・ご要望をいただいた。
・Chromeブラウザで利用できるようにしてほしい!
・いちいちキーを押さなくても自動でめくってほしい!
・自動再生を途中で一時停止したい!
・自動再生を、少し戻したい!
等々。
それほど難しい要望ではないけれども、
Windowsの「メモ帳」でカスタマイズできるくらいの
簡単なツールで実現しようとすると、それなりに難しい。
自動再生されているものを、一時停止したり戻したりするには、
アニメーションの停止やフレーム操作をすればいいかな? と思って
animation-play-state等、いくつかの方法を調べて試してみたが、
実際には、動かない。(transition で動かしたアニメは対象外?)
そこで思いついたのは、
ゲームを作るツールを使えば、てっとり早く実現するのでは?
ということだった。
実際、その通りで、以前に学んだ「enchant.js」を使えば
今回のようなものは、簡単に作ることができた。
「phina.js」等のような、さらに高速・高機能な
同種のツールが登場してきているようだけど、
「enchant.js」の書籍がたまたま手元にあって、
思い出したらすぐに使えるようになったので、
とりあえず、これを使うことにした。
ということで、暫定的にできあがったのが、このページ。
< ペイント練習用の、チャート隠しツール ver2 >
https://shunichi.hosono.com/chart-mask2.html
今度は、Chromeブラウザでも使えて、
自動再生 も 一時停止 も 少し戻り も可能である。
操作方法は、次のとおり。
白い部分をクリック:再生開始。
左キー:少し戻る
右キー:少し早く
上キー:最初に戻る
下キー:一時停止
このツールは、「メモ帳」で編集可能な 普通の html ファイルなので、
ソースをコピーするか、右クリックでファイルに保存すれば
カスタマイズして、使用可能である。
次の3ファイルをダウンロードして、
同じフォルダへ保存しておく必要がある。
・ダウンロードするページ 3種類
< ペイント練習用の、チャート隠しツール ver2 >
https://shunichi.hosono.com/chart-mask2.html
< enchant.js >
https://shunichi.hosono.com/enchant.js
< ブランク画像 >
https://shunichi.hosono.com/mask.png
対象の 画像ファイル(ペイント対象のチャート画面)は、
「screenshot.png」が初期値だが、
変更する場合は、「メモ帳」等で編集可能。
当然のことながら、カスタマイズするには、
多少の html または javascript の知識が必要となる。
< chart-mask2.htmlのソース >
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Chart mask ver2</title>
<style>
body { margin: 0; }
</style>
<script src="enchant.js"></script>
</head>
<body>
<script>
// ライブラリの初期化
enchant();
window.onload = function(){
// 変数の定義
var startx = 150
var maskadd = 2;
// 1920×1080ピクセルサイズの画面(Canvas)を作成
var game = new Game(1920, 1080);
// フレームレートの設定。
game.fps = 16;
// 画像データをあらかじめ読み込ませる
game.preload('screenshot.png',
'mask.png' );
// データの読み込みが完了したら処理
game.onload = function(){
// チャート画像 を設定
var chart = new Sprite(1920, 1080);
chart.image = game.assets["screenshot.png"];
game.rootScene.addChild(chart);
// マスク画像 を設定
var mask = new Sprite(1920, 1080);
mask.image = game.assets["mask.png"];
game.rootScene.addChild(mask);
mask.x = startx;
// キー操作時に呼ばれる
mask.addEventListener('enterframe', function(){
if (game.input.left) this.x -= (maskadd + 1);
if (game.input.right) this.x += maskadd;
if (game.input.up) this.x = startx;
if (game.input.down) this.x -= maskadd;
});
// タッチ開始時に呼ばれる
mask.addEventListener(Event.TOUCH_START, function(){
// シーンに「毎フレーム実行イベント」を追加します。
game.rootScene.addEventListener(Event.ENTER_FRAME, function() {
mask.x += maskadd;
});
});
}
// 処理開始
game.start();
}
</script>
</body>
</html>
[…] ペイント練習用の「チャート隠し」ツール ver2 […]