横スクロールの背景を作ってみました。
ただ左右のカーソルキーで動くだけです。
temp = pygame.transform.smoothscale(temp, (640,480))
の部分であらかじめ作成済みのtempを拡大しています。
作成環境
Windows7
Python 2.7
Pygame 1.9.2a
(Python Pygameは32bit版)
素材
bgmt.png
bg.png
<参考文献>
Surfaceの編集・加工を行うための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モジュール