« SVG コードの手直し(または Inkscape 恨み節) | トップページ | ページの合成 -2- »

2012年5月 6日 (日)

ページの合成

連休の後半は FlatTable のページの合成機能の実装をしていました。FlatTable は複数の配置図(ページと呼んでいる)を扱えますが、それらの配置図を1つの画面に合成して表示することが出来ます。それがページの合成機能です。

配置図

FlatTable では、1つのページに表示できる基礎球は各種類1個づつですが、時には同じ基礎球を複数表示したいことが有ります。そのような時にページの合成を利用します。添付図では2つのページを合成して2個の手球を表示しています。楕円で示されている部分は、合成を指定したり、合成の状況を表示しているボタンです。

この機能は Flash 版で既に実装しているので、コピペして SVG+JavaScript 用にチョチョイと修正すれば良いだろうと思っていたのですが、忘れている部分も少なくなく、内容を把握するのに時間が掛かりました。さらに、素直に移植するだけにしておけば良いものを、改良も加えようなどと企てたものだから、デバッグの泥沼でもがいています。この機能の9割は出来ているのですが、あと少しのバグが取れていません。

合成の状況は各ページに2つのフラッグを持たせて管理しています。1つは他のページを合成するフラッグ、もう1つは他のページに合成されるフラッグです。

フラッグの種類上位4ビット下位4ビット
他を合成するprev 方向next 方向
他に合成されるprev 方向next 方向

ビットの位置は現行のページからの距離(何ページ目か)を表しています。ページの前後それぞれに4ビットが振られているので、前後各4ページまで合成が可能です。これらのフラッグを、ページの移動や作成・削除などの操作に合わせてビット単位で処理します。

集中力が無くて、10分コーディング・50分息抜きというようなペースでやっているものだから、長い連休中に合成機能の実装を終わらせることが出来ませんでした。合成機能の後にはもっと大きな山が待っています。まだまだ移植は続きます。

--------
ここまでの動作およびコードは、本ブログのサイドバー「Link」の「SVG+JavaScript 版 FlatTable の試作品」で確認できます。

« SVG コードの手直し(または Inkscape 恨み節) | トップページ | ページの合成 -2- »

ビリヤードの配置図ソフト」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/584699/54647456

この記事へのトラックバック一覧です: ページの合成:

« SVG コードの手直し(または Inkscape 恨み節) | トップページ | ページの合成 -2- »