てきとうな足跡
イラストやらバイトの事を書いている大学生のブログ
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
ParteSystem設計
シューティングと言えばパーティクルシステムだろうということで
パーティクルシステムの設計

パーティクルシステムについてはwikipediaとか参考
炎とか煙とかの描画が出来ます。

こんな感じに
particle1.png

このサンプルコード

環境設定とかは
Slick2D で今どきの Java ゲームプログラミング
とか
「フラチキさんブログ」のEclipse + Slick2D のセットアップ(サンプルの実行まで)とか参考。


パーティクルシステムの使い方は、ここにも書いてある通りです。
particle2.png
http://slick.ninjacave.com/forum/viewtopic.php?t=50(2015/2/14アクセス)
今回はキーを押した時だけ、もしくは敵を倒した時だけ煙を発生させたいので、ここに少し修正を加えます。


1.emitterファイル(xmlファイル)の修正
slick/testdata に入っている「flame.xml」「particle.tga」ファイルをコピーして、
flame.xml をテキストエディタで開き、 length enabled="true" に書き換える。
max min の値はパーティクル作成から消滅までの時間なのでご自由に調節してください。
particle3.png

2.パーティクルシステムの作成場所の設定
// String path = "data/flame.xml";

emitter = ParticleIO.loadEmitter(path);
emitter.setPosition(x, y, false);
system.addEmitter(emitter);
particle4.png
このfalseが無いと、このように右下に余計なものが描画されてしまいます。
FPS5.png

3.パーティクルの回転について
emitter.angularOffset.setValue(dec); //dec = 0 ~ 360
で、現在の角度から何度回転させるか指定できます。
今回のサンプルコードでは
↑ボタンを押したら0度
↓ボタンを押したら180度
→ボタンを押したら270度
←ボタンを押したら180度
回転するようになっています。


参考にしたソース・サイト
Slick Forums「[Help] how the particle system works ?」
http://slick.ninjacave.com/forum/viewtopic.php?t=50

Game Development 「Java Slick2d particles error [closed]」
http://gamedev.stackexchange.com/questions/53996/java-slick2d-particles-error

Game Development 「Slick2D re-starting particle system/emitter」
http://gamedev.stackexchange.com/questions/90654/slick2d-re-starting-particle-system-emitter

Slick Forums「Rotating Emitter」
http://slick.ninjacave.com/forum/viewtopic.php?t=2948

stackoverflow「Slick2D Particle System - Particles misplaced when first spawned」
http://stackoverflow.com/questions/22582821/slick2d-particle-system-particles-misplaced-when-first-spawned
スポンサーサイト
FPS修正しました。
javaの3DゲームライブラリのjMonkeyを使って、
「Neon Vector Shooterを作ろう」という解説ページがあるのですが、
英語なのでよくわかりませんでしたが、ゲームは面白かったです。
http://gamedevelopment.tutsplus.com/tutorials/make-a-neon-vector-shooter-in-jmonkeyengine-the-basics--gamedev-11616

それと、今は色々なゲームライブラリ・開発環境があるみたいです。
よかったらどうぞ。
http://ludumdare.com/compo/tools/


あと、FPS修正版をソースコードと一緒に制作物まとめにアップロードしました。
右側のリンクからDLしてください。別ゲーになりました。


修正にあたり参考にしたURLとか:
Slick2d Javadocument
http://slick.ninjacave.com/javadoc/

株式会社 アイプランニング「Javaでシューティングゲーム」
http://www.ipl.co.jp/item/JavaShootingGame.html
Slick2d入力イベントについて
最近は、虫姫さまふたり(BL)、デススマイルズ(BL)、怒首領蜂大復活、他
で忙しい毎日です。ゲームセンターで1CCしたので満足してます。

それと、薄い本を読んでいたら創作意欲が湧いてきたので
1年程前のソースコードを見なおしていました。今回はそんなメモです。

入力イベントの実装方法はwikiにも有るけど、色々ありまして、

①BasicGameStateを継承したメインクラスの
public void update(GameContainer gc, StateBasedGame sbg, int delta) throws SlickException
関数で実装する方法
input1.png

②BasicGameStateを継承したメインクラスをOverridesする方法
※但し、キーを押しっぱなしにしてもkeyPressedイベントは1度しか呼ばれないので注意。
input2.png

③KeyListenerインターフェースを実装したクラスを作成
1.KeyListenerを実装したクラスを作成
input5.png

2.init 関数にリスナー追加
input6.png

あとは、update関数に適当にイベント追加して完了
input7.png

注意点として、
public boolean isAcceptingInput()
の戻り値をTrue; にしないと動作しない事。
input4.png

参考:Slick2D KeyListener doesn't get input
http://stackoverflow.com/questions/22251505/slick2d-keylistener-doesnt-get-input
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。