見た目

【Pygame Zero】キャラクターの色を 変えよう!

ratch2025

こんにちは!
「Pythonしよう!楽しく学べるプログラミング教室」
ラッチ先生です

ラッチ先生
ラッチ先生
スック
スック

スックです。よろしくね!

今回のプロジェクトは、こちら!
ラッチ先生
ラッチ先生

基礎プログラムと 画像を入れた
「見た目06 boonボーンの色を 変えよう!」zipフォルダを ダウンロードしてください

スック
スック

この基礎プログラムは、こちらの記事で解説しています

参考記事
【Pygame Zero】スクリーンに画像を 表示させる
【Pygame Zero】スクリーンに画像を 表示させる
スポンサーリンク

1秒ごとに ランダムに選んだ場所で表示する

boonをクリックすると 1回転する

boonをクリックすると 色が 変わる

プログラムを 実行してみよう

ラッチ先生
ラッチ先生

今回の「boonボーンの色を 変えよう」では、
boonボーン を クリックする
boonボーンが ランダムな場所へ 移る
boonボーン の色を 変える
プログラムが あります

そこで、3つのモジュールを 用意しました

pythonしよう!見た目05:randomモジュールの解説
pythonしよう!見た目05:visualモジュールの解説
スック
スック

モジュールとは、
関数やプログラムが書かれているファイルのことだよ

ラッチ先生
ラッチ先生

今回のプログラミングには、ポイントが 3つあります

スック
スック

これで、変数boonボーンに「 . (ドット)」を付ければ 使えるよ

スック
スック

数字は、『 0~199 』の200段階だよ

ラッチ先生
ラッチ先生

最初に、
scheduleスケジュール_intervalインターバル( ) メゾットを使って
1秒ごとに ランダムに決めた場所で表示させよう

Python
def boon_move():  #1 boonの動きを まとめる

    boon.x = random.randint(50, WIDTH-50)  #2 boonのx座標に 50~750から ランダムに決めて代入する
    boon.y = random.randint(50, HEIGHT-50) #3 boonのy座標を 50~540から ランダムに決めて代入する

clock.schedule_interval(boon_move, 1.0)   #4 1秒ごとに boon_move関数を 実行する 
スック
スック

簡単に できちゃったね

ラッチ先生
ラッチ先生

つぎは、
collideコライドpointポイント_pixelピクセル( ) メゾットを使って
クリックしたら boonボーンを1回転させよう

Python
is_rotating = False  #1 変数is_rotating(回転している?)に Falseを代入する
rotation_speed = 12  #2 変数ratation_speed(回転スピード)に 12を代入する
Python
def on_mouse_down(pos):  #3 クリックした動きをまとめる 
    global is_rotating   #4 グローバル変数:is_rotating 
    
    if boon.collidepoint_pixel(pos):  #5 もし boonに クリックしたら
        is_rotating = True  #6 変数is_rotatingに Trueを代入する
Python
def boon_rotate():      #1 boonの回転をまとめる
    global is_rotating  #2 グローバル変数:is_rotating

    if is_rotating:     #3 もし 変数is_rotatingが Trueなら
        boon.angle += rotation_speed  #4 boonの向きを 変数rotation_speed増え続ける

        if boon.angle >= 360:   #5 もし boonの向きが 360度以上になったら
            boon.angle = 0      #6 boonの向きに 0度を代入する 
            is_rotating = False #7 変数is_rotatingに Falseを代入する

def update():     #8 更新する
    boon_rotate() #9 boonの回転を実行する 
スック
スック

変数rotationロテイション_speedスピード で、回転の速さが 変わるよ

ラッチ先生
ラッチ先生

boonボーンの色を 変えるために
VisualEffectビジュアルエフェクト( )を使います

Python
boon = VisualEffect("boon", (400, 300)) #1 変数boonに ビジュアルエフェクト(設計図)で作るboonを 代入する
Python
def draw():
    screen.fill("white")
    boon.draw(screen) #2 スクリーンに boonを 表示する
ラッチ先生
ラッチ先生

changeチェンジ_colorカラー( ) メゾットを使って
boonボーンの色を 変えよう

Python
def on_mouse_down(pos):  
    global is_rotating   
    
    if boon.collidepoint_pixel(pos): 
        is_rotating = True 
        boon.change_color(20)  #1 boonの色相を 20進めて、色を変える
スック
スック

これで、今回の学習は終了! おつかれさま

ラッチ先生
ラッチ先生

今回は、
boonボーンをクリックすると 色が変わるプログラムを 作りました。

boonの色を 変えよう!
Python
import pgzrun
from pgzhelper import *
from visual import VisualEffect
import random

WIDTH = 800
HEIGHT = 590

boon = VisualEffect("boon", (400, 300)) 

is_rotating = False 
rotation_speed = 12 

def draw():
    screen.fill("white")
    boon.draw(screen)

def boon_move(): 

    boon.x = random.randint(50, WIDTH-50)  
    boon.y = random.randint(50, HEIGHT-50)

clock.schedule_interval(boon_move, 1.0)        

def on_mouse_down(pos):  
    global is_rotating   
    
    if boon.collidepoint_pixel(pos): 
        is_rotating = True 
        boon.change_color(20) 

def boon_rotate():  
    global is_rotating 

    if is_rotating: 
        boon.angle += rotation_speed 

        if boon.angle >= 360: 
            boon.angle = 0    
            is_rotating = False 

def update(): 
    boon_rotate() 

pgzrun.go()
ラッチ先生
ラッチ先生

キャラクターの見た目を 変えるVisualEffectビジュアルエフェクト( )を使って、
boonボーンの 色を 変えるプログラムを作りました。

ラッチ先生
ラッチ先生

キャラクターの色を変えるプログラムを作る手順です。

スック
スック

みんなも試してみてね
それじゃ、またね!

スポンサーリンク
ABOUT ME
ラッチ先生
ラッチ先生
こんにちは!
「Pythonしよう!楽しく学べるプログラミング教室」の学長、ラッチです。

scratchのように楽しく学べるPython講座です。
・図やアニメーションを使って、わかりやすく楽しく学べる!
・毎回の授業が新しい発見の連続!
・プログラミングの考え方が身につき、自分のやりたいことが形にできるように。

この3点をモットーにサイトを立ち上げました。 よろしくお願いします
記事URLをコピーしました