いろいろガンガンいこうぜ。体も大事に

普段はJavaでAndroidアプリ開発しているプログラマーのブログです。

Google Play Game ServiceとBaseGameUtilsの簡易メモ

Google Play Game ServiceをBaseGameUtilsというライブラリプロジェクトを利用して使う際の簡易メモです。 プロジェクトの構成のメモ ゲームのプロジェクトには2つのライブラリプロジェクトが必要です。Eclipseのプロジェクト名で言うと, google-play-servi…

GameObjectについている全てのコンポーネントを取得する

GameObjectについている全てのコンポーネントを取得するGetComponentsSampleというクラスを作ります。 上の画像のようにGameObjectに, Transform BoxCollider RigidBody Sample0 Sample1 Sample2 GetComponentsSample という並び順でひとつのGameObjectにコ…

GetComponentメソッドについて

GetComponentメソッドについて調べたり,まとめてみたりしました。 (Unity4.3.2f1で試しています。) 3個のオーバーロード Componentクラスのインスタンスメソッド,GetComponent。 GetComponentのスクリプトリファレンス このGetComponentメソッドは3個のオ…

StopCoroutineみたいに引数にメソッド名を文字列で渡すのが嫌。

前置き 静的型付け言語の良さの一つは,実行する前にコンパイルエラーで型の矛盾点やおかしい点を見つけられることだと思います。 例えば,定義していないメソッドを呼び出そうとしたり,クラス名が間違っていた場合,実行前におかしいということに気づけま…

「Java魂」の2章,finalストーリーを4での感想

論理エラーをコンパイルエラーに置き換える コンパイルエラーはある程度簡単に修正することがほとんどです。 それに対して論理エラーは発見するのが難しく,致命的な不具合を起こすことも多いです。 そのような内容で始まる,「Java魂」の2章,finalストーリ…

オブジェクト指向って何だ?

オブジェクト指向って何だ? オブジェクト指向。 クラス,インスタンス,継承,アクセス修飾子,メソッド,フィールド,インタフェース,抽象クラス,ポリモーフィズム 一つ一つの用語の意味は理解しているつもりです。 ThoughtWorksアンソロジー アジャイル…

Unityでインスペクターから値や参照を設定したいけど,publicなフィールドは嫌。[SerializeFieldAttribute]

結論。SerializeFieldAttribute属性をフィールドに設定することで,フィールドをpublicにしなくても,privateなフィールドでもインスペクターで値を設定できるようです。 現状の問題点 Unityでは,Monobehaviorのサブクラスのpublicなフィールドの値・参照を…

Javaのコンストラクターなどの初期化について (1)

Javaのコンストラクターなどの初期化について整理してみようと思います。 title(String型) message(String型) description(String型) という3つのString型のフィールドを持ち,コンストラクタでそれらを初期化するクラスを作ります。 下記は良くない実装です…

ジェネリクス(総称型)について その3

前回,型パラメータが一つのジェネリクスを使ったクラスを作ってみました。 今回は型パラメータが二つのクラスを試してみます。 package com.mrstar.practice_generics; public class SampleGeneric<T1, T2> { private T1 mValue1; private T2 mValue2; public Sampl</t1,>…

ジェネリクス(総称型)について その2

Javaプログラムにおいて,型パラメータを持つクラスを定義してみました package com.mrstar.practice_generics; public class GenericSample<T> { private T mValue; public GenericSample(T value) { mValue = value; } public T getValue() { return mValue; </t>…

ジェネリクス(総称型)について その1

型とか継承とかジェネリクスの話。 特にジェネリクスは理解していると思っていたのですが,理解が甘かったです。 package com.mrstar.practice_generics; public class Super { } このSuperというクラスと, package com.mrstar.practice_generics; public c…

ListAdapterについて調べてみた(4) SimpleAdapter編その3

前回の続きということで,SImpleAdapterの使い方です。今回はViewBinderを見て行きます。 前回,SimpleAdapterの内部でどのようにViewとデータがバインドされるかを確認しました。SimpleAdapterは,BaseAdapterを継承していろいろ実装するよりも少ないコード…

ListAdapterについて調べてみた(3) SimpleAdapter編その2

前々回はArrayAdapterを,前回はSimpleAdapterを使ってみました。今回は前回の続きとして,SimpleAdapterのソースコードとクラスリファレンスを詳しく見て行きたいと思います。 バインドできるビューとデータ型 BaseAdapterを継承してAdapterを作る場合,get…

ListAdapterについて調べてみた(2) SimpleAdapter編その1

前回ArrayAdapterを使ってみました。 ArrayAdapterは,一つのTextViewだけセルごとに値を設定する場合,getViewメソッドをオーバーライドしたりせず非常に少ないコード量で書けます。 しかし,TextViewではなくImageViewの要素をセルごとに設定したり,セル…

ListAdapterについて調べてみた(1) ArrayAdapter編

ArrayAdapterを継承して,getViewをオーバーライドしたり,Adapter内でViewHolderをインナークラスで定義したり,セルのビューのタグにホルダーをセットしたりなどは今回しません。ArrayAdapterを継承せずに,そして非常に少ないコード記述量で使ってみます。…

Unityのシーンファイルの中身を見てみた (2)

Unityのシーンファイルの中身を見てみた(1)の続きです。 Unity 4.2から,無料版でもテキストベースでシーン・マテリアルなどを保存出来るようになり,バージョン管理システムなどで差分を確認しやすくなりました。Unityのシーンを編集した際に,シーンはテキ…

ListViewが一番下までスクロールした時点で追加要素を読み込むようにしたら,スクロールしていないのに要素が1回追加されていた

結論から言うと原因は,AbsListView.OnScrollListenerのonScrollメソッドの仕様を勘違いしていて,このメソッドがスクロールしていなくても呼ばれていたためのようです。 Twitterクライアントのようなものを想定しています。 ListViewが一番下までスクロール…

Unityのシーンファイルの中身を見てみた (1)

Unity 4.2から今まで有料のPro版でしか使えなかった,マテリアル、プレハブ、シーンなどのテキストベースでのシリアルライズが無料版でも利用出来るようになりました。 (http://japan.unity3d.com/unity/whats-new/unity-4.2を参照) 無料版において,gitなど…

Photonを用いてオブジェクトの座標を同期してみる

Unity上でPhotonを使って,ネットゲームでのオブジェクトの座標の同期に挑戦してみました。 Photon Cloud公式のチュートリアルを見たところ(http://doc.exitgames.com/photon-cloud-jp/TutorialMarcoPolo/#cat-tutorialsなど)ネットゲームの大切な要素がたく…

ArrayListの中身を見てみた(1)

ArrayList完全修飾名で言うと,java.util.ArrayListいつもお世話になっているこのクラスの実装がどうなっているのか?気になったので中身を見てみました。 参照したのは,Android SDKの以下の リファレンスは docs/reference/java/util/ArrayList.html ソー…

Gsonのユーザーガイドを見てみた (3)

前回,前々回に引き続き,Gsonのユーザーガイドを見ていきます。 Person.java package com.rmstar.gson.userguide; public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age;…

Hello Widget! (2) AppWidgetProviderについて

Widgetを作る際に作ったAppWidgetProviderのサブクラス。 最小実装のWidgetを作った時は,メソッドを何も定義しないクラスを作りました。 AppWidgetProviderクラス。 BroadcastReceiverのサブクラス。 中でどんな複雑なことをしているのだろう? と思いきや…

Gsonのユーザーガイドを見てみた (2)

前回に引き続き,Gsonのユーザーガイドを見ていきます。 配列 Gsonのユーザーガイドには,intとStringの配列の例がありました。Person.java package com.rmstar.gson.userguide; public class Person { private String name; private int age; public Person…

Gsonのユーザーガイドを見てみた (1)

Gson User Guideに載っているサンプルを実際にやってみたり,書いてあるポイントを自分なりにまとめてみました。 基本型 package com.rmstar.gson.userguide; import com.google.gson.Gson; public class Primitives { public static void main(String[] arg…

Gsonを使ってみた。(1)

Gsonを使ってみた。 Gson JavaのオブジェクトをJSON形式に変換することができるライブラリ。 JSON文字列をJavaのオブジェクトに変換することもできるようです。 JavaオブジェクトをJSONに変換するオープンソースプロジェクトはいくつか存在するのだけれど次…

Javaの列挙型について(3)

前回,前々回に引き続き列挙型。 列挙型に組み込まれているいくつかのメソッドを確認。 Month.java package com.rmstar.enumsample; public enum Month { JANUARY("睦月", "冬"), FEBRUARY("如月", "冬"), MARCH("弥生", "春"), APRIL("卯月", "春"), MAY("…

Javaの列挙型について(2)

前回に引き続き列挙型。 今回は月を表す列挙型と,その使用例。 Month.java package com.rmstar.enumsample; public enum Month { JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER, ; } Main.java packa…

Javaの列挙型について(1)

Javaの列挙型について。 public static final int DIRECTION_NORTH = 0; public static final int DIRECTION_EAST = 1; public static final int DIRECTION_SOUTH = 2; public static final int DIRECTION_WEST = 3; private static void showDirection(int …

C#で継承とかポリモーフィズムとか(2) 抽象クラスとかインターフェースとか

C#

抽象クラスを使ってみた。 abstract class AbstractSuper { public void Process() { Prepare(); Execute(); } abstract protected void Prepare(); abstract protected void Execute(); } class ImplA : AbstractSuper { protected override void Prepare (…

C#で継承とかポリモーフィズムとか(1) 仮想関数?

C#

class Super { public void Hello () { Console.WriteLine ("Hello, this is Super class."); } } class Sub : Super { public void Hello () { Console.WriteLine ("Hello, this is Sub class."); } } class MainClass { public static void Main (string[]…