2014年1月31日金曜日

OpenFLをちょっと触ってみた

OpenFLに関する記事に興味が湧いて、ちょっと触ってみた。ほんとにちょっとだけ。

http://www.openfl.org/download/

特にエラーもなく、Run a Sampleまで、あっさり進めることができた。中身はどんなコードなのかなと思って、Main.hxってファイルを開いてみると、
package;

import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import openfl.Assets;

class Main extends Sprite {
 public function new () {
  super ();
  
  var bitmap = new Bitmap (Assets.getBitmapData ("assets/openfl.png"));
  addChild (bitmap);
  
  bitmap.x = (stage.stageWidth - bitmap.width) / 2;
  bitmap.y = (stage.stageHeight - bitmap.height) / 2;
 }
}
昔、頑張って勉強したAction Scriptとそっくり。Action Scriptは、iOSがFlashを表示できないので、すっかり使わなくなってた。これなら、少し思い出すだけでスラスラ書けそうだ。

2014年1月30日木曜日

Toastをキャンセルする

Toastを連続で表示させると、前のToastが消えるまで、新しいToastが表示されないので、Toastの渋滞が起きる。解決するには、下のようなコードをActivityに記述すると良い。
private static Toast t;

public void toast(String message) {
 if(t != null) {
  t.cancel();
 }
 t = Toast.makeText(this, message, Toast.LENGTH_LONG);
 t.show();
}
参考元:
http://stackoverflow.com/questions/6744147/cancelling-an-already-open-toast-in-android

2014年1月28日火曜日

地形を作ろう!

まもなく公開予定のFumotrim 1.7.4では、地形作成機能が追加されます。プリミティブ作成メニューから、下のようなランダムな地形を作成できます。


地形の解像度と平滑度を調整できます。フルバージョンでは高解像度の地形を作成できます。ランダムな地形は、Perlin Noiseを使って作成しています。

Fumotrimで作れるプリミティブ一覧はこちら。
http://fumotrim.net/fumotrim/primitive-generator




本当はここまで細かい地形を作れけど、メモリを激しく消費するので、一段階低い解像度を限度にしています。そのうち最高解像度にも対応したいな。

2014年1月27日月曜日

Perlin Noise Generator

Perlin Noiseについて勉強しようと思ったので、技術検証用にアプリも作ってみました。ダウンロードは下のリンクから!

Android app on Google Play


このようなPerlin Noise画像を作成できます。作成した画像(png)の送信もできます。処理時間もわかるので、簡単なベンチマークにも使えます。


MenuのPreferenceから、画像サイズ、オクターブなどを調整できます。


Perlin Noiseに関して参考にしたサイトはこちら。

Perlin Noiseについて
http://freespace.virgin.net/hugo.elias/models/m_perlin.htm

参考にしたコード。C#はJavaとそっくりなので簡単に移植できた。
http://devmag.org.za/2009/04/25/perlin-noise/

3D版。今回は使っていないけど、そのうち使ってみたい。
http://mrl.nyu.edu/~perlin/noise/