メインカテゴリーを選択しなおす
【Android Studio】スマホをタップしてコダックを召喚
非日常生活に入る前に 下書きをしていた記事があったことを思い出しました ARにハマっていて勉強中だったのに…すっかりリセットされてしまいました また日常に戻ったら1からやり直しかな(悲) その時のために まとめたものをアップしておきます 以前アップしたUnityのスマホをタップしてコダックを召喚 everydayisagoodday.hatenadiary.com これのAndroid Studio版ですAndroid StudioでもARアプリができるはずなのでいろいろ調べながら挑戦してみました が うまくいかず保留にしようかと思い始めた頃この記事に遭遇 qiita.com 解説通りにやって…
昨日からの続きです 今日は各ボタンをタップした時の処理を編集します // カラーチェンジメソッド fun ChangeColor(colorSelected: String) { when (colorSelected) { "black" -> color = Color.BLACK "red" -> color = Color.RED "blue" -> color = Color.BLUE } paint!!.color = color } // clearメソッド(初期化とキャンバスクリア) fun Clear() { pathList.clear() colorList.clear(…
今日は手書きメモアプリの描画するクラスCustomSurfaceViewを作成します CustomSurfaceView.ktを編集していきます import android.content.Context import android.graphics.Bitmap import android.graphics.Bitmap.CompressFormat import android.graphics.Bitmap.createBitmap import android.graphics.Canvas import android.graphics.Color import android…
今日は手書きメモアプリのMainActivity.ktの編集です import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.SurfaceView import android.widget.Button import android.widget.ImageView class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super…
今年は簡単なゲームをたくさん作りました 最近はUnityが面白くてUnityの方に比重が傾いていますがAndroid Studioも忘れない程度にはさわっています 久しぶりに簡単なメモアプリを作ってみたのでプログラム(kotlin)を製作段階順にアップしていきます まずは下準備としてres/drawableにcircle_button.xmlを作ります circle_button.xmlを編集 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/andro…
Android Studio kotlinのメソッドパーツ化 今回はデータ保存です ゲームのハイスコアのようにアプリを終了しも保持されるsharedPreferencesを使います sharedPreferencesの詳細はAndroidDevelopersをどうぞ ここではコピペして使えるように余分な説明は省きます val sharedPreferences = getSharedPreferences("GAME_DATA", Context.MODE_PRIVATE) var highScore:Int = sharedPreferences.getInt("HiGH_SCORE",0)…
Android Studio kotlinのメソッドパーツ化 今回は画面遷移です ゲームの結果画面を表示するときによく使いますね val intent = Intent(this,ResultActivity::class.java) startActivity(intent) finish() /*画面を削除するとき*/ 使用例はこちら(xmlファイルは省略します) import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import andr…
Android Studio kotlinのメソッドパーツ化 今回はonTouchEventです onTouchEventは画面を押す 離す 移動するなどの操作を行ったときに呼ばれるメソッドです 前にアップしたonDrawと組み合わせると簡単なお絵描きアプリができます override fun onTouchEvent(event: MotionEvent?): Boolean { when(event.action){ MotionEvent.ACTION_DOWN -> { /*押した時の処理*/ } MotionEvent.ACTION_MOVE -> { /*移動した時の処理*/ } …
AndroidStudioを再インストールしました 以前のバージョンで作っていたプロジェクトをアップデートし エミュレーターで実行しようとすると 『Install Haxm』のメッセージボックスが(汗) 必要なものはすべてインストールしたはずなのに… そういえば最初にインストールした時もずいぶん悩んだような あんなに苦労したのにすっかり忘れてしまうんですね 今回は忘れないうちにメモっときます 1.設定/アプリを選択 2.オプション機能をクリック 3.下の方へスクロールしてWindowsのその他の機能をクリック 4.Hyper-V Hyper-V プラットフォーム Hyper-V 管理ツール W…
PCをリセットしたため新しいAndroidStudioをインストールしました 今回はキリンなんですね これまでは英語表記のまま使っていたのですが 今回は日本語化してみることにしました やり方はとても簡単 1.まずHelp/Aboutをクリックしてビル番号を調べます 2.プラグインのホームページへ plugins.jetbrains.com 3.Versionsタブを選択してビルド番号のバージョンをダウンロード 4.AndroidStudioのPluginsを選択 ⚙をクリックしInstall Plugin from Disk…を選択 5.ダウンロードしたファイルを選択してOKをクリック 6.日…
Android Studio kotlinのメソッドパーツ化 今回はカウントダウンタイマーです kotlinのライブラリにはカウントダウンタイマーが準備されています なのでタイマーの秒数やインターバル秒数 経過処理 終了処理を設定するだけですカウントダウンタイマーのオブジェクト val timer = (object : CountDownTimer(3000, 1000) { //1秒ごとに3秒間 override fun onTick(p0: Long) { //p0は残り時間 //途中経過 } override fun onFinish() { //終了設定 } }) タイマーをスタート…
Android Studio kotlinのメソッドパーツ化 今回はタイマータスクです 前にアップしたRunnableと同様 定期的に指定の処理をするタイマーです 動きが同じならどう使い分けるのか? ごめんなさい 不勉強でよく分かりません 何となくですが クラスの継承に関係があるのかと… 使い分けは説明できませんが 使い方を val timer = Timer() val handler = Handler() timer.schedule(object : TimerTask() { override fun run() { handler.post { /*処理*/ } } }, 3000…
Android Studio kotlinのメソッドパーツ化 今回はRunnableです Runnableは定期的に指定の処理をするタイマーです var runnable = Runnable { } val handler = Handler() runnable = Runnable { Handler().postDelayed( { /*処理*/ }, 3000 ) //3000ミリ秒(3秒)後にタイマー開始 handler.postDelayed(runnable,1000) //1000ミリ秒(1秒)ごとに処理をする } handler.post(runnable) タイマー処理を…
Android Studio kotlinのメソッドパーツ化 今回はHandlerです Handlerはtimeミリ秒後に指定の処理をするものです Handler().postDelayed( { /*処理*/ }, time ) 使用例はこちら(xmlファイルは省略します) import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.os.Handler import android.view.View import android.widget.Button import a…
Android Studio kotlinのメソッドパーツ化 今回はアラートダイアログです アラートダイアログはいろんな形状にカスタマイズできますが 私が一番よく使うシンプルなものにします AlertDialog.Builder(context) .setTitle("タイトル") .setMessage("メッセージ") .setPositiveButton("Yes", { dialog, which -> //ポジティブボタンを押した時の処理 }) .setNegativeButton("No", { dialog, which -> //ネガティブボタンを押した時の処理 }) .sho…
Android Studio kotlinのメソッドパーツ化 今回はメッセージを表示するトーストです Toast.makeText( this, //context "massage", //表示するメッセージ Toast.LENGTH_SHORT // or LENGTH_LONG ).show() 使用例はこちら(xmlファイルは省略します) import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.T…
Android Studio kotlinのメソッドパーツ化 今回は有効・無効と表示・非表示ですボタン有効 btn.isEnabled = true ボタン無効 btn.isEnabled = false テキスト表示 text.setVisibility(View.VISIBLE) テキスト非表示 text.setVisibility(View.INVISIBLE) テキスト削除 text.setVisibility(View.GONE) 使用例はこちら(xmlファイルは省略します) import androidx.appcompat.app.AppCompatActivity import…
今日は『効果音』です import android.content.Intent import android.graphics.* import android.media.AudioAttributes import android.media.SoundPool import android.os.Bundle import android.os.CountDownTimer import android.os.Handler import android.view.MotionEvent import android.view.SurfaceHolder import android.…
今日は『結果の表示ともう一度ボタンおよび終了ボタン』です まず結果画面を表示するクラスGameOver.ktを作成します GameOver.ktを編集します import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.TextView class GameOver : AppCompatActivity() { override fun onCrea…
今日は『結果画面のレイアウト(XML)作成』です res/layoutにactivity_game_over.xmlを作成します activity_game_over.xmlを編集します <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns…
今日は『ゲームスタートと終了』です import android.graphics.* import android.os.Bundle import android.os.CountDownTimer import android.os.Handler import android.view.MotionEvent import android.view.SurfaceHolder import android.view.SurfaceView import android.widget.ImageButton import android.widget.TextView import an…
今日は『もぐらの画像を変える(叩いたとき、空振りしたとき)』です import android.graphics.* import android.os.Bundle import android.os.Handler import android.view.MotionEvent import android.view.SurfaceHolder import android.view.SurfaceView import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import java.u…
今日は『もぐらをタップできたらスコアアップ』です import android.graphics.* import android.os.Bundle import android.os.Handler import android.view.MotionEvent import android.view.SurfaceHolder import android.view.SurfaceView import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import java.util.* im…
今日は『もぐらをランダムに出没させる』です import android.graphics.* import android.os.Bundle import android.os.Handler import android.view.SurfaceHolder import android.view.SurfaceView import androidx.appcompat.app.AppCompatActivity import java.util.* import java.util.concurrent.ThreadLocalRandom //モグラフラグ 0:モグラ穴 1:モグラ出…
夏休みも終盤 情報系の学校だとプログラミングの課題があったりするのでしょうか? 標準的な部分はChatGPTにやって頂いたらいいと思うんですよ 大事なのはそれを自分流にアレンジする技術 それよりもっと大事なのは個性的な発想だと私は思うのですが… 今日からもぐらたたきのプログラム(kotlin)を製作段階順にアップしていきます 1.ゲーム画面のレイアウト(XML)作成 2.もぐらをランダムに出没させる 3.もぐらをタップできたらスコアアップ 4.もぐらの画像を変える(叩いたとき、空振りしたとき) 5.スタートボタンを押したらゲームスタート タイマーをカウントダウンしタイマーが0になったら終了 6…
Android Studio kotlinのメソッドパーツ化 今回は乱数の生成です 乱数を生成する方法はいろいろあるし その方法ひとつひとつに数値の型(Int , Float , Long , Double…)の場合の説明があります マニュアルなんだからすべての場合が記載されているのは当然なんですけど 選択肢が多いと余計に迷ってしまいます 私がいつも使っている方法は3つ これに ×10とか ÷10を必要に応じて付加すれば十分対応可能ですⅠ 10~20のように範囲を指定する乱数生成 var num = (10..20).random() Ⅱ 0以上設定数値未満の乱数生成 var num = Ra…
Android Studio kotlinのメソッドパーツ化 今回は効果音を鳴らすときに使うサウンドプールですサウンドプール作成 val audioAttributes = AudioAttributes.Builder() //USAGE_MEDIA , USAGE_GAME .setUsage(AudioAttributes.USAGE_GAME) //CONTENT_TYPE_MUSIC ,CONTENT_TYPE_SPEECH, etc. .setContentType(AudioAttributes.CONTENT_TYPE_SPEECH) .build() val soundPoo…
以前 Android Studioでゲームのひな形となるプログラムを作りました everydayisagoodday.hatenadiary.com 今度はプログラムの中でよく使うメソッドの必要なところだけを変更して使える部品のようなものを作っていこうと思っています 言葉にすると分かりにくいですね 今回は例として『スクリーンサイズを取得する』パーツを作って実行してみます 2パターンあります Ⅰ val wm = windowManager val display: Display = wm.defaultDisplay val size = Point() display.getSize(si…
以前 『背景が動く中で飛ぶ鳥』を作りました everydayisagoodday.hatenadiary.com これは横方向に背景が動いてそこに鳥のアニメーションを表示するものでした 今回はこれを応用して 縦方向に背景を動かしそこにタッチ入力によって動くUFOを表示したいと思います 1.res/drawableに背景とUFOの画像を準備 2.activity_main.xmlの編集 画面全体をSurfaceViewにします <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLa…
Android Studioの前回 ゲームのひな形として背景が動いているだけのアプリを作りました せっかくなので今回はそこに飛んでいる鳥を追加したいと思います 1.res/drawableに鳥の画像を準備 今回は『ペーパーミュージアム』さんのフリーイラスト集からお借りしました paperm.jp 2.MainActivity.ktの編集 前回のプログラムに//*****の部分を追加しました import android.content.Context import android.content.res.Resources import android.graphics.Bitmap impo…
Android Studioで応用範囲の広いゲームのひな形みたいなものを作りたくてただ背景が動くだけのものを作ってみました まずres/drawableに画像を用意 いつものように『いらすとや』さんからお借りしてます www.irasutoya.com 次にactivity_main.xmlの編集 画面全体をSurfaceViewにします <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.c…
【Android Studio】Flamingoで新しいプロジェクトがエラーになるとき
昨日 Android Studioで新しいプロジェクトを作ったら何故かエラーが… こんな感じ↓ 少し前に作った時はそんなことなかったのにどうしたことかと… 苦手な英語をGoogle翻訳を使いながら読みましたよ まぁ読んでも半分も意味は分かりませんが 何となくバージョンが合ってないという雰囲気(?) Build中のGradleのエラーなのでそのあたりの設定ができるところをあちこちポチっとしながら探すと ありました Tools→Markdown Converter→Configure Pandoc…を選択 新しいwindowの Build,Execution,Deployment→Build To…
【Android Studio】画面の表示方向を固定する方法
スマホのピアノアプリを作りました ↓こんなの このアプリは横画面で表示したいのですが何もしないと縦画面で表示されてしまいます なので横画面で表示を固定する方法 manifests/AndroidManifest.xmlを開いて<activity>に android:screenOrientation="landscape" を追加するだけです これで横画面固定になります ちなみに縦画面固定にしたい場合は"landscape"を"portrait"にします たった一行でアプリが使いやすくなりました 困った時がまた一つ賢くなるチャンスですね でも最近すぐに忘れてしまうのが厄介な問題です(汗) ラン…
【Android Studio】アイコンをカスタマイズする方法
Android Studioで作ったゲームをスマホにインストールすると アイコンはデフォルト画像で タイトルはプロジェクト名で表示されます こんな感じ これを自分好みにカスタマイズする方法です まず res/drawable にアイコンにしたい画像をおいて manifests/AndroidManifest.xml を開きます 赤線部分をアイコンの画像ファイル 黄線部分を表示したいタイトル名に変更します アイコン画像を初めに用意した @drawable/hasibirokohに タイトルをカタカナで マイゲーム に変更してみました 再インストールすると 好みのアイコンに変更できました ランキン…
【Android Studio】エミュレーターを設定する方法
前回新しいプロジェクトを作る方法を残しましたが 今回はテスト用のエミュレーターの設定方法です Ⅰバーチャルの場合 1.NoDeviceの▼をクリックしてDeviceManagerを選択か または 右端のタブのDeviceManagerを選択 2.Create deviceを選択 3.デバイスを選択する画面が表示されるので その中から適当なものを選択しNext 4.システムイメージを選択しNext ↓がついているものはインストールされていないので↓をクリック AcceptをチェックしてNextを選択するとインストールが開始されます 改めてシステムイメージを選択しNext 5.デバイスに名前を付け…
【Android Studio】新しいプロジェクトを作る方法
先日Android Studioの新しいバージョン(Android Studio Flamingo) をインストールしたのですが 表示が…もちろん機能もいろいろと変わったのでしょうが 使いこなせていない初心者にはあまり関係なく それより見た目が変わる事の方が戸惑ってしまいます 新しいプロジェクトを作成するのに少し迷ったので忘れないうちにメモ!メモ!! 1.New Projectを選択 2.Empty Views Activityを選択してNext 私がいつも作っている2Dのゲームはこれです 3.プロジェクト名を入力してFinish Finishすると自動でMainActivity.ktとact…
今日は『ブロックの表示』です まずはMainActivityから import android.content.Context import android.os.Bundle import android.util.DisplayMetrics import android.view.WindowManager import androidx.appcompat.app.AppCompatActivity var SCREEN_HEIGHT = 0 //画面の高さ var SCREEN_WIDTH = 0 //画面の幅 val tate: Int = 8 //ブロックの縦の数 val yok…
【Android Studio】Tach the number 2回目
今日は『数字をシャッフルして表示』です import android.os.Bundle import android.widget.Button import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) gameStar…
【Android Studio】Tach the number 3回目
今日は『カウントダウンして数字をタップできるようにする』です import android.graphics.Color import android.os.Bundle import android.os.CountDownTimer import android.widget.Button import android.widget.TextView import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { override fun onCreate(savedIns…
【Android Studio】Tach the number 4回目
今日は『タイマーを表示する』です import android.graphics.Color import android.os.Bundle import android.os.CountDownTimer import android.os.Handler import android.widget.Button import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import java.text.SimpleDateFormat import java.util.* class Ma…
【Android Studio】Tach the number 5回目
今日は『リトライor終了(ダイアログアラート)』です import android.graphics.Color import android.os.Bundle import android.os.CountDownTimer import android.os.Handler import android.widget.Button import android.widget.TextView import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity import ja…
【Android Studio】Tach the number 6回目
今日は最後『効果音をつける』です まず下準備としてProjectタブのresにrawフォルダーを作成します rawに音源をドラッグ&ドロップしておきます 今回は4つの音源を準備しました 音源はいつも効果音ラボさんの音源を使わせていただいてます soundeffect-lab.info import android.graphics.Color import android.media.AudioAttributes import android.media.SoundPool import android.os.Bundle import android.os.CountDownTimer i…
【Android Studio】Number Puzzle 1回目
前回のTach The Numberを応用した1から24まで数字を並べるゲーム今回はこれを製作段階順にアップしていきます レイアウト(XML)作成 シャッフルして不可能配列でなければ表示 数字をタップして移動 クリアチェック シャッフルボタンと終了ボタン 効果音をつける 今日は『レイアウト(XML)の作成』です <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.andro…
【Android Studio】Number Puzzle 2回目
今日は『シャッフルして不可能配列でなければ表示』ですここで不可能配列とはですがランダムに数字を入れ替えると結構な確率で解くことのできないパズルになってしまいます解けないパズルはゲームとして意味がないので事前に解けるか解けないかをチェックして解けるパズルだけを表示するようにします manabitimes.jpここに詳しく解説されている方がいました理屈はよく分かりませんが判定方法のロジックだけ分かればOK(笑) import android.graphics.Color import androidx.appcompat.app.AppCompatActivity import android.o…
【Android Studio】Number Puzzle 3回目
今日は『数字をタップして移動』です ここで下準備 res/values/colore.xmlにpuzzle5,puzzle5upという名前で色を設定しておきます import android.graphics.Color import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.View import android.widget.TextView import android.widget.Toast private var textData =ArrayList<…
【Android Studio】Number Puzzle 4回目
今日は『クリアチェック』です import android.graphics.Color import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.View import android.view.animation.AlphaAnimation import android.view.animation.Animation import android.widget.TextView import android.widget.Toast private var t…
【Android Studio】Number Puzzle 5回目
今日は『シャッフルボタンと終了ボタン』です import android.graphics.Color import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.View import android.view.animation.AlphaAnimation import android.view.animation.Animation import android.widget.Button import android.widget.TextView impor…
【Android Studio】Number Puzzle 6回目
今日は最後『効果音をつける』です まず下準備としてProjectタブのresにrawフォルダーを作成します rawに音源をドラッグ&ドロップしておきます 今回は3つの音源を準備しました 音源は効果音ラボさんです ありがとうございます soundeffect-lab.info import android.graphics.Color import android.media.AudioAttributes import android.media.SoundPool import androidx.appcompat.app.AppCompatActivity import android.o…
初心者にとって四角いボタンを丸くするのも一苦労ですよね 元々私はプログラムは動けばいい派であまり細部にまではこだわらないタイプです 実際作ったゲームはWarningだらけ(笑) 作る過程も出来上がったものも自分が楽しむためなので問題なし! がしかし すこ~し動くようになるとちょっとだけ見た目を良くしたいという欲がでてくるんですね そこでやってみたのがボタンを丸くすること 一度できると後はコピペでOKなのですがその一度が大変なんです(汗) マニュアル読みました!試行錯誤しました!! そのやり方と試行錯誤の記憶をここに残しておこうと思います 1.res/drawableにcircle_button…