よろしくお願いいたします!(_ _*

こんばんわ!

ただいま、シューティングゲーム編、SKK3.3を作っています。
Aki2氏と調整してだけど、3.3?3.4?3.5?
3.7くらいでもいいような気もするけど、今はそんな感じです。

JavaFX対応は終わってます。

開発は区切りをつけて、第4弾となる、(仮称)JavaFX対応版シューティングゲーム編を執筆していきたいと思っています。

話は変わりますが(ここからがホントは話したかった部分)、

カスタマーレビュー(口コミ)欲しいです!

アマゾンで購入いただけた方が多いと思いますが、アマゾンのカスタマーレビュー書いてくれたら、もー涙ちょちょぎれです!
いろんな意見をとりいれていけたらと思っています。
(正直に言うと、販促の意味もあります。でも、そうは(販促は)うまくいきません)

みなさんのご意見が、わたしの活力にもなります。
これが大きいかな~。(やる気ないと、なかなか進まないです。いいもの できないし)

このサイトでも、コメント、お待ちしております!

メールの方でも(本に載せています)、お待ちしております!

よろしくお願いいたします(_ _* (_ _* (_ _*

シェアしていただけるとうれしいです。

SKK プチ紹介

おはようございます。

今日は、SKK、シューティングゲーム編について、少しご紹介しようと思います。

ご紹介を遅れてしまった感がありありですが、実は、私自身がよく分かっていなかったという事情があります。

画像を載せていますが、このようなイメージというか、文字をご存知でしょうか。ヒエログリフといいます。
ネットで調べてもらえれば、すぐに分かります。
(わたし自身、ヒエログリフを知ってたか、あやしい)

そして、読めるんです。

SKK作成当時、「こんなもん、読めるか~!」と言った覚えがあります。
そう、わたしが作ったわけではありません。

この提案は、Aki2氏の提案です。
あの頃を思い出すと、ひとつひとつを吟味してるような状況ではなくて、
Aki2氏の湧き出すイメージを具体化することに追われて(もう大変(笑))、
深く考えるようなことは できませんでした。

今になって見直しをしてみると、
なんとも味があることというか、こだわりが過ぎるような気もするが(笑)、よい、ぐっどなじょぶをしてくれてました。

ぜひとも読んで(解読して)みてくださいね。
謎が書かれています。
ひとつひとつが日本語として読めるようになっています。
ネットで検索してみてくださいね。表があるので。

↓これも言ってなかったかな?
ステージ2と4と6はAki2氏、1と3と5はわたくしkinが主担当でステージ構成を行っています。
(2、4、6の方が、正直、出来がよい)

今、JavaFX対応SKKを作成中です。

パワーアップしたSKK、また凝りもせず、出しますので、よろしくお願いいたします!
(ステージ構成も変更するかも)

3.3以上でお出しする予定です。
当初の目標もクリアになります。

さてと、作り始めるかぁ~。出勤(本業)するまでね~。

あっ、Aki2氏へ!いろいろと難しいけど、いろいろな思いがあるけど、ありがとうだわ!

シェアしていただけるとうれしいです。

Graphics2D版とJavaFX版の違いについて

Graphics2D版とJavaFX版の違いについて

○描画処理の違い(1)
Graphics2D版では描画エンジンを自前で作成していた。
JavaFX版では、描画はJavaFXの仕組みの中で描画している。
(元々、処理速度低下にならないか懸念していたが、結果は問題なし)

○軽量化
Graphics2D版では、Componentを継承した部品群は利用せずに、
独自のオブジェクト(スプライトオブジェクト)を作成し、
Objectを継承していた。
Componentを継承した部品を多用すると、メモリの面、スピード面で、
不利と感じていた(検証はしていない)。

そのため、必要な機能のみに絞ったオブジェクトを作成することで、
軽量化を図っていた。
それが できた(実現できた)という背景もある。

○描画処理の違い(2)
しかし、JavaFX版ではその方法(独自オブジェクト管理)が使えないことが分かる。
JavaFXでは、Canvas-GraphicsContextで、
似たような仕組みを作ることは可能だが、同じではなかった。
回転/拡大縮小が、そのCanvasp全体に対して行われ、
途中の座標変換計算が、すべてサマリされた状態になるだけの模様。

Graphics2D版では、回転させて描画、また別の回転させて描画ということが可能だったが、
JavaFXでは、これができない。軸が全体的にずれてしまう。

自前で描画することを断念。
Nodeオブジェクト(Graphics2D版ではComponentに相当)を継承させ、
描画をJavaFXに任せる方式に変更。

○JavaFXアプリケーションスレッド
JavaFXでは、描画はJavaFXスレッドの中で自動で行われる。(最大1/60秒)
また、JavaFXスレッド以外から、JavaFXへのセッターメソッドなどを利用して値の変更を行うと、
Exceptionが発生する場合がある。

定期的な処理が必要な場合、定期的に呼び出されるタイマーを作成し(JavaFX用の)、
JavaFXスレッド上で処理を行う必要がある。

〇参考にさせていただいたサイト
http://krr.blog.shinobi.jp/
軽Lab。非常に参考にさせていただきました。
ありがとうございます(_ _*

シェアしていただけるとうれしいです。

音楽や動画GIFを扱う際の注意点

音楽や動画GIFを扱う際の注意点

javax.sounndパッケージではMIDIやWAVEを取り扱うことができる。
動画GIFはjava.awtの辺りで取り扱っていたと思う。
(何年も前に試してたので、記憶が・・・)

この動きのあるものは、実は、裏でスレッドとして動いている。
スレッドで動いていることを知らないと、思わぬ落とし穴に遭うことになる。

スレッド自体は、動きを実現するために(画像を変更する/音楽を鳴らすために)
存在しているものと思われる。
(そういう仕組みであることを知らなかった…)

MIDIオブジェクトなどを、closeせずに、
そのまま次のオブジェクトを生成すると、元々のMIDIオブジェクトが生き残ったままとなる。
スレッドも残ったままとなる。(複数スレッド存在する状態となる)

スレッドと対象オブジェクト位が残る分には、問題ないレベルかもしれないが、
それに関連する(紐ついた)オブジェクトも生きていると判断され、GC対象とはならずに、他の多数のオブジェクトがメモリから消えない状態となる。
つまり、メモリリーク状態となる。

深刻になると、OutOfMemoryErrorが発生する。

実はSKK3.1FXを作成する際に、分かったことである。
つまり、SKK3.1(Graphics2D版)も同様の現象が起きている。
(問題は出にくいが、修正する予定です)

SKK3.1FXでは、実際にOutOfMemoryErrorが発生した。
JavaFX版は、メモリ消費量がGraphics2D版に比べて、高い傾向にある。
(こちらは別途、覚え書きを書くかも)

そのためJavaFXは、OutOfMemoryErrorが発生する確率が高かった。(他の要因もあるかも。他も修正しているので)
3周目に突入すると、異様に遅くなり、最後はメモリを食い潰してしまった。

まとめると、
スレッドが作成されているもののクラスの取り扱いは注意が必要である。
ちなみにJavaFXでは専用のスレッドで管理しているため、改善しているものと思われる。

(もう少し追記)
javax.sounnd等はJavaFXの仲間ではない。Javaの拡張機能の模様。
独自のスレッドを作成している。

シェアしていただけるとうれしいです。

シューティングゲーム編 JavaFX対応

こんばんわ!

シューティングゲーム編、JavaFX対応が完了しました!

簡単に一言で言いますが、大変だった( ´▽`*)

当ホームページでも公開しました!
シューティングゲーム編のページから
SKK3_1_FX.zip
を探してください♪

話がちょっとずれるような感じですが、
大変さを、お伝えする必要がある。
わたしは そう感じています。

第4弾。
3Dにしようと思っていましたが、
JavaFXに変更します。

大変というか、JavaFX、そのものをお伝えしていく必要性があるかと思っています。

ここだけの話、JavaFXがなんぼのもんじゃ~!と思ってました。

しかし、しかし、ありですわ。いいところもあり、わるいところもありますが、慣れるしかないですね。
とりあえずは慣れた( ´▽`*)

大変だったところは、また、別の機会に書けたら・・・と思っています(忘れなければ)

とりあえずは、JavaFX対応版SKK、見てみてください!

シェアしていただけるとうれしいです。