JavaSE

2011年9月17日 (土)

【JavaSE】フレームワークライブラリを更新 (2011/09/17)

JavaSE向けビデオゲームライブラリ(isle_shimakura.jar)を更新した。

  1. Ubuntu(PulseAudio)で、VGAudioClipがWAVファイルの読み込みに失敗していたのを修正
  2. Ubuntu(PulseAudio)で、VGAudioClipのstartメソッドを繰り返し呼んだとき鳴らなかったのを修正

以下は変更内容に関してのメモ。

続きを読む "【JavaSE】フレームワークライブラリを更新 (2011/09/17)"

| | コメント (0)

2011年9月14日 (水)

【JavaSE】フレームワークライブラリを更新 (2011/09/14)

JavaSE向けビデオゲームライブラリ(isle_shimakura.jar)を更新した。

  • VGAudioClipでJARファイルの中にあるファイルを指定すると落ちる不具合を修正

Java SE 7でOpenJDKがリファレンス実装ということになって、OpenJDKでは以前から発生していたがOracle Javaでは発生していなかった例外がもれなく発生するようになった。

例外は"java.io.IOException: mark/reset not supported"という内容。対処としてはBufferedInputStreamをかぶせただけ。十分かどうか現時点では定かでない。

| | コメント (0)

2011年6月21日 (火)

タイルマップ座標のオフセットを求める

タイルマップ上のある一点の座標から、タイル単位の座標とタイル内のオフセットを求めるサンプルプログラムを作った。

負の座標から正のオフセットを求めるシンプルなコードはC/C++でもそのまま使える。フレーズとして覚えておきたい。

続きを読む "タイルマップ座標のオフセットを求める"

| | コメント (0)

2011年3月 1日 (火)

【JavaSE】フレームワークライブラリを更新 (2011/03/01)

JavaSE向けビデオゲームライブラリ(isle_shimakura.jar)を更新した。

  • VGFrameでウインドウを開いたとき、たまにフォーカスを取得できていなかったのを修正
  • VGCanvasにイベントコールバックメソッドを追加

追加したメソッドは次の三つ。

init
ゲームフレームワークのコールバックを開始する前に呼び出される
destroy
ゲームフレームワークのコールバックを終了した後に呼び出される
activate
アクティブ化・非アクティブ化するときに呼び出される

| | コメント (0)

2010年10月12日 (火)

【JavaSE】サイドビューの実験(17/17)

キャラクタが中央に来るように左右にスクロールさせてみた。

操作感に変化があるかと期待したが、特に変わらなかった。

当初、回転する床の実験も考えていたが小数点以下の計算が必要でプログラムの継ぎ足しでは無理。仕切り直す。『サイドビューの実験』は今回でいったん終了。

続きを読む "【JavaSE】サイドビューの実験(17/17)"

| | コメント (0)

2010年10月11日 (月)

【JavaSE】サイドビューの実験(16/17)

空中にいるとき左右に移動しようとしたら慣性が外れるようにしてみた。いい感じ。

ところでブロックが止まる直前にジャンプしたとき、ブロックが止まると空中にいるキャラクタも止まる。

慣性じゃない。

しかしジャンプアクションゲームとしてただジャンプしただけでは落下しないという仕様はむしろメリットではないかと思う。

続きを読む "【JavaSE】サイドビューの実験(16/17)"

| | コメント (0)

【JavaSE】サイドビューの実験(15/17)

慣性が無いので横移動するブロックの上でジャンプすると置いて行かれる。

ジャンプ中に左右移動できる時点で物理法則を無視しているのだから仕方ない気もするけど、うっかりジャンプして落下してしまう事態は避けたい。

とりあえず慣性を付けてみた。

ただジャンプするだけならおかしくないが、ジャンプ中に左右移動すると途端に不可思議に映る。特に横移動ブロックの移動方向と逆方向にジャンプするととてもあり得ない動きに見える。

続きを読む "【JavaSE】サイドビューの実験(15/17)"

| | コメント (0)

2010年10月10日 (日)

【JavaSE】サイドビューの実験(14/17)

実際に横移動するブロックを跨いで渡るときの操作性について実験してみて、完璧な対処はどうやら無理だと分かった。

けっきょく『移動するブロックは跨いで乗れない』ようにしてしまうのがもっともシンプルで完璧な対処方法ということになる。

というわけで横移動するブロックを少し下げた位置に設定してみた。

実験11』や『実験13』で対症療法的に組み込んだコードは不要。ソースコードはライブラリの新機能を使ったり整理した以外は『実験10』からステージを変更しただけの内容となった。

続きを読む "【JavaSE】サイドビューの実験(14/17)"

| | コメント (0)

2010年10月 9日 (土)

【JavaSE】サイドビューの実験(13/17)

スクリーンショットは『実験12』と変化なし。

タイルマップ関連のライブラリを使うようにした。

追従する移動ブロックをひとつに定めて、その移動ブロックだけ追従するようにした。

キャラクタの横幅の半分以上乗るとその移動ブロックに追従するようになる。

また移動ブロックに乗っていない状態からは少しの幅でも乗ったときその移動ブロックに追従するようになる。

左右に引っ張られる感じは無くなった。

続きを読む "【JavaSE】サイドビューの実験(13/17)"

| | コメント (0)

2010年10月 7日 (木)

【JavaSE】フレームワークのタイルマップ実装

ビデオゲーム用フレームワークライブラリ(isle_shimakura.jar)のタイルマップ関連の実装を進めた。

タイルマップの上下・左右の反転機能の実装がめんどうくさかった。使いそうもない機能だから捨てようかと思ったがひととおり実装してみた。

  • ひとつの画像でタイル状に並ぶイメージを扱うVGTiledImageクラス
  • タイルマップを扱うVGTilemapクラス

今後作成するサンプルプログラムで使っていく予定。まだまったくデバッグしていない。

【2010/10/08 追記】

著名な某大陸のマップを表示するテストプログラムを作って確認。

案の定、タイルマップの上下・左右の反転機能がバグってたので修正した。

続きを読む "【JavaSE】フレームワークのタイルマップ実装"

| | コメント (0)