初心者向けに1から教えていくよー
・講座内容
Android Studioでゲームアプリの開発
・所要時間
1時間
・必要なもの
パソコン
インターネット
1.JDKのインストール
まず最初にJDKのインストール
Javaでプログラミングするのに必要
ここからダウンロード
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
Java SE Development Kit 7u79の下のAccept License Agreementをクリックして自分のOSを選んでダウンロード
OSが32bitの場合はx86、64bitの場合はx64
『次」を連打でインストール
へー面白そう
Androidstudio入れるだけ入れて止まってたから見たいな
>>9
今から一緒に作ろうぜ!
とりあえず簡単なゲームを作れるぐらいまでは教えようと思う
javaは理解してる前提?
>>10
今回はコピペでも作れるゲーム教えるけど自分で作ろうと思ったらjavaは理解してないと
2.Android Studioのインストール
Androidアプリの開発に必要
ここからダウンロード
http://developer.android.com/intl/ja/sdk/index.html
同意にチェックを入れてダウンロード
「I Agree」と「Next」連打でインストール
Android Studioが起動したら準備完了
こんな画面が出てきたら成功
Android Studioを起動してStart a new Android Studio projectをクリック
Application name:
プロジェクトの名前
とりあえず「New Game」と入力
Company Domain:
アプリのパッケージネーム(固有IDみたいなの)に使われる
今回は「vip.com」と入力
「Next」をクリック
あんまり需要ない?
少しはある
Phone and TabletのMinimum SDKの選択
アプリが対応しているAndroidのバージョンを選ぶ
数が小さいほど多くのAndroidに対応している
Help me chooseをクリックすると現在使われているAndroidの割合が表示される
今回は「API 8:Android 2.2(Froyo)」を選択
「Next」をクリック
Empty Activityを選択して「Next」
そのまま「Finish」でプロジェクトの完成
2.2なの?
もう4でもいいんじゃね?
>>26
一応これ見たら2.2ならだいたい対応できるから
今回はそんな新しいAPIの機能使わないから2.2にしてる
androidはよく知らんが4って2と完全に互換性有るの?
>>29
上位互換だから2で動くやつは4で動く
Minimum SDKを4とか5にすると2では動かない
次はパソコンでAndroidを動かすエミュレーターの設定
まずAVD Managerをクリック
Create Virtual Deviceをクリック
デフォルトでNexus 5が選択されてるからそのままNext
さっきAPI 8:Android 2.2(Froyo)を選んだからFroyo 8 armeabi Android2.2の
一番上のやつをクリックしてダウンロード
ダウンロードできたらNextを押してそのままFinish
とりあえずソフトインストールした
>>33
この通りにやればとりあえずゲームができるから頑張って
できたエミュレーターをクリックしてAndroidが立ち上がったら成功
とりあえずShift+F10を押してアプリを実行する
Launch emulatorを選んでさっき作ったエミュレーターを選択してOK
エミュレーターが起動してHello worldが表示されれば成功
あとは適当にコードを書いて
アプリを実行すれば
出来上がり!
お疲れ様でした!
これでは開発環境構築講座じゃないか
しね
うそですごめんなさい
コードが書けない人は
これをコピペしてください
Download:http://blog.livedoor.jp/itsoku/sample/693195.txt
本当は頑張ってアプリ作ったから宣伝したかっただけなんです
もし良かったらプレイしてくださいお願いします
https://play.google.com/store/apps/details?id=com.autumn_room.hardest2
>>1は本業の人?
>>80
ほとんど趣味の個人のアプリ開発者かな
まだ食えるほど収入はないけどいずれこれだけでやっていけたらとは思う
ホントの素人でも100円くらい取れるレベルの作れる?
>>50
わかんないけど広告つければ多少はお金が入ってくる
いかに宣伝するかが大事だからSNSとかブログとかで宣伝してダウンロードされれば
100円ぐらいは余裕じゃない?
googleplayとかに登録するときに金かかるんだっけ
>>53
最初に登録料が2000円ぐらいかかる
Appleは毎年10000円ぐらいかかるからもっと大変
ちなみにAppleは登録しないと実機テストすらできない
>>56
やっぱり胴元が儲かるようにできてるのか当たり前だが
こういうのさっぱりだから出来る奴は素直にゴイスーだと思ってる
>>44
ありがとう!
さっきのコードコピペして動いたら自分で改変して遊んでもらえたらと思います
たとえば47行目からのIROKAZUとかTATEとかの数字をいじるとルールを変えたりできます
そうやって自分でいじってみてプログラミングの楽しさを感じてもらえたら嬉しいです
もうちょっとコードの書き方も教えようと思ったけど
あまり需要がなさそうなんでこれで終わります
ありがとうございました
需要はあるだろ
なんかあまり人いないからどうなのかと思って
需要あるならもう少し続けようか
アプリ開発の質問とかも答えるよ
続けろ
>>51
あざっす
じゃあ簡単なゲームの作り方でも教えようか
ROMってる兄弟たちが100人くらいいるから続けて!!
>>55
ありがとう!
じゃあ準備するからちょっと時間かかるかも
アプリやりながら待ってるよー
とりあえず>>34まで出来ていることが前提
まずはさっきのコードにこれを貼り付けてアプリの実行
白い画面が出たら成功
Download:http://blog.livedoor.jp/itsoku/sample/693263.txt
コードの左の灰色の部分を左クリックしてShow line numberにチェックを入れると
行数が表示されてわかりやすい
ポイントはまず56行目までは無視してOK
58行目で解像度の設定
Androidはスマホごとに解像度が違うからそれを合わせる必要がある
getWidthでスマホの横の解像度を取得して
それを自分のアプリの解像度で割って(ここでは540px)dwに代入
これでアプリの解像度とスマホの解像度の比率が出るから今後はこの数字をかけていく
例えば1080pxの解像度だと1080/540=2となるからアプリの座標x2をすれば表示する位置を揃えることができる
ふむふむ
次に62行目の画面の更新
73行目の100,100は100ミリ秒(0.1秒)で72行目のdraw()(画面の表示)を実行するということ
ここではつまり10fpsで画面が更新される
つまり簡単に言うと
・これから表示を合わせるために座標の数字にはdwをかけるよ!
・10fpsで更新するよ!fpsを変えたかったら73行目を変えてね!
ってこと
とりあえずあげ
そしていよいよ81行目からゲームの表示
まずはこれを81行目にコピペして実行
//画像の書式を決める
Paint p_maru=new Paint();
p_maru.setColor(Color.RED);
//まるの表示
canvas.drawCircle(270* dw, 480 * dw, 30 * dw,p_maru);
こんなまるが表示されれば成功
簡単に説明すると
まずp_maruっている名前のPaint(図形の書式)を作成
p_maru.setColorで画像の色を決める
ここの中のColor.REDをColor.BULEとかBLACKとかにしたら色が変わる
次のcanvas.drawCircleでまるの表示
中の数字は,で区切られ順に(x座標の位置,y座標の位置,まるの大きさ,書式(さっき作ったやつ))
でまるの位置や大きさを決める
次にまるを動かすよ!
まず33行目に
private int x=30;
private int y=400;
を追加
そして87行目(canvas.drawCircleの行)を消して
x+=10;
y-=20;
canvas.drawCircle(x* dw, y * dw, 30 * dw,p_maru);
を貼り付け
まるが斜めに動いていけば成功!
解説としてはまず33行目から変数の宣言
つまりxとyっていう数字の代わりを作ってそこに30と400を入れるよ
そしてx+=10とy-=20で毎回+10と-20をそれぞれにするよってこと
10fpsだから1秒にxは100px、yは-200px動く
次に条件式の追加
まずy-=20;の下に
//条件式
if(x>540){
x=0;
}
if(y<0){
y=600;
}
を追加
まるが画面を出たらワープしたら成功
ifは条件式で()の中の式が成り立つときに{}のなかが実行される
ここではもしxが540を超えたらxを0にする
もしyが0より減ったら600にする
次は画面のタッチの処理
//ここまで
holder.unlockCanvasAndPost(canvas);
}
の下に
@Override
//タッチイベントの処理
public boolean onTouchEvent(MotionEvent e) {
if(e.getPointerCount()>1)return true;
//タッチの座標
float ex=e.getX();
float ey=e.getY();
//アクションのスイッチ
switch(e.getAction()){
case MotionEvent.ACTION_DOWN:
x=(int)(ex/dw);
y=(int)(ey/dw);
return true;
}
return false;
}
を追加
タッチの位置にまるが移動すれば成功
Androidってどんな感じなんだ
タッチされたところの座標とかはどう受けとるんだ
まずこのeにタッチの情報が入っている
e.getX()とe.getY()でタッチの位置を取得
e.getAction()デタッチの種類を取得
MotionEvent.ACTION_DOWN(画面にタッチした時)で
xとyにタッチした座標を代入(スマホの座標とアプリの座標を合わせるためにdwで割る)
スマホにより画面の大きさが違うのはどうなってるの?
縦と横の幅も取得できるのか?
>>79
>>61でスマホの解像度を取得してアプリの解像度で割ることでスマホとアプリの解像度の
比率を出してる
その比率を座標にかけることで解像度を合わせてる
今回は横幅だけで合わせてるから縦の大きさはアプリによって変わってくる
でもスマホの大きさは今は大体16:9だから横が540pxだったら大体縦は960pxぐらい
だから大体縦は800px以内に収めるとかもっと小さくしてバナー広告を下に入れたりして調整するといいと思う
最後にゲームっぽくするための仕上げ
35行目に
private int score;
を追加
private int x=30;
private int y=400;
の部分を
x+=(int)(-30+60*Math.random());
y+=(int)(-30+60*Math.random());
に変更
x=(int)(ex/dw);
y=(int)(ey/dw);
の部分を
if(x>(int)(ex/dw)-10&&x<(int)(ex/dw)+10
&&y>(int)(ey/dw)-10&&y<(int)(ey/dw)+10) {
score++;
System.out.println(score);
に変更
まるがランダムに動いてまるをタッチしたらコードの下の部分に数字が表示されれば成功
結構早く動くから意外と難しいと思う
解説
Math.random()は0から1までの間のランダムな数字(小数点)を取得
それに60をかけると0~59のランダムな数字になる
(int)は少数を捨てて整数にするため
MotionEvent.ACTION_DOWN:の下は当たり判定
タッチした座標がまるの中心の+-10px以内だとscoreを++(+1のこと)する
&&は数学のかつ(∧)と一緒
System.out.println(score); でスコアをコードの下に表示
これでゲームアプリ「マルゲッチュ!」の完成!(適当)
とりあえずコードをおいておきます
Download:http://blog.livedoor.jp/itsoku/sample/693417.txt
時間かかった割に適当解説&クソゲーでほとんど意味なかったと思うけど
これで終了します
あと興味がある人はtimer変数とか作って時間制限を作ったりandroid canvas text
とかでググってスコアを表示してみたりしてまともなゲームにしてみてください
乙
スレ保存して今度やってみる
>>88
ありがとう!
そう言ってもらえるだけで今回やった甲斐があるわ
コピペでもコードが動いてゲームができるってのは結構楽しいと思う
そうやってもっとアプリ作る人が増えてけばいいと思う
もっと早く見れば良かった…
俺もこれ参考にしながら明日やってみよう
元スレ: http://viper.2ch.sc/test/read.cgi/news4vip/1452256907/