パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

pythonゲームコーディング11時間目 画像を拡大してみる

2017-08-18 | pygame
横スクロールの背景を作ってみました。
ただ左右のカーソルキーで動くだけです。

temp = pygame.transform.smoothscale(temp, (640,480))
の部分であらかじめ作成済みのtempを拡大しています。

作成環境
Windows7

Python 2.7
Pygame 1.9.2a
(Python Pygameは32bit版)


素材
bgmt.png


bg.png


#!/usr/bin/python
# -*- coding: utf-8 -*-
import pygame
from pygame.locals import *
import random

pygame.init()
window_size = (640, 480)
bg_color = (0, 0, 0)
clock = pygame.time.Clock()
screen = pygame.display.set_mode(window_size)
img_char = pygame.image.load('bg.png')
img_map = pygame.image.load('bgmt.png')

spimg = []
bgx=0
bgy=0

def spset():
    for y in range(10):
        for x in range(10):
            temp = pygame.Surface((16, 16), pygame.SRCALPHA)
            temp.blit(img_char, (0, 0), (x * 16, y * 16, 16, 16))
            spimg.append(temp)

def bgwrite(bx,by):
    temp = pygame.Surface((200, 150))
    temp.blit(img_map, (0, 0), (bx,by, 200, 150))
    temp = pygame.transform.smoothscale(temp, (640,480))
    screen.blit(temp, (0, 0,640,480))
                
def spwrite(cn,x,y):
    screen.blit(spimg[cn], (x*16, y*16))

spset()

pygame.key.set_repeat (1, 1)
end_game = False
cn=10
csw=0
while not end_game:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            end_game = True
        if event.type == KEYDOWN:
            if event.key == K_LEFT:
                if bgx>0:
                    bgx -= 1
            if event.key == K_RIGHT:
                if bgx<1862-200:
                    bgx += 1
    
    screen.fill(bg_color)
    bgwrite(bgx,bgy)
    csw += 1
    if csw>100:
        csw=0 
        cn += 1
    if cn>11:
        cn=10 
    spwrite(cn,20,15)

    pygame.display.flip()
    #clock.tick(50)
    
pygame.quit()
quit()


<参考文献>
Surfaceの編集・加工を行うためのpygameモジュール

最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。