プログラミング超初心者のゲーム製作 by Pyxel(4日目)

今日は「繰り返し処理」を学びます。
何度も同じ処理を繰り返したいときは繰り返し処理を使う。繰り返し回数が決まっている場合は
for文とrange関数を組み合わせる。

今日書いたコード

結果:キャラクターを描画する ※繰り返し処理を使ってないコード

import pyxel

def draw_character(x, y, color_a, color_b):
    pyxel.circ(x, y, 5, color_a)
    pyxel.line(x-2, y-2, x-2, y-1, color_b)
    pyxel.line(x+2, y-2, x+2, y-1, color_b)
    pyxel.line(x-2, y+2, x+2, y+2, color_b)

pyxel.init(120, 120, title = "Day04")
pyxel.cls(1)
draw_character(20, 20, 4, 3)
draw_character(40, 40, 4, 3)
draw_character(60, 60, 4, 3)
draw_character(80, 80, 4, 3)
draw_character(100, 100, 4, 3)

pyxel.show()

結果:キャラクターを描画する ※繰り返し処理を使っているコード

import pyxel

def draw_character(x, y, color_a, color_b):
    pyxel.circ(x, y, 5, color_a)
    pyxel.line(x-2, y-2, x-2, y-1, color_b)
    pyxel.line(x+2, y-2, x+2, y-1, color_b)
    pyxel.line(x-2, y+2, x+2, y+2, color_b)

pyxel.init(120, 120, title = "Day04")
pyxel.cls(1)

for i in range(5):
    x = i * 20 + 20
    y = i * 20 + 20
    draw_character(x, y, 4, 3)

pyxel.show()

コードの要点

for 変数名 in range(繰り返す回数):
繰り返す処理

変数にはrangeの中から1つずつ取り出して代入される。
例えば、「for i in range(5):」とすると、0~4がiに順番に5回代入される。
繰り返したい処理は字下げして書くこと。字下げしないとブロック外となり繰り返し処理にならない。

つまづいた点

for文の変数をどのように使うか難しかった。

おまけ

結果:ランダム関数を使って、キャラクター数の位置と色をランダム生成

import pyxel

def draw_character(x, y, color_a, color_b):
    color_a = pyxel.rndi(2, 11)
    color_b = pyxel.rndi(2, 11)
    pyxel.circ(x, y, 5, color_a)
    pyxel.line(x-2, y-2, x-2, y-1, color_b)
    pyxel.line(x+2, y-2, x+2, y-1, color_b)
    pyxel.line(x-2, y+2, x+2, y+2, color_b)

pyxel.init(120, 120, title = "Day04")
pyxel.cls(1)

for i in range(50):
    x = pyxel.rndi(5, 115)
    y = pyxel.rndi(5, 115)
    draw_character(x, y, 4, 3)

pyxel.show()

pyxel.rndi関数:整数の乱数を得る。引数は左から、乱数の最小値・乱数の最大値