diff options
Diffstat (limited to 'anim/Animation Styles/AnimatedSpriteTest.py~')
-rw-r--r-- | anim/Animation Styles/AnimatedSpriteTest.py~ | 289 |
1 files changed, 289 insertions, 0 deletions
diff --git a/anim/Animation Styles/AnimatedSpriteTest.py~ b/anim/Animation Styles/AnimatedSpriteTest.py~ new file mode 100644 index 0000000..1aac3bb --- /dev/null +++ b/anim/Animation Styles/AnimatedSpriteTest.py~ @@ -0,0 +1,289 @@ +from AnimatedSprite import Spritesheet, AnimatedSprite +import sys, pygame, time +pygame.init() + +print "Animated Sprite Test - Authors Dave Silverman and Scott Mengel" + +#-------------------------------------------------------------- +#CONSTANTS AND VARIABLES + +make=input("How many images would you like to load? ") +img={} +ft="" #filetype +r=0 #frame refreshes +i=1 #cycles images +size = width, height = 600,400 #screen sizes +t=0 #trial number + +AnimPerLineArr=[ ["bmp","AnimationPerLine/bmp16/"] , ["bmp","AnimationPerLine/bmp24/"] , ["gif","AnimationPerLine/gif/"] , ["gif","AnimationPerLine/gift/"] , ["png","AnimationPerLine/png/"] , ["png","AnimationPerLine/pngt/"] ] +FixedWidthArr=[ ["bmp","FixedWithSheets/bmp16/"] , ["bmp","FixedWithSheets/bmp24/"] , ["gif","FixedWithSheets/gif/"] , ["gif","FixedWithSheets/gift/"] , ["png","FixedWithSheets/png/"] , ["png","FixedWidthSheets/pngt/"] ] +OneSheetArr=[ ["bmp","OneSheetPerAnimation/bmp16/"] , ["bmp","OneSheetPerAnimation/bmp24/"] , ["gif","OneSheetPerAnimation/gif/"] , ["gif","OneSheetPerAnimation/gift/"] , ["png","OneSheetPerAnimation/png/"] , ["png","OneSheetPerAnimation/pngt/"] ] +IndivFrameArr=[ ["bmp","IndividualFrames/bmp16/"] , ["bmp","IndividualFrames/bmp24/"] , ["gif","IndividualFrames/gif/"] , ["gif","IndividualFrames/gift/"] , ["png","IndividualFrames/png/"] , ["png","IndividualFrames/pngt/"] ] + +screen = pygame.display.set_mode(size) #Screen Set 600x400 +backgroundR = 152 +backgroundG = 0 +backgroundB = 152 +screen.fill((backgroundR, backgroundG, backgroundB)) +#----------------------------------------------------------------- +#Reading Individual Frames + +def readIndivFrames(fileType, path): + switch1 = [ + [pygame.image.load("%sa1/1.%s"%(path,fileType))], + [pygame.image.load("%sa1/2.%s"%(path,fileType))], + [pygame.image.load("%sa1/3.%s"%(path,fileType))], + [pygame.image.load("%sa1/4.%s"%(path,fileType))], + [pygame.image.load("%sa1/5.%s"%(path,fileType))], + [pygame.image.load("%sa1/6.%s"%(path,fileType))], + [pygame.image.load("%sa1/7.%s"%(path,fileType))], + [pygame.image.load("%sa1/8.%s"%(path,fileType))], + [pygame.image.load("%sa1/9.%s"%(path,fileType))] + ] + + switch2 = [ + [pygame.image.load("%sa2/1.%s"%(path,fileType))], + [pygame.image.load("%sa2/2.%s"%(path,fileType))], + [pygame.image.load("%sa2/3.%s"%(path,fileType))], + [pygame.image.load("%sa2/4.%s"%(path,fileType))], + [pygame.image.load("%sa2/5.%s"%(path,fileType))], + [pygame.image.load("%sa2/6.%s"%(path,fileType))], + [pygame.image.load("%sa2/7.%s"%(path,fileType))], + [pygame.image.load("%sa2/8.%s"%(path,fileType))], + [pygame.image.load("%sa2/9.%s"%(path,fileType))] + ] + + instances= [] + + cnt = make + while cnt > 0: + animatedSprites = [] + animatedSprites.append([AnimatedSprite(switch1,'',10),[(40*cnt),0,2,2]]) + + animatedSprites.append([AnimatedSprite(switch2,'',10),[(40*cnt),40,2,2]]) + + instances.append(animatedSprites) + + cnt = cnt - 1 + + trials = 0 + while trials < 5: + + groups = len(instances) - 1 + while groups >= 0: + instances[groups][0][1][0] = 40 * groups + instances[groups][0][1][1] = 0 + instances[groups][1][1][0] = 40 * groups + instances[groups][1][1][1] = 40 + groups = groups - 1 + + changes = 0 + start = time.time() + while changes < 500: + groups = len(instances) - 1 + while groups >= 0: + instances[groups][0][0].nextFrame() + instances[groups][1][0].nextFrame() + + if instances[groups][0][1][0] < 0 or instances[groups][0][1][0] > width - 40: + instances[groups][0][1][2] = instances[groups][0][1][2] * -1 + + if instances[groups][0][1][1] < 0 or instances[groups][0][1][1] > height - 40: + instances[groups][0][1][3] = instances[groups][0][1][3] * -1 + + if instances[groups][1][1][0] < 0 or instances[groups][1][1][0] > width - 40: + instances[groups][1][1][2] = instances[groups][1][1][2] * -1 + + if instances[groups][1][1][1] < 0 or instances[groups][1][1][1] > height - 40: + instances[groups][1][1][3] = instances[groups][1][1][3] * -1 + + + instances[groups][0][1][0] += instances[groups][0][1][2] + instances[groups][0][1][1] += instances[groups][0][1][3] + + instances[groups][1][1][0] += instances[groups][1][1][2] + instances[groups][1][1][1] += instances[groups][1][1][3] + + screen.blit(instances[groups][0][0].image[0], (instances[groups][0][0].image[0].get_rect().move(instances[groups][0][1][0], instances[groups][0][1][1]))) + screen.blit(instances[groups][1][0].image[0], (instances[groups][1][0].image[0].get_rect().move(instances[groups][1][1][0], instances[groups][1][1][1]))) + + groups = groups - 1 + pygame.display.flip() + screen.fill((backgroundR,backgroundG,backgroundB)) + changes = changes + 1 + trials = trials + 1 + print(trials) + print(1/((time.time() -start)/500)) + +#----------------------------------------------------------------- + +def readPerLine(fileType, path): + + spriteSheet1 = Spritesheet(("%sButtons.%s"%(path,fileType))) + + instances= [] + + cnt = make + while cnt > 0: + animatedSprites = [] + animatedSprites.append([AnimatedSprite(spriteSheet1.img_extract(9,2,40,40),("%stext.txt"%(path)),10),[(40*cnt),0,2,2]]) + + animatedSprites.append([AnimatedSprite(spriteSheet1.img_extract(9,2,40,40),("%stext.txt"%(path)),10),[(40*cnt),40,2,2]]) + + instances.append(animatedSprites) + + cnt = cnt - 1 + + trials = 0 + while trials < 5: + + groups = len(instances) - 1 + while groups >= 0: + instances[groups][0][1][0] = 40 * groups + instances[groups][0][1][1] = 0 + instances[groups][1][1][0] = 40 * groups + instances[groups][1][1][1] = 40 + groups = groups - 1 + + changes = 0 + start = time.time() + while changes < 500: + groups = len(instances) - 1 + while groups >= 0: + instances[groups][0][0].nextAnimFrame("anim1") + instances[groups][1][0].nextAnimFrame("anim2") + + if instances[groups][0][1][0] < 0 or instances[groups][0][1][0] > width - 40: + instances[groups][0][1][2] = instances[groups][0][1][2] * -1 + + if instances[groups][0][1][1] < 0 or instances[groups][0][1][1] > height - 40: + instances[groups][0][1][3] = instances[groups][0][1][3] * -1 + + if instances[groups][1][1][0] < 0 or instances[groups][1][1][0] > width - 40: + instances[groups][1][1][2] = instances[groups][1][1][2] * -1 + + if instances[groups][1][1][1] < 0 or instances[groups][1][1][1] > height - 40: + instances[groups][1][1][3] = instances[groups][1][1][3] * -1 + + + instances[groups][0][1][0] += instances[groups][0][1][2] + instances[groups][0][1][1] += instances[groups][0][1][3] + + instances[groups][1][1][0] += instances[groups][1][1][2] + instances[groups][1][1][1] += instances[groups][1][1][3] + + screen.blit(instances[groups][0][0].image, (instances[groups][0][0].image.get_rect().move(instances[groups][0][1][0], instances[groups][0][1][1]))) + screen.blit(instances[groups][1][0].image, (instances[groups][1][0].image.get_rect().move(instances[groups][1][1][0], instances[groups][1][1][1]))) + + groups = groups - 1 + pygame.display.flip() + screen.fill((backgroundR,backgroundG,backgroundB)) + changes = changes + 1 + trials = trials + 1 + print(trials) + print(1/((time.time() -start)/500)) + +#----------------------------------------------------------------- +def readIndivSheet(fileType, path): + + spriteSheet1 = Spritesheet(("%s1.%s"%(path,fileType))) + spriteSheet2 = Spritesheet(("%s2.%s"%(path,fileType))) + + instances= [] + + cnt = make + while cnt > 0: + animatedSprites = [] + animatedSprites.append([AnimatedSprite(spriteSheet1.img_extract(9,1,40,40),("%stext.txt"%(path)),10),[(40*cnt),0,2,2]]) + animatedSprites[0][0].addImages(spriteSheet2.img_extract(9,1,40,40)) + + animatedSprites.append([AnimatedSprite(spriteSheet1.img_extract(9,1,40,40),("%stext.txt"%(path)),10),[(40*cnt),40,2,2]]) + animatedSprites[1][0].addImages(spriteSheet2.img_extract(9,1,40,40)) + + instances.append(animatedSprites) + + cnt = cnt - 1 + + trials = 0 + while trials < 5: + + groups = len(instances) - 1 + while groups >= 0: + instances[groups][0][1][0] = 40 * groups + instances[groups][0][1][1] = 0 + instances[groups][1][1][0] = 40 * groups + instances[groups][1][1][1] = 40 + groups = groups - 1 + + changes = 0 + start = time.time() + while changes < 500: + groups = len(instances) - 1 + while groups >= 0: + instances[groups][0][0].nextAnimFrame("anim1") + instances[groups][1][0].nextAnimFrame("anim2") + + if instances[groups][0][1][0] < 0 or instances[groups][0][1][0] > width - 40: + instances[groups][0][1][2] = instances[groups][0][1][2] * -1 + + if instances[groups][0][1][1] < 0 or instances[groups][0][1][1] > height - 40: + instances[groups][0][1][3] = instances[groups][0][1][3] * -1 + + if instances[groups][1][1][0] < 0 or instances[groups][1][1][0] > width - 40: + instances[groups][1][1][2] = instances[groups][1][1][2] * -1 + + if instances[groups][1][1][1] < 0 or instances[groups][1][1][1] > height - 40: + instances[groups][1][1][3] = instances[groups][1][1][3] * -1 + + + instances[groups][0][1][0] += instances[groups][0][1][2] + instances[groups][0][1][1] += instances[groups][0][1][3] + + instances[groups][1][1][0] += instances[groups][1][1][2] + instances[groups][1][1][1] += instances[groups][1][1][3] + + screen.blit(instances[groups][0][0].image, (instances[groups][0][0].image.get_rect().move(instances[groups][0][1][0], instances[groups][0][1][1]))) + screen.blit(instances[groups][1][0].image, (instances[groups][1][0].image.get_rect().move(instances[groups][1][1][0], instances[groups][1][1][1]))) + + groups = groups - 1 + pygame.display.flip() + screen.fill((backgroundR,backgroundG,backgroundB)) + changes = changes + 1 + trials = trials + 1 + print(trials) + print(1/((time.time() -start)/500)) + + +#----------------------------------------------------------------- +iterator = 0 +print"" +print "Testing One Sheet Per Animation" +print "" +while iterator < len(AnimPerLineArr): + + print"" + print OneSheetArr[iterator][1] + readIndivSheet(OneSheetArr[iterator][0],OneSheetArr[iterator][1]) + iterator += 1 + +iterator = 0 +print"" +print "Testing One Animation Per Line" +print "" +while iterator < len(OneSheetArr): + + print "" + print AnimPerLineArr[iterator][1] + readPerLine(AnimPerLineArr[iterator][0],AnimPerLineArr[iterator][1]) + iterator += 1 + +iterator = 0 +print "" +print "Testing Individual Frames" +print "" +while iterator < len(IndivFrameArr): + + print "" + print IndivFrameArr[iterator][1] + readIndivFrames(IndivFrameArr[iterator][0],IndivFrameArr[iterator][1]) + iterator += 1 |