praegune kellaaeg 19.06.2025 00:44:28
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
Donut
HV vaatleja

liitunud: 21.01.2005
|
09.04.2010 00:22:08
HTML'is tehtu kopeerimine Püütonisse |
|
|
Soov oli siis selline asi kirjutada Püütonis. Asi sai ka enam-vähem valmis, kuid kood venis kuidagi pikaks ja arvan, et asja on võimalik palju lihtsamalt teha - aga kuidas !?
Kirjutatud koodi loogika on järgnev: on võrdsete pikkustega piltide array, funktsioon leiab keskmise pildi ja tema külgnevad pildid - vastavalt suunale liigutab neid kõiki kuni keskime pilt on jõudnud vaateväljast välja.
Siis võtab uueks keskmiseks pildiks vana äärmise pildi, mis on nüüdseks jõudnud keskele jne. Tekst sai segane, aga loodan, et saite põhiprobleemist aru.
See veebileht on muidu ka minu tehtud, aga seal kopeerib ta lõputult ise backgroundi tänu CSS'ile.
import pygame
from pygame.locals import *
from sys import exit
import os
#from threading import _start_new_thread as thread
#from time import sleep
os.environ['SDL_VIDEO_CENTERED'] = '1'
moving = True
image_path = 'C:\py\images'
surfaces = [ ]
defaultpositions = (-480,0,480)
positions = [-480,0,480]
destination = (0 ,480,960)
center_image = 0
speed = 20
def current(center_image, list):
length = len(list)
center = center_image % length
left = (center_image-1) % length
right = (center_image+1) % length
return ( list[left], list[center], list[right])
#Init
pygame.init()
pygame.display.set_caption(' ')
screen_size = (480,480)
screen = pygame.display.set_mode(screen_size,HWSURFACE | DOUBLEBUF,32)
#Load Images and Convert
for image in map(lambda x:os.path.join(image_path, x), os.listdir(image_path)):
surfaces.append( pygame.image.load(image).convert() )
#background = pygame.Surface(screen_size)
while True:
#screen.blit(background, (0,0))
#Event Listener
for event in pygame.event.get():
if event.type == QUIT:
exit()
#Sync
clock = pygame.time.Clock()
clock.tick(30) / 1000.0
if moving == False:
for i, surface in enumerate(current(surfaces) ):
screen.blit(surface ,(defaultpositions[i], 0) )
elif moving == True:
for i, surface in enumerate( current(center_image, surfaces) ):
screen.blit(surface ,(positions[i], 0) )
if positions[i] != destination[i]:
positions[i]+=speed
elif positions[2] == i*surface.get_width():
positions = list(defaultpositions)
center_image-=1
pygame.display.flip()
|
|
|
Kommentaarid: 6 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
6 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|