2019年6月28日金曜日

画像を回転させる pygame



#!/usr/bin/env python
# -*- coding: utf-8 -*-

#画像を回転させる

#参考サイト
#トモえもんの押し入れ
#http://typer.me.land.to/wiki/index.php?cmd=read&page=%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%2FPygame

#plɹoM ollǝH
#https://dungeonneko.hatenablog.com/entry/2017/05/12/000424kko



import pygame
from pygame.locals import *
import sys

SCREEN_SIZE = (640, 480)

pygame.init()
screen = pygame.display.set_mode(SCREEN_SIZE)
pygame.display.set_caption("イメージの描画 回転")

#http://westplain.sakuraweb.com/translate/pygame/Transform.cgi#pygame.transform.rotate
#引用
#pygame.transform.rotate
#画像を回転させます。
#画像が大きくなることがある
#pygame.transform.rotate(Surface, angle): return Surface
#変更後画像の見栄えは考慮されずに、反時計回りの回転処理を行います。
#angle引数は回転する角度を表し、浮動小数点を設定できます。マイナスの値
#を設定すると時計回りの回転を行います。
#
#回転する角度が90の倍数でない場合は、画像は回転後の描写域を保持するため
#に大きくなります。画像にピクセル単位の透過処理が行われている場合、回転
#によって広がった範囲は透明になります。ピクセル単位の透過でない場合は、
#Surfaceの透明色か左上のピクセルの色が該当範囲に設定されます。


# イメージを用意
Img = pygame.image.load("neko_s.png").convert_alpha()
#posが画像の中心となる
pos = 320, 200
angle = 0
while True:
    pygame.time.wait(10)
    angle += 1
    screen.fill((0, 0, 0))

    Img_kaiten = pygame.transform.rotate(Img, angle)
    w2, h2 = Img_kaiten.get_size() #回転後のサイズ
    # 回転すると画像サイズが変化するので手動で中央寄せ
    pos_new = (pos[0] - w2/2, pos[1] - h2/2)
    screen.blit(Img_kaiten, pos_new)

    pygame.display.update()
    for event in pygame.event.get():
        if event.type == QUIT:
            sys.exit()
~                                                           

0 件のコメント:

コメントを投稿

About

参加ユーザー

連絡フォーム

名前

メール *

メッセージ *

ブログ アーカイブ

ページ

Featured Posts