Upgrade to Pro — share decks privately, control downloads, hide ads and more …

プログラミング基礎#2(名古屋造形大学)

 プログラミング基礎#2(名古屋造形大学)

ISHIGO Yusuke

December 02, 2024
Tweet

More Decks by ISHIGO Yusuke

Other Decks in Education

Transcript

  1. プログラミングのルール function setup() { createCanvas(400, 400); } function draw() {

    background(220); } 全く同じように書いてみよう 動かない場合は何かが違う(大文字・小文字、カッコ、記号は合っているか)
  2. プログラミングのルール function setup() { createCanvas(400, 400); } function draw() {

    background(220); } プログラミングの注意点 ・{}が処理のかたまりを表す ・大文字と小文字は区別される ・命令の後ろには「;」をつける ブロック名と同じ ブロックの中身
  3. createCanvas(400, 400); 関数(機能)の呼び出し方 関数名 内容1 (第1引数) 内容2 (第2引数) 画面幅 画面高さ

    画面のサイズを決める 最後には セミコロン 画面サイズを変えてみよう(例:幅→640、高さ→480) 内容1 (第1引数) 内容2 (第2引数)
  4. 枠線の指定 stroke(255, 0, 0); 枠線の色を赤255 緑0 青0にする strokeWeight(4); 枠線の太さを4にする stroke(0,

    0, 0); 枠線の色を設定する 赤(0〜255)、緑(0〜255)、青(0〜255)
  5. mouseMoved() function mouseMoved() { fi ll(random(255), random(255), random(255)); circle(mouseX, mouseY,

    40); } マウスが動いたときに呼び出されるイベント関数 塗りつぶしの色を設定する random(255) 0から指定した数までのランダムな数を作る
  6. 徐々に消える表現 function setup() { createCanvas(640, 480); } function draw() {

    background(‘rgba(255, 255, 255, 0.25)’); noStroke(); fi ll(200, 200, 200); circle(mouseX, mouseY, 100); } 透明度25%ずつ塗りつぶしていく
  7. 変数 変数→データを入れるための箱 100 a = 100; a abc b =

    “abc”; b 文字列の場合は「”」もしくは「’」で囲う let a = 100; 変数を作る命令 (最初だけ)
  8. 変数の演算 数学の「計算」のことを、プログラムでは「演算」という ʴ ଍͢ ʔ Ҿ͘ ˎ ͔͚Δ ʗ ׂΔ

    ˋ ׂͬͨ༨Γ 計算順序は、数学と同じ(かける・割るが優先される) 0%2=0、1%2=1、2%2=0、3%2=1…
  9. 四角を画面中央に描いてみる 左上が画面中央になるので、幅と高さを半分を引く let w = 640; let h = 480;

    let boxSize = 100; function setup() { createCanvas(w, h); } function draw() { background(220); rect(w/2 - boxSize/2, h/2 - boxSize/2, boxSize, boxSize); }
  10. let w = 640; let h = 480; let boxSize;

    function setup() { createCanvas(w, h); } function draw() { background(220); noStroke(); boxSize = random(200); rect(w/2 - boxSize/2, h/2 - boxSize/2, boxSize, boxSize); } 四角のサイズをランダムに変える
  11. let w = 640; let h = 480; let x1,

    y1, x2, y2; function setup() { createCanvas(w, h); x1 = random(w); y1 = random(h); x2 = random(w); y2 = random(h); } function draw() { background(220); line(x1, y1, x2, y2); } 課題 randomは関数内でしか使用できない
  12. let w = 640; let h = 480; function setup()

    { createCanvas(w, h); } function draw() { background(220); noStroke(); rect(w/2 - 100/2, h/2 - 100/2, random(200), random(200)); } function mouseClicked() { fi ll(random(255), random(255), random(255)); } マウスクリックでランダムに色を変える クリックしたときに実行されるイベント関数
  13. 四角を画面の右側に動かしていく let x = 0; function setup() { createCanvas(640, 480);

    } function draw() { background(220); x += 1; rect(x, 200, 100, 100); } x++; 変数名 変数の中身を1増やす x += 1; 変数名 変数の中身を1増やす x += 2; 変数名 変数の中身を2増やす インクリメント
  14. 条件式 条件式の種類 a > 100 a < 100 a >=

    100 aが100より大きい(100を含まない) aが100以上(100を含む) aが100より小さい(100を含まない) a <= 100 aが100以下(100を含む) a == 100 aが100と等しい a != 100 aが100ではない 条件に当てはまるときに、{}内が実行される 条件に当てはまらないときに{}内が実行される else{}は書かなくても良い if(条件式) { 条件式に当てはまったときに実行される } else { 条件式に当てはまらなかったときに実行される }
  15. 壁にあたったら跳ね返る let x = 0; let move = 1; function

    setup() { createCanvas(640, 480); } function draw() { background(220); x += move; if (x > 640) { move = -1; } rect(x, 200, 100, 100); } 640を超えたら、moveを-1にする 四角が壁を突き抜けないようにするにはどうするか?
  16. 課題 let x = 0; let moveX = 1; function

    setup() { createCanvas(640, 480); } function draw() { background(220); x += moveX; if (x > 640-100) { moveX = -1; } if (x < 0) { moveX = 1; } rect(x, 200, 100, 100); }
  17. 課題 let x = 0; let moveX = 1; function

    setup() { createCanvas(640, 480); } function draw() { background(220); x += moveX; if (x > 640-100 || x < 0) { moveX *= -1; } rect(x, 200, 100, 100); }
  18. 一定の大きさを超えた場合、色を変える function setup() { createCanvas(640, 480); } function draw() {

    background(220); let w = random(20, 200); let h = random(20, 200); let x = 640/2 - w/2; let y = 480/2 - h/2; if (w > 150 && h > 150) { fi ll(255, 0, 0); } else { fi ll(255, 255, 255); } rect(x, y, w, h); } 幅と高さが150以上の場合
  19. 課題 let x, y, moveX, moveY; function setup() { createCanvas(640,

    480); x = random(640-100); y = random(480-100); moveX = random(-2, 2); moveY = random(-2, 2); }
  20. 課題 function draw() { background(220); x += moveX; y +=

    moveY; if (x > 640-100 || x < 0) { moveX *= -1; } if (y > 480-100 || y < 0) { moveY *= -1; } rect(x, y, 100, 100); }
  21. 繰り返し 反復 同じ処理をn回繰り返す for (初期化; 条件式; 更新) { } 条件式に当てはまる間、繰り返す

    function setup() { createCanvas(640, 480); } function draw() { background(220); for (let i = 0; i < 10; i++) { rect(random(400), random(400), 100, 100); } }