1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
#! /usr/bin/env python
import pygame
from pygame.locals import *
import time
from Scene import Scene
from DrawableObject import DrawableObject
from DynamicDrawableObject import DynamicDrawableObject
pygame.init()
FRAME=2500 #setting number of frames per trial
screenWidth = 600 #screen width
screenHeight = 400 #screen height
numImages = 4 #number of copies of images
numGroups = 1
maxTrial = 5 # multiple trials, but hard coded in this test
screen = pygame.display.set_mode( [int(screenWidth),
int(screenHeight)] ) #Setting the screen size to the given size
pygame.display.set_caption("Sprite Speed Test Window")
background = pygame.image.load("Room.gif")#Loading my background image
screen.blit(background,[0,0])#blitting my background to screen
pygame.display.flip()#flipping screen
#Creating my list of images to use later
surfaceList = [
pygame.image.load(
"./Animation Styles/IndividualFrames/bmp16/a2/1.bmp").convert(),
pygame.image.load(
"./Animation Styles/IndividualFrames/bmp16/a2/2.bmp").convert(),
pygame.image.load(
"./Animation Styles/IndividualFrames/bmp16/a2/3.bmp").convert(),
pygame.image.load(
"./Animation Styles/IndividualFrames/bmp16/a2/4.bmp").convert(),
pygame.image.load(
"./Animation Styles/IndividualFrames/bmp16/a2/5.bmp").convert(),
pygame.image.load(
"./Animation Styles/IndividualFrames/bmp16/a2/6.bmp").convert(),
pygame.image.load(
"./Animation Styles/IndividualFrames/bmp16/a2/7.bmp").convert(),
pygame.image.load(
"./Animation Styles/IndividualFrames/bmp16/a2/8.bmp").convert(),
pygame.image.load(
"./Animation Styles/IndividualFrames/bmp16/a2/9.bmp").convert()
]
for aTrial in range(maxTrial):
start = time.time()#starting timer
#creating my DynamicDrawableObject object using my previously made images list
a = DynamicDrawableObject(surfaceList,'', 72, 40, 40 , 2,2)
b = DynamicDrawableObject(surfaceList,'', 24, 80, 80 , 2,2)
c = DynamicDrawableObject(surfaceList,'', 12,120, 120, 2,2)
d = DynamicDrawableObject(surfaceList,'', 1, 160, 160, 2,2)
sceneList=[Scene(a),] #creating my array of scenes
sceneList[0].addObjects([b,c,d])
for sc in range(numGroups):
for img in range(sceneList[sc].getListSize()):
sceneList[sc].getObject(img).setSpeed(2,2)
#printing time to load images and stuff
print (time.time()-start) ,
print " -- Time to load"
#setting up timer stuff
clock = pygame.time.Clock()
clock.tick()
start = time.time()
#loop that goes through and upodates my objects
for frame in range(FRAME):
time.sleep(.25)
dirtyList=[]
for sc in range(numGroups):
for img in range(sceneList[sc].getListSize()):
thisrect = sceneList[sc].getObject(img).getRectangle()
if thisrect.right>screenWidth or thisrect.left<0:
sceneList[sc].setSpeed( sceneList[sc].getXSpeed()*-1, None )
if thisrect.bottom>screenHeight or thisrect.top<0:
sceneList[sc].setSpeed( None , sceneList[sc].getYSpeed()*-1 )
sceneList[sc].update(clock.get_time()) #calls the update function for my DDO
clock.tick() #ticks clock
dirtyList.extend( sceneList[sc].draw(screen) )#adding stuff that has been updated to my dirty list
pygame.display.update(dirtyList) #updates the screen with the dirty list
for sc in range(numGroups):
sceneList[sc].clear(screen, background) #clears stuff behind images based on given background image.
|