From d6e391eeb2ae8dca1ec641cffd7d30e20b7072e5 Mon Sep 17 00:00:00 2001 From: Jason Rock Date: Fri, 20 Mar 2009 01:49:13 +0000 Subject: Rewrote the pygame code repeatedpic.py is a more pythonic/OO version of the origional drawxos. --- diff --git a/drawxos.py b/drawxos.py index ac1b3cd..fcc6ed9 100644 --- a/drawxos.py +++ b/drawxos.py @@ -2,7 +2,9 @@ import os, sys import pygame from pygame.locals import * -def drawXOs(screen,image,x=3,y=3,backgroundColor=(255,255,255)): + +def drawXOs(image,x=3,y=3,backgroundColor=(255,255,255)): + screen = pygame.display.get_surface() (xsize,ysize) = screen.get_size() (xx,yy) = image.get_size() mult = min(float(xsize)/(xx*x),float(ysize)/(yy*y)) @@ -28,11 +30,11 @@ def drawXOs(screen,image,x=3,y=3,backgroundColor=(255,255,255)): def main(): pygame.init() - screen = pygame.display.set_mode((1280,1000)) + pygame.display.set_mode((1280,1000)) image = pygame.image.load("XO.png") - drawXOs(screen,image,100,50); + drawXOs(image,100,50); raw_input() diff --git a/multiply.py b/multiply.py index c6d4744..c9c24e0 100644 --- a/multiply.py +++ b/multiply.py @@ -10,7 +10,7 @@ class multiply: #set adjustments and cooresponding sliders - yslider = gtk.HScale(self.yadjust) + yslider = gtk.VScale(self.yadjust) xslider = gtk.HScale(self.xadjust) yslider.set_size_request(100,30) xslider.set_size_request(100,30) diff --git a/repeatedpic.py b/repeatedpic.py new file mode 100644 index 0000000..d3d193c --- /dev/null +++ b/repeatedpic.py @@ -0,0 +1,60 @@ +import os, sys, pygame +from pygame.locals import * + +class drawingArea: + + #screen size + ysize = 600 + xsize = 800 + #image to repeatedly draw + image = None + #background colo + background = (255,255,255) + #the pygame window to draw the image on + screen = None + #the offsets so the image is centered on the drawing area + yoffset = 0 + xoffset = 0 + + def __init__(self, xsize = 800, ysize = 600, numx = 12, numy = 12, image = "XO.png", backgroundColor = (255,255,255)): + #initialize the pygame display + self.screen = pygame.display.set_mode((xsize,ysize)) + self.image = pygame.image.load(image) + (self.xsize,self.ysize) = self.screen.get_size() + self.screen.fill(self.background) + + #resize the image to "fit" the drawing area + + def resize_image(self,numx,numy): + (xx,yy) = self.image.get_size() + + mult = min(float(self.xsize)/(xx*numx),float(self.ysize)/(yy*ysize)) + + self.image = pygame.transform.scale(self.image,(int(xx*mult),int(yy*mult))) + yoffset = (self.ysize-numx*self.image.get_width())/2 + xoffset = (self.xsize-numy*self.image.get_height())/2 + + def draw(self,x,y): + self.screen.fill(self.background) + + for i in range(0,x): + for j in range(0,y): + self.screen.blit(self.image,(i*self.image.get_width()+self.xoffset,j*self.image.get_height()+self.yoffset)) + + pygame.display.flip() + + def set_background(self,background): + self.background = background + + def resize_screen(self,xsize, ysize): + self.screen = pygame.display.set_mode((xsize,ysize)) + (self.xsize,self.ysize) = self.screen.get_size() + self.screen.fill(background) + + +if __name__ == '__main__': + pygame.init() + da = drawingArea() + da.draw(4,3) + + raw_input() -- cgit v0.9.1