ウィルコム用Javaアプリ制作記録(仮)スマートフォン用の表示で見るウィルコム用Javaアプリ制作記録(仮)素人のウィルコム用Javaアプリ制作の記録ですこのブログの目次2018-05-14スペシャルサンクス制作協力のお礼ばななん。さんに特殊タイトル画面イラストを描いていただきました。ゲームに使用するイラストを他人に依頼することは初めての経験でしたので、大変勉強になりました。依頼の仕方などで相手と文字でやりとりするにあたって、相手にどのような文章にして自分の要件を伝えることができるか、などを考えるきっかけになりました。saraemi.comキャラクターの設定資料などを用意していなかった中、(あの後ろ姿三枚のタイトル差分くらい)、今まで後ろ姿を向いていたキャラクターがこちらを向いて笑顔を見せるという場面を表現していただきました。このブログを作った理由の一つに、この素晴らしいイラストがプレイヤーの限られるアプリ限定になってしまうのが勿体なかったというがあります。様へ制作に快く協力していただいたことを、この場にて感謝申し上げます。様ゲームのBGM、SEに使用しました。童謡てるてる坊主の童謡風、ハープアレンジをステージBGMとゲームオーバーBGMに使用。かすり時のSEにはreflectを使用しています。13:15スペシャルサンクスTweet広告を非表示にするもっと読むコメントを書く2018-05-06音楽ファイルの使用この記事では、音楽ファイルの使用方法について解説します基本となりそうな部分について。{e.printStackTrace();}InputStreamでファイルを入力。Manager.createPlayerでplayerにファイルを渡す。player.start()やplayer.stop()で再生停止ができます。サンプリング周波数8/16/32kHz)に変換する必要があるそうなのですが、自分が見つけた変換ソフトのほとんどがWindows10に対応していない模様?よくXP環境で挙げられているサウンドレコーダーも見つからない。仕方ないので現状のwavファイルのままで完成ビルドにいれています。WX402KCではSEが再生されないという状況ですが、もし他の機種で再生されたなどありましたら、情報提供していただけると幸いです。23:37音楽ファイルの使用Tweet広告を非表示にするもっと読むコメントを書く2018-05-06グラフィックの使用この記事では、ゲームに不可欠なグラフィックの利用方法をまとめます。Canvasへの描画サンプル、GraphicsSampleCanvas.javaが参考になります。//三角形の頂点をx,y3つ指定javaアプレットのpaintを使用したことがあれば、同じような感覚で使用できるでしょう。画像の利用ゲーム画面内のドット絵や背景は自分で描いたものです。(過去のリソースそのまま)画像を表示させるだけならばImageメソッドで十分可能ですが、ここではSpriteメソッドを使用して、画像を表示させていきます。SpriteにはImageにはない便利な機能があるので、活用することによって画像容量&ファイル数削減に役立てることができます。グラフィックや音楽などのリソースはプロジェクトフォルダのresフォルダに保存すること。//(1)描画Imageクラスで読み込んだ画像をSpriteに指定します。Spriteでは反転やフレームを指定できるのでアニメーションに便利。一つの画像にまとめることによって読み込み回数を減らすことができ、その点でも有利(自分はそうしてないけれどもこの機能を使用して、タイトル画面を表示させています。タイトル画面は差分となっていて、順次重ねていくことによって変化をつけています。クリア1回目はこうなる画像の反転プレイヤーはこの画像を半分に分割したものを反転を利用して表示しています。-1){p.setTransform(0);p.setFrame(1);}else{p.setFrame(0);}/*setTransform(0):そのままの画像。TRANS_NONEsetTransform(2):左右反転した画像。TRANS_MIRROR*/プレイヤーが移動している場合、移動方向を取得し、frame(1)を移動方向に応じて反転したものをセットしています。23:21グラフィックの使用Tweet広告を非表示にするもっと読むコメントを書く2018-05-05まずはサンプルを実機で動作させてみるさて、開発の必須ツールであるj2meを起動するとこんな画面が表示されます。メニューとコンソールだけのシンプルな画面構成。コンソール部にエラー内容が出力されます。新規プロジェクト作成を押します。クラス名とクラス名を入力します。API設定では、kikyou-m.hatenablog.comの項で確認した項目を設定していきます。402KCの場合は、JTWI+CLDC1.1を選択し了解します。作成するプログラムや動作させる機種に合わせて他は設定します。(今回は特に弄らなくても実機動作します)ここの設定を間違えると、パッケージされたファイルが実機でのインストール時に弾かれたりする現象が発生したりします。作業フォルダをエクスプローラでさがすC\Users\(アカウントのユーザー名)\j2mewtk\2.5.2\apps\(プロジェクト名)に作業フォルダが作られるようです。ここのフォルダsrc内にファイルを作成し編集していきます。ここでは、公式サイトからダウンロードしたサンプルFontSample.javaを動作させます。FontSample.javaとFontSampleCanvas.javaを作業フォルダにコピーし、エディタで編集します。*1たとえば、クラス名がtestの場合このように変更。//ここも同じく}}編集が終わったら上書き保存してj2meに戻り、ビルド→エラーがなければ実行ボタンを押します。決定ボタンで(プロジェクト名)を選ぶと実行できます。実機で動作させるためのパッケージを生成します。パッケージ化に成功したら、先ほどの作業フォルダ下、\bin内にjarとjadが生成されます。このjarかjadのどちらかを携帯端末に転送します。Webページから転送する方法もありますが、今回はSDカードを使用します。携帯上でフォーマットしたSDカードの、(SDカードのドライブ):\PRIVATE\KYOCERA\DATA(402KCの場合。機種によって差異があるかも)にjarかjadをコピーします。(USBマスストレージでも可)データフォルダ→microSDデータからコピーしたファイルを探す。インストールして起動するプロジェクトの読み込みj2meを起動し、プロジェクトを開く、を押すとこのような画面が出ます。プロジェクト名を選択し、プロジェクトを開く。作業フォルダのファイルを開き、編集を再開します。エミュや実機上で無事に新規プログラムを動作させる手順をつかめたら、あとはソースの編集→ビルド(エラーが出たらデバッグ)を繰り返してゲームを作ります。22:29まずはサンプルを実機で動作させてみるTweet広告を非表示にするもっと読むコメントを書く2018-05-04コード解説(メソッド、クラス編)このブログではゲーム制作自体の解説よりHowto的な部分をまとめることを主旨としていますが、整理の意味も兼ねてまとめておきます。プレイヤーとオブジェクトの座標を入力player.inv_check();//無敵継続処理s.incProgress();//進行増加s.count_up();//カウンタ増加GameisHit以外はクラスメソッドとなっている。Framecountはダメージ受けた時の点滅描画のために使用。false;}}落ちてくるオブジェクトの座標の生成、移動、生存の情報を持っているクラス。オブジェクトを生成するとランダムで座標を決定します。field_width;}}プレイヤーに関する情報と制御を行うクラス。count_up(){framecount++;}}ステージ制御。(y+h)/2;}}当たり判定とかで四角形の座標をまとめて扱うためのクラス。中点を返したりできます。20:09コード解説(メソッド、クラス編)Tweet広告を非表示にするもっと読むコメントを書く2018-05-04サンプルコードについてwww.ymobile.jpここの「サンプルコード」からダウンロードできるzip形式ファイルの中からゲーム制作の参考にしたサンプルについて。AudioPlaySample・・・音楽再生FontSample・・・文字表示GraphicsSample・・・Canvasの使用。今回は、ウィルコム(Y!mobile)PHS、402KCで動作させることを目標としています。www.ymobile.jp最後の京セラ製PHSであり、PHS向けJavaアプリを動作させることのできる最後の端末。OSは昔から変更なかったと思うので確かTRON。ちなみに今Y!mobileから出てるシャープ製のガラケー型端末はUIそっくり中身Androidの別物です。従来のJavaアプリは動きません。PHSにて採用されているJavaはMIDPと呼ばれているもの。ガラケーではSoftBank、au(オープンアプリ、EZアプリ(J))、EMOBILEで採用されていました(DoCoMoは言語はJavaの独自のもの)なので、各社独自の追加機能はあれどY!mobile(ウィルコム)はSoftBankやauのアプリの作り方そのままでいけるようです。PHSと携帯電話の違いについてはこの記事では割愛させていただきます。Javaアプリに関していえば性能や独自機能以外違いはないと思います。細かな制限があるようです。Connectionにも対応しております。>また、一部の機種は位置情報、カメラのAPI、マスコットカプセルV3.0にも対応しております。>対応する画面解像度はQVGAで、描画可能領域(Canvas)は240x276です。この辺はほぼ全機種共通と考えて良さそうです。このページにあるJava機種情報と対応API一覧表は要チェック。機種情報:https://www.ymobile.jp/service/contents_service/common/pdf/javatm_lineup.pdf対応API一覧表:https://www.ymobile.jp/service/contents_service/common/pdf/javatm_api.pdfWX12Kまでしか書かれてないやん...まぁ、ほぼ上位互換的に性能が上がってるはずなのでWX12Kで動けば動くでしょう(機種情報の方のWX12Kの情報も参照しておきます。www.ymobile.jphttps://www.ymobile.jp/service/contents_service/common/pdf/function.pdfほとんど同じですがサウンド関係についてはこちらに詳しく書かれているのでチェックしておきます。*1:アプリゲット等。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。