見た目

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

ratch2025

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

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

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

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

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

pythonしよう!見た目06:ボーンを表示する
pythonしよう!見た目06:boonの色を変えよう!zipの中身
スック
スック

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

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

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

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

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

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

ラッチ先生
ラッチ先生

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

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

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

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

ラッチ先生
ラッチ先生

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

pythonしよう!見た目06:ポイント1の解説
スック
スック

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

pythonしよう!見た目06:ポイント2の解説
スック
スック

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

ラッチ先生
ラッチ先生

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

pythonしよう!見た目06:schedule_interval()メゾットの解説
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しよう!見た目06:collidepoint_pixel()メゾットの解説
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を 表示する
pythonしよう!見た目06:ポイント1の解説
ラッチ先生
ラッチ先生

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

pythonしよう!見た目06:ポイント2の解説
Python
def on_mouse_down(pos):  
    global is_rotating   
    
    if boon.collidepoint_pixel(pos): 
        is_rotating = True 
        boon.change_color(20)  #1 boonの色相を 20進めて、色を変える
pythonしよう!見た目06:色相相関図の解説
スック
スック

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

ラッチ先生
ラッチ先生

今回は、
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ボーンの 色を 変えるプログラムを作りました。

pythonしよう!見た目06:visualモジュールの解説
ラッチ先生
ラッチ先生

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

pythonしよう!見た目06:ポイント1の解説
pythonしよう!見た目06:ポイント2の解説
スック
スック

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

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

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

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