ナチュログ管理画面 その他 その他 東海 アウトドア&フィッシングナチュラムアウトドア用品お買い得情報
ブログ作成はコチラ
あなたもナチュログでアウトドア生活を綴ってみませんか?
プロフィール
MJ
組込み系のエンジニアをやっていましたが、時代の流れとともにWeb系にシフトし、最近では、その技術を生かしIT技術講師をやっています。
私が目指す講義のあり方は、技術者として当然スキルは身につけていただきますが、人としても育っていただきたいと考えています。

アクセスカウンタ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 1人
QRコード
QRCODE
Information
アウトドア用品の
ご購入なら!

2014年10月21日

2014/10/21 LibGDX アプリ作成1 スプラッシュの表示

LibGDXで生成したプロジェクトをGradleグレイドルを利用して、Eclipseのプロジェクトに入れるところまでは問題ないですか?分からない方は「2014/09/24 LibGDX 開発環境のインストール
この辺りから順に見直してみてください。
カテゴリ追加すればいいのか?www

ということで、カテゴリにLibGDX1.3.1を追加しておきます。


Gradleで作成したプロジェクトは、以下のようになります。
「プロジェクト名」-android
「プロジェクト名」-core
「プロジェクト名」-desktop

とりあえず、Androidは必要ないのですが。。。
Android、Windows、iOSアプリの共通開発は、coreを修正します。
それぞれの個別開発(というよりは、起動時の画面サイズなどの変更程度)はandroid、desktop等を修正します。

今回は、スプラッシュ画面ということで、desktopの呼出し部分の修正と、coreで「TweenEngine」を使用してのアニメーションさせます。


1.スプラッシュ画面呼出し
  desktop内のDesktopLauncher を下記のように修正します。
  ①で呼出し先のクラスを指定しています。

package com.mygdx.game.desktop;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
import com.mygdx.game.MyGdxGameButton;

public class DesktopLauncher extends ApplicationAdapter {
private static DesktopLauncher application;

public static void main (String[] arg) {
LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();

config.title = MyGdxGameButton.TITLE + "V" + MyGdxGameButton.VERSION;

//ここで設定したいけど、まだMyGdxGameButtonが生成されていないので、
//SplashのShowで行う。
// config.vSyncEnabled = Settings.vSync();
config.vSyncEnabled = true;

config.useGL30 = false;
config.width = 1136; // xperia ray 854
config.height = 640; // xperia ray 480
//フルスクリーン
// config.fullscreen = true;

new LwjglApplication(new MyGdxGameButton(), config); // ①

}
}



2.起動準備
  Gameクラスを継承したクラスが呼び出されます。Gameクラスのライフサイクルは「ここ」を参考にしてください。
  概念的に、Gameクラスを継承したこのクラス(今回はMyGdxGameButton )をベースにしてスクリーンを張り替えるイメージのようです。
  ①でスプラッシュ用スクリーンを生成してそのスクリーンを表に表示します。
  ここで、見てわかるのは、ほぼスッカラカンのクラスです。そしてすべてオーバーライドしたクラスを呼び出しています。



package com.mygdx.game;

import com.badlogic.gdx.Game;
import com.mygdx.game.sceens.Splash;


public class MyGdxGameButton extends Game{

public static final String TITLE = "OH MY GOD!!!";
public static final String VERSION = "0.0.0.0";

@Override
public void create() {
setScreen(new Splash());    // ①
}

@Override
public void dispose() {
super.dispose();
}

@Override
public void render() {
super.render();
}

@Override
public void resize(int width, int height) {
super.resize(width, height);
}

@Override
public void pause() {
super.pause();
}

@Override
public void resume() {
super.resume();
}
}


3.スプラッシュスクリーンの作成
  「TweenEngine」を使用します。アニメーションさせるのに楽ちんにできます。ダウンロードして、外部Jarに追加しておいてくださいね。
  今回は、tween-engine-api-6.3.3.zipを使用しました。
  
  ①SpriteAccessorは後程作成します。
  ②Gdx.files.internal("img/sprash.png")では、desktopのassetsにアクセスできますが、desktopのassetsがどうやらリンクになっているようですので、Androidからコピーして持ってきてください。でないとアクセスできないですw
  ③ここでは、一通りアニメーションが終わった場合のコールバックを記載します。まだメニューは作成していないので、終わったら終了させるでよろしいかと思います。
  ④、⑤のおまじないを追加しておいてください。


package com.mygdx.game.sceens;

import aurelienribon.tweenengine.BaseTween;
import aurelienribon.tweenengine.Tween;
import aurelienribon.tweenengine.TweenCallback;
import aurelienribon.tweenengine.TweenManager;

import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.mygdx.game.tween.SpriteAccessor;

public class Splash implements Screen{

private SpriteBatch batch;
private Sprite splash;
private TweenManager tweenManager;

@Override
public void render(float delta) {
Gdx.gl.glClearColor(0,0,0,1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

tweenManager.update(delta); // ④

batch.begin();           // ⑤
splash.draw(batch);
batch.end();

// dispose();
}

@Override
public void resize(int width, int height) {
splash.setSize(width, height);
}

@Override
public void show() {
//Mainで設定したいけど、
Gdx.graphics.setVSync(Settings.vSync());

batch = new SpriteBatch();
tweenManager = new TweenManager();
Tween.registerAccessor(Sprite.class, new SpriteAccessor());  // ①

Texture splashTexture = new Texture(Gdx.files.internal("img/sprash.png"));  // ②
splash = new Sprite(splashTexture);
splash.setSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());

Tween.set(splash, SpriteAccessor.ALPHA).target(0).start(tweenManager);
//フェードイン、フェードアウトした後のコールバックを書くよ!
Tween.to(splash, SpriteAccessor.ALPHA, 2).target(1).repeatYoyo(1, 0.5f).setCallback(new TweenCallback(){

@Override
public void onEvent(int type, BaseTween source) {
// ((Game) Gdx.app.getApplicationListener()).setScreen(new MainMenu());  // ③
             exit(0);
}

}).start(tweenManager);

// tweenManager.update(Gdx.graphics.getDeltaTime());
tweenManager.update(Float.MIN_VALUE);
}

@Override
public void hide() {
dispose();
}

@Override
public void pause() {
// TODO 自動生成されたメソッド・スタブ

}

@Override
public void resume() {
// TODO 自動生成されたメソッド・スタブ

}

@Override
public void dispose() {
batch.dispose();
splash.getTexture().dispose();
}

}



4.アクセサーを作成
  今回はフェードイン、アウトなので、ALPHA値を変更できる仕組みを提供します。
  

package com.mygdx.game.tween;

import aurelienribon.tweenengine.TweenAccessor;

import com.badlogic.gdx.graphics.g2d.Sprite;

public class SpriteAccessor implements TweenAccessor {
public static final int ALPHA = 0;

@Override
public int getValues(Sprite target, int tweenType, float[] returnValues) {
switch(tweenType){
case ALPHA:
returnValues[0] = target.getColor().a;
return 1;
default:
assert false;
return -1;
}
}

@Override
public void setValues(Sprite target, int tweenType, float[] newValues) {
switch(tweenType){
case ALPHA:
target.setColor(target.getColor().r, target.getColor().g,target.getColor().b, newValues[0]);
default:
assert false;
}

}
}



いかがでしょうか?動きましたか?

●倒れるだけで腹筋ワンダーコアでおなじみの商品です。
ショップジャパン 【正規品】ワンダーコア(WONDER CORE)DVD付
ショップジャパン 【正規品】ワンダーコア(WONDER CORE)DVD付




同じカテゴリー(Android)の記事画像
2014/10/22 LibGDX アプリ作成2 画面遷移、タイトル文字表示、ボタン、イベント処理追加
2014/10/07 LibGDX 開発環境のインストール3 使い方 bmfont
2014/10/07 LibGDX 開発環境のインストール2 使い方 9patch,texturepacker
2014/10/01 LibGDX 1.3.1 LibGDXTestsを動かす?
2014/09/24 LibGDX 開発環境のインストール
同じカテゴリー(Android)の記事
 2014/10/22 LibGDX アプリ作成2 画面遷移、タイトル文字表示、ボタン、イベント処理追加 (2014-10-22 10:48)
 2014/10/07 LibGDX 開発環境のインストール3 使い方 bmfont (2014-10-08 16:13)
 2014/10/07 LibGDX 開発環境のインストール2 使い方 9patch,texturepacker (2014-10-07 15:37)
 20141002 LibGDX 1.3.1 不完全辞書 (2014-10-03 11:59)
 2014/10/01 LibGDX 1.3.1 LibGDXTestsを動かす? (2014-10-01 10:23)
 2014/09/24 LibGDX 開発環境のインストール (2014-09-26 09:08)

※このブログではブログの持ち主が承認した後、コメントが反映される設定です。
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

削除
2014/10/21 LibGDX アプリ作成1 スプラッシュの表示
    コメント(0)