2017年8月17日木曜日

新作アプリTouchScreenBenchmark

2年ぶりに新作アプリをリリースしました

スマートフォンやタブレットのタッチスクリーンの性能を計測するベンチマークアプリです

計測項目はスクリーン感度・タッチレスポンス・タッチ位置精度の3つとなってます
あとフリーテストモードもあってイベントやマルチタッチのテストもできるツールとなってます

よかったら使ってみてください



2015年11月10日火曜日

間取りー図をアップデートしました グリッドとパーツの追加

間取りー図をアップデートしました

主な変更点は以下の通り

・グリッドの追加(5cm,45cm,2inch,1.5feet)
・廊下,玄関フロアの追加
・簡易なSVGファイルへの出力の追加(Pro版のみ)
・編集操作の改良
  
以上です
以前からユーザーからの要望で上がっていた5cm、45cm単位のグリッド設定を追加しました
あとパーツ(廊下、玄関フロア)の追加、ほかにもまだ追加したいものはあるのですがとりあえずこれ
それとPro版だけですがSVGファイルへの簡易出力(床と壁とドアと窓)の追加 あとは点編集時の操作感を少し改良しました

2015年9月16日水曜日

お客様のアプリはポリシー違反の可能性があると判断されました

すでに解決済みではありますが、先日デベコンに

 

という表示が・・・
どうやらこの3つのアプリが引っかかってるようです

2年以上も放置されていたゾンビアプリなもんで、どうやら広告表示に使っていた古いライブラリが引っかかっていたようです
もうゾンビアプリだし消してもいいかと思うが、一応ユーザーが残っているということなんでライブラリを外して更新を行ったところ、警告はすぐ消えました

2015年8月27日木曜日

EasyPuttingがアンドロイダー公認になりましたー

拙作EasyPuttingがアンドロイダー公認アプリになりました。
そしてその勢いのまま、デイリーランキングで7位に!

やった!

2015年7月27日月曜日

新作アプリEasyPuttingをリリースしましたー

ついに新作アプリEasyPuttingをリリースしました
EasyPuttingはその名の通りシンプルで手軽に遊べるカジュアルスポーツゲームです
またプレイデータの統計分析機能がやたらと無駄に充実しております
是非とも、たくさんプレイしてみてください


2015年7月1日水曜日

パッティングゲームの製作(1万件超データの格納方法)

さて、前回は傾斜面を転がるボールが曲がるアルゴリズムを作成しましたが、その中でボール位置の傾斜角度を利用して計算してます
そのためグリーンの傾斜角データを用意してやらねばなりません
とりあえずグリーンの大きさは横10m×縦6mとして、まずは高度を濃度で表現した画像を作成しました

これを縦横共に100分割した各点の高度を求めて、隣接点の高度からXY方向の傾斜角を取得します

こうして取得したXY方向の各点の傾斜角が100×60×2で12000個になりました
この12000個のデータをリアルタイムで利用しなければならんのですが、とりあえずCSVファイルにしてアプリ起動時に読込んでみましたが、読込みが遅い・・・4~5秒ほどかかってしまいます
データベースに入れるのもなんだし、どうしたもんかなぁ悩んでみて、もういっそのこともうベタで書いてみるかとスタティック変数にぶち込んでみました
ひどいですね、良い子はマネしてはいけません
しかしこれは劇的に早くなり、かなりよさそうなんで、もうこれでいっちゃいます

2015年6月16日火曜日

パッティングゲームの製作(斜面でボールが曲がるアルゴリズム)

前回グリーンを転がるボールが止まるアルゴリズムのやったんで、今度は地面の傾斜でボールが曲がるアルゴリズムを作ってみたいと思います
なぜボールが曲がるかっていうと、重力が働いているからですね
図にするとこんな感じ

傾斜角θの時、x方向にg・sinθの力が加わり、ボールが曲がります
これをソースに起こしてみましょう

public class Ball {
    final public static int G = 9800;    //重力加速度(mm/ss)
    final public static float u = 0.075f; //摩擦係数
    public Plot position = new Plot();   //位置
    public int speed; //並進速度(mm/s)
    public double angle; //進行方向(Radian)

    //移動処理(interval:経過時間(ms))
    public void move(long interval) {
        //摩擦による減速処理
        speed -= (u * G * interval) / 1000;
        //速度をXY成分に分割
        int xSpeed = (int)(speed * Math.cos(angle));
        int ySpeed = (int)(speed * Math.sin(angle));
        double xa = getXTilt(prev.x, prev.y); //X方向の傾斜角取得
        double ya = getYTilt(prev.x, prev.y); //Y方向の傾斜角取得
        xSpeed -= (G * Math.sin(xa) * interval) / 1000; //X方向に働く重力による加速
        ySpeed -= (G * Math.sin(ya) * interval) / 1000; //Y方向に働く重力による加速
        angle = getAngle(0f, 0f, xSpeed, ySpeed); //重力により曲がった進行方向を取得
        //XYの速度から位置を更新
        position.x += (xSpeed * interval) / 1000;
        position.y += (ySpeed * interval) / 1000;
    }
}
こんな感じでボールが転がる処理は完成