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()
~
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿