X



プログラミング未経験→月4万

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2018/04/19(木) 17:52:04.48ID:PLYj983S
今まで一度もプログラミングをやったことのない俺だが

月に4万円稼げるようになるまで頑張ってみようと思う

このスレを見て俺もやってみようと思った人がいたら一緒にはじめてみないか?
0659蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/07(火) 12:42:43.99ID:B3wdX0RI
SDカードが使えないなら、インターネット経由で入れるしかないかな。
0660蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/07(火) 16:08:23.97ID:B3wdX0RI
USB type C接続でパソコンとつないだらファイル読み書きできるかな?
0661アンスタ3日目 ◆mqSs/N.hZs
垢版 |
2020/07/07(火) 19:23:39.29ID:uexhphk9
>>659
ありがとうございます。アンスタから無線LANで転送した事無いのでわかりません
>>660
古いAndroid5.01のスマホなのでmicro USB Type-Bのデータ転送ケーブルを使用して接続します。
0662アンスタ3日目 ◆mqSs/N.hZs
垢版 |
2020/07/07(火) 21:17:45.04ID:ySP0lcXW
アンスタ3日目【課題】タートルグラフィックス

[Android & Kotlin] 円や矩形を描画するCanvas
https://akira-watson.com/android/kotlin/canvas.html
を参考に
3.1 kotlinでCanvas にランダムライン描画実行出来ました。
import android.content.Context
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
import android.util.DisplayMetrics
import android.view.View
import java.util.Random
class MainActivity : AppCompatActivity() {
 override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  setContentView(R.layout.activity_main)
  val myView = MyView(this) //レイアウトXMLファイルなし
  setContentView(myView)
 }
 // Viewを継承したクラス
 internal inner class MyView(context: Context) : View(context) {
  private var paint: Paint = Paint()
  private val dp: Float
  init { // スクリーンサイズからdipのようなものを作る
   val metrics = DisplayMetrics()
   windowManager.defaultDisplay.getMetrics(metrics)
   dp = resources.displayMetrics.density
  }
0663アンスタ3日目 ◆mqSs/N.hZs
垢版 |
2020/07/07(火) 21:20:52.29ID:ySP0lcXW
アンスタ3日目【課題】タートルグラフィックス
3.1kotlinでCanvas にランダムライン描画続き

override fun onDraw(canvas: Canvas){// Canvas Background Color
   canvas.drawColor(Color.argb(255, 0, 100, 125))
   // Canvas center point
   var xc = (width / 2).toFloat() ; var yc = (height / 2).toFloat()
   paint.color = Color.argb(255, 0, 255, 100) // 色
   paint.strokeWidth = 10f // 太さ
   val random = Random()
   fun Rand(from: Int, to: Int) : Int {
    return random.nextInt(to - from) + from
   }
   for(i in 1..60){
    val rndx = xc + Rand(-30,30)*dp as Float
    val rndy = yc + Rand(-30,30)*dp as Float
    canvas.drawLine(xc , yc, rndx, rndy, paint)
    xc=rndx; yc=rndy
   }
  }
 }
}
以上
https://i.imgur.com/c9KoFhi.png
0664アンスタ4日目 ◆mqSs/N.hZs
垢版 |
2020/07/08(水) 07:07:28.22ID:yrsbI81q
>>658
アンスタ4日目【課題】タートルグラフィックス
3.2.次にKotlinのclass定義
が良くわからない、Kotlinの外部クラスでつくるのかインナークラスでつくるのか・・
タートルクラスのメンバーやらメソッドやらも
どのように定義すべきか不明ちょっと詰まりそう・・

class Turtle(){
var angle: Int = 0
var x: Int = 0
var y: Int = 0

fun walk(){ //?}
fun turn(){ //?}
}
0668アンスタ4日目 ◆mqSs/N.hZs
垢版 |
2020/07/08(水) 11:03:15.62ID:a07Dea5F
>>666
そのページは複雑過ぎてちんぷんかんぷんです。

data class Point ( var x = 0.0, var y = 0.0 )

class Turtle (var angle =0, var now = Point() ) {
  fun turn(a){ angle = a }
  fun walk(b, c){ now = (b, c) }
}
で良いのかな?何か違うような?よう分からんわ
0669蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/08(水) 16:45:59.53ID:fZdxMqQA
タートルグラフィックのタートルの意味がわかってない?

タートル(亀)は位置と向きの情報を持っていて、前進すると、その向きに進む。
向きを変えるのも相対的な角度で指定する。
三角関数を知らないと難しいかもしれん。
0670蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/08(水) 17:23:26.68ID:fZdxMqQA
例えば、亀が原点(0, 0)に居て、x軸から+30度の方向に5だけ進むと、亀の位置は(5*cos(π/3), 5*sin(π/3))となる。ここまでOK?
0671蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/08(水) 17:24:58.07ID:fZdxMqQA
訂正。例えば、亀が原点(0, 0)に居て、x軸から+30度の方向に5だけ進むと、亀の位置は(5*cos(π/6), 5*sin(π/6))となる。ここまでOK?
0672アンスタ4日目 ◆mqSs/N.hZs
垢版 |
2020/07/08(水) 18:10:48.71ID:1+QAm8uv
ありがとうございます。三角関数懐かしいです。
難しいですね。高校数学でしたか
タートルグラフィックスプログラムの肝は
デカルト直行座標系と極座標変換なのですね。
ちょっと復習してます。
なので取り敢えず直行座標と極座標が混ざってるから
  fun walk(b, c){ now = (b, c) }

これ間違いだね、必要なのは距離だけだね

  fun walk(b:Double){
  now.x = (b*math.cos(π/6)
  now.y = (b*math.sin(π/6))
}
こうかな?まだまだエラーだらけでコンパイル通らないけど、
あと角度を反映させないとなぁ・・
0674蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/08(水) 18:43:15.58ID:fZdxMqQA
カメが(x0, y0)に居て、向きがtで、r進むとすれば、
(x0 + r*cos(t), y0 + r*sin(t))
だろうよ。
0676アンスタ4日目 ◆mqSs/N.hZs
垢版 |
2020/07/08(水) 19:03:19.99ID:ZRZW4sA4
>>674
ありがとうございます。
どうにかエラーなく動きはしたものの
距離も角度もおかしい
https://i.imgur.com/ZDEsXVD.png

override fun onDraw(canvas: Canvas){// Canvas Background Color
 canvas.drawColor(Color.argb(255, 0, 128, 128))
 // Canvas center point
 val xc = (width / 2).toDouble() ; val yc = (height / 2).toDouble()
 paint.color = Color.argb(255, 0, 250, 0) // 色
 paint.strokeWidth = 10f // 太さ

 data class Point(var x: Double = 0.0, var y: Double =0.0 )

 class Turtle(var angle: Int =0, var now: Point = Point()){
  fun turn(a:Int){angle=a}
  fun walk(b:Double){
    now.x = b * Math.cos( Math.PI/6 ) //30°
    now.y = b * Math.sin( Math.PI/6 )
   canvas.drawLine(xc.toFloat(), yc.toFloat(),now.x.toFloat(),now.y.toFloat(),paint)
  }
 }
 val t = Turtle(0, Point(xc,yc) )
 t.walk(5.0)
}
0677蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/08(水) 19:18:13.40ID:wtc6YQgJ
現在のスマホの画面は超高精細だから、5ピクセルだとほとんどゼロに近く見える。
(0,0)と画面の中心点を線で結んだようなもの。
300ピクセルぐらいにしたらどうか。
あと、相対位置だから、現在位置を足さないとおかしいよ。
0679アンスタ4日目 ◆mqSs/N.hZs
垢版 |
2020/07/08(水) 19:46:48.79ID:ZRZW4sA4
おおっ、それっぽくなって、少し近づきました
class Turtle(var angle: Int =0, var now: Point = Point()){
    fun turn(a:Int){angle=a}
    fun walk(b:Double){
      var x2 = now.x + b * Math.cos( Math.PI/6 ) //30°
      var y2 = now.y + b * Math.sin( Math.PI/6 )
     canvas.drawLine(now.x.toFloat(),now.y.toFloat(), x2.toFloat(),y2.toFloat(),paint)
    }
   }
   val t = Turtle(0, Point(xc, yc) )
   t.walk(300.0)

https://i.imgur.com/PMjOn03.png
今日はここまでにします。ありがとうございました。
0680蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/08(水) 20:53:39.77ID:wtc6YQgJ
角度を見ると、y軸が下向きに見えるね。左上が(0, 0)。
walkは、現在位置を更新する必要がある。
turnは相対角度で指定するのだろう。
0681アンスタ4日目 ◆mqSs/N.hZs
垢版 |
2020/07/08(水) 22:27:34.74ID:WById5/p
あーWebページと同じディスプレイ座標系って
Y軸下向き+か、引き算かな?めんどくせー

var y2 = now.y + b * Math.sin( Math.PI/6 )

var y2 = now.y − b * Math.sin( Math.PI/6 )

ですね。また、明日修正しよう
0682アンスタ4日目 ◆mqSs/N.hZs
垢版 |
2020/07/08(水) 23:35:15.25ID:uxkKxnC4
>>675
メモ、多分、角度からラジアン関数にする
math.toRadian()を使う は ず
  now.x = b * Math.cos( Math.PI/6 ) //30°

now.x = b * Math.cos( math.toRadian(30) ) //30°

angleてInt型でええんかな?doubleにしてからfloatか?
また明日
0683アンスタ5日目 ◆mqSs/N.hZs
垢版 |
2020/07/09(木) 18:17:31.73ID:YMHQKg0a
>>680
相対角度と現在地更新に修正して出来ました。ありがとうございます

//構造体データクラス
 data class Point(var x: Double = 0.0, var y: Double =0.0 )
//タートルクラス
 class Turtle(var angle: Double = 0.0, var now: Point = Point()){
  fun turn(a:Int){angle += a} //+=相対角度
  fun walk(b:Double){
    var x2 = now.x + b * Math.cos( Math.toRadians(angle) )
    var y2 = now.y - b * Math.sin( Math.toRadians(angle) )//Y軸下向き+の為引き算
   canvas.drawLine(now.x.toFloat(),now.y.toFloat(), x2.toFloat(),y2.toFloat(),paint)
   now.x=x2 ; now.y=y2 //現在地更新
  }
 }
 val t = Turtle(0.0, Point(xc,yc) )
 t.walk(300.0)
 t.turn(120)
 t.walk(300.0)
 t.turn(120)
 t.walk(300.0)

https://i.imgur.com/It79sWl.jpg
0685アンスタ5日目 ◆mqSs/N.hZs
垢版 |
2020/07/09(木) 18:45:23.44ID:YMHQKg0a
多角形描いてみたらズレてますけど、さらっと行きたかったんで、まいっか。

val t = Turtle(0.0, Point(xc,yc) )
for(n in 3..12) { //多角形ポリゴン
 t.angle=0.0 ; t.now=Point(xc*2/3,20*n + yc*3/2)
 for(j in 1..n) {
  t.walk(300.0) ; t.turn(360/n)
 }
}
https://i.imgur.com/G0Cf1eQ.jpg

次はこれ使って【3.3】再帰呼び出しリカーシブに挑戦だ
0688蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/09(木) 19:02:15.05ID:2UhyUN9n
360/n
これは整数除算。
360.0/n
こうすれば実数の割り算になる。
0689アンスタ5日目 ◆mqSs/N.hZs
垢版 |
2020/07/09(木) 19:23:07.51ID:YMHQKg0a
>>684
コッホ曲線描けました。ほとんどコピペですが。。。向きが逆とか・・

val t = Turtle(60.0, Point(xc, yc) )

fun Kochsub(degree:Int, step:Double) {
if (degree == 0) {
t.walk(step);
// walk の始点と終点を結ぶ線分を描く
} else {
Kochsub(degree - 1, step/3);
t.turn(-60);
Kochsub(degree - 1, step/3);
t.turn(120);
Kochsub(degree - 1, step/3);
t.turn(-60);
Kochsub(degree - 1, step/3);
}
}
Kochsub(4, 600.0)

https://i.imgur.com/ir9iJQy.jpg
0691蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/09(木) 19:36:51.16ID:2UhyUN9n
>>689
turnの符号を反転すれば逆向きになる。
たぶん、y軸の向きを変えたせいだろう。
0692アンスタ5日目 ◆mqSs/N.hZs
垢版 |
2020/07/09(木) 19:47:43.68ID:YMHQKg0a
>>691

OKでーす。
https://i.imgur.com/uH3uJCM.png

val t = Turtle(0.0, Point(xc-450, yc) )

fun Kochsub(degree:Int, step:Double) {
if (degree == 0) {
t.walk(step);
// walk の始点と終点を結ぶ線分を描く
} else {
Kochsub(degree - 1, step/3.0);
t.turn(60.0);
Kochsub(degree - 1, step/3.0);
t.turn(-120.0);
Kochsub(degree - 1, step/3.0);
t.turn(60.0);
Kochsub(degree - 1, step/3.0);
}
}
Kochsub(4, 900.0)


すみませが、今日はこの辺で、他のも試してみたいと思います
0694アンスタ7日目 ◆mqSs/N.hZs
垢版 |
2020/07/11(土) 10:41:29.52ID:Rtii2xnW
コピペで一部分しか書き換えてないし
複数の図形を切り替えるのどうすれば良いのだろう?
0695アンスタ7日目 ◆mqSs/N.hZs
垢版 |
2020/07/11(土) 15:01:20.95ID:L5LJscxh
誠に残念ですが1週間程は体調が良くなる目処がたちませんので
回復したらまたやり始めるかもわかりませんが
本件は一旦閉じます。
短い間でしたがお付き合いいただきましてありがとうございました。
0696蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/11(土) 15:02:33.78ID:T2hwfIgh
キャンバスに対して描画関数を呼び出せば、描画できる。複数個描画したいなら、複数回呼び出せばいい。切り替えには、ボタンやフラグ変数などを使えばいい。
0701蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/19(日) 22:53:41.01ID:T8vbWyFG
一つひとつはつまらないかも知れないが、ボタンを押したら画像を切替えるとか、パラメータを指定すると変化させるとか、
いろんなバリエーションが考えられるよ。つまらないならタートルをやめてもいいし。
0704蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/20(月) 23:33:37.88ID:6GFyBW1T
ボタンを押したらフラグ変数を更新して、フラグ変数を元に再描画までやってみようか?
0705アンスタ7.3日目 ◆mqSs/N.hZs
垢版 |
2020/07/21(火) 01:58:42.36ID:tlCHC+G3
タグでの切り替えは未だに分からず
新規作成のタグviewテンプレートはそのまま起動出来るんですがどうやって成り立つのか意味不明で
次のその課題も
ボタンとviewのcanvas同時表示が難しいので理解が追い付かず困ってます
まず、
1.メインアクティビティからviewのcanvasをクラスとしての分離
2.各種曲線の関数化と引数をどう書くのもかわからないし、
タートルクラスを分離してグローバル変数にしないといけないのかどうかとか
3.メインアクティビティとしてviewとボタンの同時レイアウトの設定と書き方
4.ボタン引数の渡しかたとviewでの引数受け取り
5.タートルメソッド呼び出しと曲線関数を選択してcanvas再描画

そのどれもがAndroidのKotlinでどう実現したらいいかわからないorz
0706アンスタ7.3日目 ◆mqSs/N.hZs
垢版 |
2020/07/21(火) 02:11:39.66ID:tlCHC+G3
>>702
念の為申し上げておきますが自分はスレ主とはなんの関係もございません。
>>573で放置されているインベーダーゲームをAndroidで実現してみたいと思い2週間ちょっと前にプログラム未経験から初めて勝手に居候して居ます。
スレ主が帰って来るかどうかわかりませんが
Pythonより先にAndroidでインベーダーゲームを
どうにか作ってみたいですね。
0707蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/21(火) 02:49:45.10ID:iLwMnecK
うむ、チュートリアルを順番にやった方がよかったか。まだ諦めるな。こちらで検証してみるから。
0708アンスタ7.3日目 ◆mqSs/N.hZs
垢版 |
2020/07/21(火) 03:00:53.23ID:tlCHC+G3
まだ諦めてはいません
左右の傾きセンサーで左右に移動してボタンでミサイル発射する事を想定するなら
canvasとボタン一個(またはタッチリスナー)は必要だと思いますので
0709蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/21(火) 07:32:47.73ID:w/y1zMfY
ボタンのあるアプリを作りたいんだろ?
まず、「下部ナビゲーションアクティビティ」を選び、下部のnav_viewに
ボタン「button1」「button2」を追加する。
追加方法は「Buttons」→「Button」をドロップして、「id」に「button1」
「button2」を指定すればOK。
0712蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/21(火) 10:14:54.32ID:w/y1zMfY
こりゃ、Android Studioは難しいね。
古いのと新しいのが混じっていてバージョン違いで動かないことがある。
Kotlinの使えるサンプルが少ない。サンプルが古い。すぐ古くなる。
古いKotlinと新しいKotlinがあるのか。
デバッガがVisual Studioに比べて使いづらい。
継承したクラスをレイアウトする方法が書かれていない。
こりゃむずいよ。
0713アンスタ7.3日目 ◆mqSs/N.hZs
垢版 |
2020/07/21(火) 10:20:01.94ID:cnlWcoC2
>>711
ん?そこに書かれているように>>662の時点以降全ては
マイcanvas viewに描画しているのですが???

>val myView = MyView(this) //レイアウトXMLファイルなし
>setContentView(myView)


なので、現状はレイアウトxmlファイルを復活しないとレイアウトが出来ません。
0714アンスタ7.3日目
垢版 |
2020/07/21(火) 10:28:51.40ID:cnlWcoC2
>>712
ちょいと?
>>634>>636では選べって言うから・・

まるで経験者のような言い回しに受け取りましたけど(~_~;)
0715蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/21(火) 11:37:44.44ID:w/y1zMfY
Viewを拡張せずにビットマップを使って描画する方法です:

https://twitter.com/katahiromz/status/1285403020704935941

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener { view ->
var bitmap = Bitmap.createBitmap(500, 300, Bitmap.Config.ARGB_8888)
var canvas = Canvas(bitmap)
canvas.drawColor(Color.LTGRAY)

var paint = Paint()
paint.color = Color.BLUE
paint.style = Paint.Style.STROKE
paint.strokeWidth = 20F
paint.isAntiAlias = true

var cx = canvas.width / 2F;
var cy = canvas.height / 2F;
canvas.drawLine(cx - 100F, cy, cx + 100F, cy, paint)

imageView.setImageBitmap(bitmap)
}
}
}
https://twitter.com/5chan_nel (5ch newer account)
0716蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/21(火) 11:52:41.25ID:w/y1zMfY
問題は、どうやって画面のサイズにビットマップを合わせるか。

画面はタテヨコ回転するし、縦横比が違うとレイアウトが崩れてしまう。
0719蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/21(火) 12:33:43.35ID:iLwMnecK
再描画するなら、タートルの位置と向きをリセットして、背景をクリアする必要がある。
ボタンタップは上記の通りsetOnClickListenerを使えばイベントを捕まえられる。
0720MyView.kt
垢版 |
2020/07/21(火) 12:40:17.12ID:0Rlv47w0
package com.example.my・・・
import ・・・
class MyView(context: Context?, attrs: AttributeSet?) :
 View(context, attrs) {
 var paint: Paint
 override fun onDraw(canvas: Canvas) {
  // 背景、半透明
  canvas.drawColor(Color.argb(127, 0, 127, 63))
  // 円
  paint.color = Color.argb(255, 68, 255, 255)
  paint.strokeWidth = 30f
  paint.isAntiAlias = true
  paint.style = Paint.Style.STROKE
  // (x1,y1,r,paint) 中心x1座標, 中心y1座標, r半径
  canvas.drawCircle(450f, 450f, 100f, paint)
  // 矩形
  paint.color = Color.argb(255, 255, 190, 0)
  paint.strokeWidth = 10f
  paint.style = Paint.Style.STROKE
  // (x1,y1,x2,y2,paint) 左上の座標(x1,y1), 右下の座標(x2,y2)
  canvas.drawRect(480f, 480f, 850f, 880f, paint)
  // 線
  paint.strokeWidth = 15f
  paint.color = Color.argb(255, 0, 255, 120)
  // (x1,y1,x2,y2,paint) 始点の座標(x1,y1), 終点の座標(x2,y2)
  canvas.drawLine(350f, 850f, 750f, 630f, paint)
 }
 init { paint = Paint(); }
}
0721MainActivity.kt
垢版 |
2020/07/21(火) 12:42:27.25ID:0Rlv47w0
package com.example.myturtlegraphics

import android.os.Bundle
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity


class MainActivity : AppCompatActivity() {
 override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  setContentView(R.layout.activity_main)
  val label = findViewById<TextView>(R.id.label)
  label.setText(R.string.text)
 }
}
0722activity_main.xml
垢版 |
2020/07/21(火) 12:46:19.40ID:0Rlv47w0
<?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:tools="http://schemas.android.com/tools";
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context=".MainActivity"> <!-- ここは自分のプロジェクトに合わせる -->
 <com.example.myturtlegraphics.MyView
  android:layout_width="340dp"
  android:layout_height="420dp"
  app:layout_constraintBottom_toBottomOf="parent"
  app:layout_constraintLeft_toLeftOf="parent"
  app:layout_constraintRight_toRightOf="parent"
  app:layout_constraintTop_toTopOf="parent" />
 <TextView
  android:id="@+id/label"
〜省略〜
  app:layout_constraintVertical_bias="0.2" />
 <Button
  android:text="@string/button"
  android:layout_width="200dp"
  android:layout_height="wrap_content"
  app:layout_constraintBottom_toBottomOf="parent"
  app:layout_constraintLeft_toLeftOf="parent"
  app:layout_constraintRight_toRightOf="parent"
  app:layout_constraintTop_toTopOf="parent"
  app:layout_constraintVertical_bias="0.88" />
</androidx.constraintlayout.widget.ConstraintLayout>
0723strings.xml
垢版 |
2020/07/21(火) 12:48:00.91ID:0Rlv47w0
<resources>
 <string name="app_name">MyTurtleGraphics</string>
 <string name="button">Button</string>
 <string name="text">"サンプルをコピペしました\n
  これはテストページの\nテストテキスト文章の\n文字列です。
  ABCDEFG\n
  "</string>
</resources>
0724蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/21(火) 12:51:01.86ID:iLwMnecK
面白いのができたら、apkをGoogle Playに公開しよう。それも有料で。スマホには夢がある。

誰に売るのかを考えると、やっぱり英語圏と中国語圏は捨てられない。

リソース(res)文字列は言語の切替えに便利だ。
0725アンスタ7.3日目 ◆mqSs/N.hZs
垢版 |
2020/07/21(火) 12:51:22.67ID:0Rlv47w0
MyView.kt
MainActivity.kt
activity_main.xml
strings.xml
とりあえず以上の4つのファイルで動作することまでです。
以上、今日はここまで
0726アンスタ7.3日目 ◆mqSs/N.hZs
垢版 |
2020/07/21(火) 12:55:07.17ID:0Rlv47w0
>>724
どうやってapkをGoogle Playに公開するのかも知らんし
デベロッパー登録って本名バレルんじゃん?
リソースで言語切り替えもよくわからないです。、では。。また。。。
0727アンスタ7.4日目 ◆mqSs/N.hZs
垢版 |
2020/07/22(水) 00:59:41.07ID:dlEVGvhK
canvasのviewとボタンさえ出来れば
ボタンを押すと画面に変化が起きる基礎の基礎
ようやくゲーム機でいうところの
テレビ画面とコントローラーが揃う事になります
あと一歩がんばる
でも次は大きな山場スプライトアニメーションの実装が・・・
0728アンスタ7.4日目 ◆mqSs/N.hZs
垢版 |
2020/07/22(水) 01:04:18.12ID:dlEVGvhK
>>724
3Dでヌルヌル動くゲームアプリが無料でダウンロード出来るのに
どこの馬の骨かもわからんアプデ不能のapkを
誰がダウンロードしてくれるのだろう???
0729蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/22(水) 19:23:06.14ID:7WzCMWp7
おや、ビビってんのかな。知らないだれかに使ってもらうんだから、社会的責任が増えるのは当たり前だ。匿名で登録する裏ワザはない。
匿名のイーロンマスクは居ない。何ならペーパーカンパニーでも作るか?
0730蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/22(水) 21:08:05.22ID:7WzCMWp7
http://simple-life777.はてなblog.com/entry/2019/01/22/apk%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E7%BD%B2%E5%90%8D%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%80%90Android%E3%82%A2%E3%83%97%E3%83%AA%E3%80%91
ここにアプリの署名方法が書いてある。

APKpureというサイトを使うと野良配布が出来るらしい。
0731蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/07/22(水) 21:42:14.72ID:7WzCMWp7
画面回転はデカいトラップのように見える。回転が起きたときに、アプリが再起動されるようなことがあるらしい。対策が必要だ。
0734アンスタ7.4日目 ◆mqSs/N.hZs
垢版 |
2020/07/22(水) 22:37:27.84ID:ldPwt2lK
>>729-733
いろいろとありがとうございます。まぁ、まだまだ時期尚早といいましょうか
[Android] Canvas クリアーして再描画
https://akira-watson.com/android/canvas-clear.html
を参考にいろいろ試したのですがエラーが取れなくてなかなか手こずりました
どうにかこうにかボタンで再描画までたどり着きました。
kotlinの書き方がいまいちよくわからんので間違ってるかもですが、とにかく動きました
https://i.imgur.com/6I0V4ts.gif
備忘録としてメモ
MyView.ktでメソッドを定義しておいて
 fun showCanvas(flg: Boolean) {
  viewflg = flg
  // 再描画
  invalidate()
 }

MainActivity.ktでインスタンス化してボタンリスナーでランニング
this.myView = this.findViewById(R.id.myView)

  val button: Button = findViewById(R.id.button)
  button.setOnClickListener{
   myView?.run { showCanvas(true) }
  }
疲れたしねる。
0735a4 ◆L1L.Ef50zuAv
垢版 |
2020/07/23(木) 09:49:52.99ID:fwUN55zD
こんにちは。T語で喋る人工知能の開発を協力してくれる方を募集しています。
技術の詳細はこちら。
http://www.01ken.com/art1.html
時給2000円くらいを想定しています。Skypeなどで僕とやり取りしながら、
日本語などで入力していきます。でも、予算はあまり落ちてないので合計で
月2万円くらいしか流れないかもしれません。でも月4万円を目指してる方
ならこれでいいんじゃないかと。税金などの法律に関しては、父親が自営業で工場
を持っているので、そちらで処理します。ご連絡をお待ちしています。
0736アンスタ7.5日目 ◆mqSs/N.hZs
垢版 |
2020/07/23(木) 11:34:28.30ID:qQzwkkHt
>>735
申し訳ありませんが私は1週間程度のプログラミング能力で
まだ基本的なアニメーションにすらたどり付いていないばかり
人工知能開発に協力するなどというのは余りにも無謀で難し過ぎますし

なによりそのT語で喋るという事の意味が理解出来かねます

レベルの低い初心者なのでお役に立てそうにありません
0737a4 ◆L1L.Ef50zuAv
垢版 |
2020/07/23(木) 12:30:37.20ID:fwUN55zD
>>736
ご返信ありがとうございます。確かに1週間くらいのスキルでは厳しいかもしれ
ません。2000円の仕事なので。でも、これは日本語で入力できるんですよ。
例えば、
http://01ken.com/t401.html
こんな感じに書けばいいんじゃないかと。これは左の単語に反応して右の文章が出力
されるというものです。僕も困ってるんですよ。協力者が少なくて。質問などが
あれば聞きます。
0738アンスタ7.5日目 ◆mqSs/N.hZs
垢版 |
2020/07/23(木) 17:32:50.81ID:otdPxTIk
>>737
お誘いはありがたいのですが
ようやくAndroid studioでプログラミングを始めたばかりで
レベルが違いすぎて困惑しております
それは第2次AIブームの膨大な知識入力作業のアルバイトと言う事でしょうか?
残念ながらタッチタイピングは120文字/分くらいで全く早くありませんので向いていないと思います
0739a4 ◆L1L.Ef50zuAv
垢版 |
2020/07/24(金) 01:15:51.04ID:A/R193/T
>>738
わかりました。

他に興味のある方がいらっしゃれば、まだ募集します。
0740デフォルトの名無しさん
垢版 |
2020/08/14(金) 15:14:38.85ID:qHTqJOgh
上にでてるタートルグラフィックやってみてるんだけど
再描画してしまうと1歩目の道筋が消えてしまう・・・
結局、配列使ってX歩目までの道筋を全部記憶させてループの度にすべての道筋を再描画させるという荒業しかできんかった。
どうやったら前の絵を残したまま追加で描画できるんでしょ
0741デフォルトの名無しさん
垢版 |
2020/08/14(金) 19:58:21.90ID:qHTqJOgh
>>429の事言ってたんだがタートルグラフィックってこれのことじゃなかったのか
タートルグラフィックは普通に一気に線描かれるのでいいや
0742蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/08/15(土) 00:05:35.90ID:WlDMeHFc
ビットマップというのを使えば、画像として保存できる。サイズ調整がややこしいけどね。
0743デフォルトの名無しさん
垢版 |
2020/08/15(土) 11:06:08.75ID:MdgQ6bll
こんなやりかたあったんだ
実際にやってみて思ったけど、画像として保存したらそれはそれで過去の線の座標が一切わからなくなるな
お手軽ではあるけど、ちゃんと考えて使い分けた方がよさそう

あとサイズはonWindowFocusChangedの中でなら問題なくレイアウトで指定したサイズでとれてそうだけど、
これメソッドどのタイミングで呼ばれてるのかよくわからん。
ライフサイクルとかいうやつの中にも入ってないし、そもそもonStartメソッド作っても呼ばれない。
でも感覚的にはStartとほぼ同じなんかな
https://www.cs.dartmouth.edu/~campbell/cs65/lecture05/images/lifecyclediagram.png
0745デフォルトの名無しさん
垢版 |
2020/08/16(日) 00:20:29.48ID:jJBt4Vqs
枝の長さをランダムにすると、下のような自然界の木のような図が得られる
らしいからそのまま枝の長さランダムにしたら化け物みたいな木しか生まれないんだが
https://i.imgur.com/uBegWvn.png

何分岐目までかはランダムにとかできるのかな
どう工夫しよう
0746蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/08/16(日) 12:49:16.77ID:GwA/W8AI
>>745
分岐する、ということは再帰すること。
再帰の度に引数をカウントアップすれば可能。
0747デフォルトの名無しさん
垢版 |
2020/08/16(日) 17:02:08.02ID:49vpKD70
単純に3度目の再帰までとすると一番左側の枝だけランダムになってたから困ってた
イメージとしては初めから3つ目ぐらいまでの枝をランダムにすれば思ってた絵ができるのかと思ってた
だから再帰させる回数-残りの再帰回数が3以下の枝だけランダムにしてみたけど、思ってたのと違う絵ができた

よく考えてみれば単純に再帰させる回数をそのまま乱数の最大値とすれば、
枝の先にむけて徐々に短くなりつつ、かつバラバラの枝の長さを実現できた
https://i.imgur.com/nteQ01q.gif
0749デフォルトの名無しさん
垢版 |
2020/08/16(日) 19:33:54.97ID:49vpKD70
さすがにまだ公開するようなレベルのもの作れてないし、するにしてもあと2,3本ぐらい毛生やしたいかな
とりあえず何かしら公開はしてみたい気はある
0751デフォルトの名無しさん
垢版 |
2020/08/18(火) 21:29:34.17ID:HLO+tc8S
枝も葉っぱも追加するのが難しくて追加できない・・・
というかこれ以上拡張してもしょうがないしなぁ、
何か別のもの作るにしてもアプリ公開したいとは思ってるもののアイデアもないし
一番の悩みどころってここだよな
はじめから力みすぎもよくないのだが
0752蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/08/18(火) 22:42:59.16ID:JxDgwCYh
役に立つことにこだわらなくてもいい。
見て楽しむだけのアプリでも、エンターテインメントアプリとして通用する。

そろそろリリースしてもいいんじゃね。
0753デフォルトの名無しさん
垢版 |
2020/08/19(水) 20:36:53.90ID:2IA7raUI
確かに減るもんじゃないしリリースするのも悪くないな
でも最低でも背景と風力調整できるバーはつけておきたい
あと実機でも確認しておきたいからandroidのスマホ買わないと

ていうか新しく公開されたアプリはどうやって他人に認知されてるの?
有名所なら広告で宣伝なりするだろうけど、それ以外で広告もないのに一時的にでもインストール数が増えるのって誰がどこで見つけてるのかな?
単純に気になる
0754蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/08/19(水) 20:45:36.55ID:FObCC8uF
Google Playってところに登録すれば、テキストベースで検索されて、ユーザに発見されるかも知れない。
それが嫌なら、前述のAPKPureに登録するか、ホームページにリンクを貼って野良アプリとしてAPKをリソースすることになる。
0755蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/08/19(水) 20:52:51.95ID:FObCC8uF
Web広告とか、テレビCMとか、街宣とか、自社サービスに紐付けとか、そんな感じ。グループ会社なら社員全員ユーザもありえる。

マネーや人脈に余裕がなければ、SEO技術に頼ることになる。とりあえずホームページかブログを制作して、それを検索エンジンに登録するところから始めるしかない。
0756蟻人間 ◆T6xkBnTXz7B0
垢版 |
2020/08/19(水) 20:54:59.76ID:FObCC8uF
アプリのダウンロード数をブーストするという裏ワザもあるが、それはダークサイドなんで説明しない。。。
0758デフォルトの名無しさん
垢版 |
2020/08/19(水) 21:49:11.02ID:2IA7raUI
無名でなんも対策うってなかったらインストール数0で当たり前って感じだな
目的は金だからなぁ、いずれはちゃんとした対策も考えないとな・・・
その裏技は頭の片隅にでも置いとく
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況