【初心者向け】Processingでプログラミング言語Pythonのif文を使って動くものを作ろう

Processing python

こんにちはダダです

以前の記事でfor文を利用した繰り返しについての記事を書きました

↓↓↓以前の参考記事はこちら↓↓↓

【Processing python】for文を使った繰り返しで模様を描こう

同じ内容のものをまとめたり、繰り返したり、パソコンがランダムに決めたりと少しずつ成長が見えるので、私自身少し喜んでいます

そんな中、少し違った作風があるということ学びました

それは・・・

if文(条件分岐)

村人A
村人A

はい!!

難しいやつですね、わかります

村人B
村人B

はい!!解散!!

お疲れさまでした~

村人さんたちちょっと待って~

if文って面白いですよ

if文を使えるとどんなことができる?

こんなのを作っていきます

ということで、今回の記事はプログラミング言語Pythonの文法でif文という条件分岐を記事にしていきます。

この記事はProcessingというソフトを使用しています

設定はJavaではなくPythonに変更してください

Java設定だとエラーが出る場合があるので注意してください

↓↓↓Processingって何?という方はこちらの記事を↓↓↓

↓↓↓Processingのインストールや設定の変更についてはこちらの記事を↓↓↓

if文(条件分岐)ってなに?

ifを翻訳すると『もし』です

プログラミングでも使い方は『もし〇〇ならば〇〇』といった感じで使っていきます

if文の使い方は?

if文を使って条件式を作成していきます

if 条件式①:
   条件式①に一致した場合

elif 条件式②:
    条件式②に一致した場合

else:
   条件式①、②に一致しない場合

よく使われる条件式一覧

演算式意味日本語にした場合
==同じ値かx == 5xと5が同じ値か
!=違う値かx != 5xと5が違う値か
>より大きいx > 55よりxが大きい
<より小さいx < 55よりxが小さい
>=以上x >= 5xが5以上
<=以下x <= 5xが5以下

以上のような内容になってきます

ただわかりにくいので、実際にif文を使って何かを作ってみましょう

下準備

使い方を確認するためにsetup関数とdraw関数を使ってアニメーションを作っていきます

\\\アニーメーションについての記事はこちらから///

【超初心者向け】Processingでプログラミング言語pythonを使ったアニメーション作成方法

これより以下のコードは変数を用いて作成しています

↓↓↓変数について知りたい方はこちらの記事を↓↓↓

【超初心者向け】Processingを使ってプログラミング言語Pythonの変数について

↓↓↓グローバル変数とローカル変数について↓↓↓

今後作成予定

コード作成

x, y = 100, 650
dx = 3

def setup():
    size(2100, 1300)    

def draw():
    background(0)
    global x,dx    
    fill(0, 255, 255)
    x = x + dx
   
    ellipse(x, y, 100, 100)  

入力・実行

こんな感じでできて右にそのまま去っていきます

また、戻ってきてほしいと思いませんか?

そんな時に使えるのがif文(条件分岐)

if文を使って条件を追加していきましょう

以下のコードを追加していきます

if x > 2100 or x < 0:
    dx *= -1

コード作成

x, y = 1050, 650
dx = 7

def setup():
    size(2100, 1300)

def draw():
    background(0)
    global x, dx
    
    fill(0, 255, 255)
    x = x + dx
    
    if x > 2100 or x < 0:
        dx *= -1
    
    ellipse(x, y, 100, 100)  

入力・実行

海外の人A
海外の人A

壁に跳ね返って戻ってきました~

スゴイデース

ダダ
ダダ

あなたは誰?

村人A
村人A

なんでそうなるの?

ダダ
ダダ

少し不思議ですよね

では、少し詳しくコードの内容を見ていきましょう

コードの説明

    if x > 2100 or x < 0:
        dx *= -1

今回はこのコードを追加しましたが、どのような内容で書いてあるのか

少しコードを日本語訳してみます

if x > 2100 or x < 0:
もし、xの値が2100より大きい時 または 0より小さい時は

dx *= -1
dxの符号を逆にします(ー1倍)

という内容になります

村人A
村人A

ん?

壁に当たるように条件を付けたわけじゃないの?

ダダ
ダダ

村人さんいい質問です

Processingでは数値で動きを出したりしています

なので壁に当たって跳ね返るように見える数値を入れています

村人A
村人A

本当にー?

他の人は騙せても、私は無理ですよ~

ダダ
ダダ

では、少し数値を変化させてみましょう

2100→1500へ

0→500へ

それぞれ変更してみます

コード作成

if x > 1500 or x < 500:
    dx *= -1

入力・実行

海外の人A
海外の人A

壁がないところで跳ね返ってきました

スゴイデース

ダダ
ダダ

だから、あなたは誰?

ダダ
ダダ

上記のようにProcessingでは数値入力することができるので自分で好きな場所で変化を出すことができます

村人A
村人A

もっと簡単に壁に当たるようにできないの~

ダダ
ダダ

という方のために、こちらの変数をご用意しております

ダダ
ダダ

width,height変数です

この変数を使用すると簡単に壁あてができますよ

では、width、height関数を使用してコードを作成していきます

また、条件式を追加して動きの幅を広くしていきます

コード作成

x, y = 1050, 650
dx, dy = 7, 8

def setup():
    size(2100, 1300)
    

def draw():
    background(0)
    fill(0)
    rect(0, 0, width, height)
    global x, y, dx, dy
    
    fill(0, 255, 255)
    x = x + dx
    y = y + dy
    
    if x > width or x < 0:
        dx *= -1
    
    if y > height or y < 0:
        dy *= -1
    
    ellipse(x, y, 100, 100)   

入力・実行

このように、ブロック崩しのようなボールの動きを再現することができました

では、ここで一つ手品をお見せします

random関数をしようして動くボールを消します

コード作成

x, y = 1050, 650
dx, dy = 5, 5

def setup():
    size(2100, 1300)
    

def draw():
    background(0)
    fill(0)
    rect(0, 0, width, height)
    global x, y, dx, dy
    
    fill(0, 255, 255)
    x = x + dx
    y = y + dy
    
    if x > width or x < 0:
        dx *= random(-3)
    
    if y > height or y < 0:
        dy *= random(-3)
    
    ellipse(x, y, 100, 100)

入力・実行

まとめ

if文の使用方法をまとめてみましたが、まだif文のポテンシャルを生かせていません

ボールが跳ね返るようなものはできたのですが、もっとゲームっぽいことができれば楽しいかもしれませんね

これからも、知識量を増やしていくことでいろいろできるようになると思うの頑張ります

コメント

タイトルとURLをコピーしました