View Single Post
Khertan's Avatar
Posts: 1,012 | Thanked: 817 times | Joined on Jul 2007 @ France
#5
yes of course ... but it 's just a test a this time of 5 covers movig on the screen. It s really sadly coded !

Here the source (Sorry can't upload a complete zip as this forum only accept 96Kb max files):

Just get the cover i ve upload and duplicate it to "cover1.jpg" "cover2.jpg" "cover3.jpg" "cover4.jpg" "cover5.jpg" in a "covers" folder, located in the flow.py source code folder.

Code:
#!/usr/bin/env python

import os, pygame
from pygame.locals import *
import Image
import StringIO
import time

class Cover:
    def __init__(self, pos):
        self.image = pygame.Surface((125,125))
        #self.origineimage = image
        self.cover_url = os.path.join('covers/cover'+str(pos)+'.jpg')
        #print self.cover_url
        self.pil_image = Image.open(self.cover_url)
        #print self.pil_image
        self.speed = 5
        self.pos = self.image.get_rect().move((800 / 6) * (pos - 1 ), 50)
        #self.oldpos = self.pos
        #self.oldpos.left = self.pos.left - 999
        #print self.pos
        self.perspectiv(00,00)
        
    def move(self):
        self.pos = self.pos.move(self.speed, 0)
        if (self.pos.right > 800):
            self.pos.left = 0
            
        #if (abs(self.pos.left-self.oldpos.left)) > 25:
        #  self.oldpos = self.pos
        if (self.pos.left + 77)<400:
          leftangle = 0
          rightangle = (400 - (self.pos.left + 77)) / 2
        else:
          leftangle = ((self.pos.left+77) - 400 ) / 2
          rightangle = 0
        self.perspectiv(rightangle,leftangle)
        
		
    def perspectiv(self,z,w):
      #pil_string_image = pygame.image.tostring(self.origineimage, "RGBA",False)
      #pil_string_image = self.image.tostring()
      #pil_image = Image.fromstring("RGBA",(250,250),pil_string_image)      
      #pil_image = Image.open(self.cover_url)
      perspectiv_pil_image = self.pil_image.transform((125,125),Image.QUAD,(0-w,-w,0-w,125+w,125+z,125+z,125+z,-z))
      #mode = pil_image.mode
      #size = pil_image.size
      #data = pil_image.tostring()

      #assert mode in "RGB", "RGBA"
      #self.image = pygame.image.fromstring(data, size, mode)

      f = StringIO.StringIO()
      perspectiv_pil_image.save(f, "bmp")
      f.seek(0)
      self.image = pygame.image.load(f)
      f.close()
      
#quick function to load an image
def load_image(name):
    path = os.path.join('covers', name)
    return pygame.image.load(path).convert()


#here's the full code
def main():
    pygame.init()
    screen = pygame.display.set_mode((800, 480))

    #coverimg1 = load_image('cover1.jpg')
    #coverimg2 = load_image('cover2.jpg')
    #coverimg3 = load_image('cover3.jpg')
    #coverimg4 = load_image('cover4.jpg')
    #coverimg5 = load_image('cover5.jpg')
    
    #background = load_image('background.png')
    background = pygame.Surface((800,480))
    #Display Background
    screen.blit(background, (0, 0))

	#Define covers
    objects = []
    o = Cover(1)
    objects.append(o)
    o = Cover(2)
    objects.append(o)
    o = Cover(3)
    objects.append(o)
    o = Cover(4)
    objects.append(o)
    o = Cover(5)
    objects.append(o)
    
    while 1:
        for event in pygame.event.get():
            if event.type in (QUIT, KEYDOWN):
                return

        for o in objects:
            screen.blit(background, o.pos, o.pos)
        for o in objects:
            o.move()
            screen.blit(o.image, o.pos)

        pygame.display.update()



if __name__ == '__main__': main()
Attached Images
 

Last edited by Khertan; 2007-09-19 at 14:53.