def redrawAllScene2(self, screen): LargeTree.generate(LargeTree, screen, self.scrollX) Stone.generate(Stone, screen, self.width, self.height, self.scrollX, self.snowed) Waterfall.generate(Waterfall, screen, self.scrollX) Bush.generate(Bush, screen, self.scrollX) for rabbit in Rabbit.rabbits: rabbit.draw(screen, self.scrollX) Bridge.generate(Bridge, screen, self.scrollX) MediumTree.generate(MediumTree, screen, self.scrollX) for bird in Bird.birds: bird.draw(screen, self.scrollX) if self.scrollX > -800: screen.blit(self.rightArrow, self.rightArrowRect) if self.scrollX < 800: screen.blit(self.leftArrow, self.leftArrowRect) #snow if self.snowed == True: for snowflake in self.snowflakes: screen.blit(self.snowflake, snowflake) #bloom instruction if self.currSeason == 0 or self.currSeason == 1: pixel = pygame.font.Font('Pixeled.ttf', 15) instructionSurf = pixel.render("CLICK ON TREES TO MAKE THEM BLOOM", True, (255, 255, 255)) instructionRect = instructionSurf.get_rect() instructionRect.center = (self.width / 2, 775) screen.blit(instructionSurf, instructionRect) elif self.currSeason == 2 or self.currSeason == 3: pixel = pygame.font.Font('Pixeled.ttf', 15) instructionSurf = pixel.render( "CLICK ON TREES TO MAKE THE LEAVES FALL", True, (255, 255, 255)) instructionRect = instructionSurf.get_rect() instructionRect.center = (self.width / 2, 775) screen.blit(instructionSurf, instructionRect) #menu bar screen.blit(self.menuBar, self.menuPos) if self.menuExpanded == True: screen.blit(self.seasonBar, self.seaPos) screen.blit(self.mydrawings, self.mydrawingsPos) if self.arrowShow == True: screen.blit(self.arrow, self.arrowPos) if self.seasonExpanded == True: screen.blit(self.spring, self.springPos) screen.blit(self.summer, self.summerPos) screen.blit(self.autumn, self.autumnPos) screen.blit(self.winter, self.winterPos) if self.currSeason == 0: screen.blit(self.spring1, self.springPos) elif self.currSeason == 1: screen.blit(self.summer1, self.summerPos) elif self.currSeason == 2: screen.blit(self.autumn1, self.autumnPos) elif self.currSeason == 3: screen.blit(self.winter1, self.winterPos) screen.blit(self.makeitsnow, self.makePos) if self.currSeason == 3: screen.blit(self.makeitsnow, self.makePos)
def redrawAllScene1(self, screen): LargeTree.generate(LargeTree, screen, self.scrollX) Stone.generate(Stone, screen, self.width, self.height, self.scrollX, self.snowed) Waterfall.generate(Waterfall, screen, self.scrollX) Bush.generate(Bush, screen, self.scrollX) Bridge.generate(Bridge, screen, self.scrollX) MediumTree.generate(MediumTree, screen, self.scrollX) #snow if self.snowed == True: for snowflake in self.snowflakes: screen.blit(self.snowflake, snowflake) if self.showInstruction == True: pixel = pygame.font.Font('Pixeled.ttf', 15) instructionSurf = pixel.render("PRESS 'SPACE' TO ADD ANIMALS", True, (255, 255, 255)) instructionRect = instructionSurf.get_rect() instructionRect.center = (self.width / 2, 775) screen.blit(instructionSurf, instructionRect) if self.showNavigation == True: screen.blit(self.navigation, self.navRect) if self.scrollX > -800: screen.blit(self.rightArrow, self.rightArrowRect) if self.scrollX < 800: screen.blit(self.leftArrow, self.leftArrowRect) screen.blit(self.menuBar, self.menuPos) if self.menuExpanded == True: screen.blit(self.seasonBar, self.seaPos) if self.arrowShow == True: screen.blit(self.arrow, self.arrowPos) if self.seasonExpanded == True: screen.blit(self.spring, self.springPos) screen.blit(self.summer, self.summerPos) screen.blit(self.autumn, self.autumnPos) screen.blit(self.winter, self.winterPos) if self.currSeason == 0: screen.blit(self.spring1, self.springPos) elif self.currSeason == 1: screen.blit(self.summer1, self.summerPos) elif self.currSeason == 2: screen.blit(self.autumn1, self.autumnPos) elif self.currSeason == 3: screen.blit(self.winter1, self.winterPos) if self.currSeason == 3: screen.blit(self.makeitsnow, self.makePos)
def test_ClassWhichTakesVector(self): waterfall = Waterfall([]) self.assertIsNotNone(waterfall)
def initScene1(self): season = self.seasons[self.currSeason] #reset everything before changing the season Stone.backStones = [] Stone.middleStones = [] Stone.frontStones = [] Stone.dims = [] Stone.stoneSurface = dict() Stone.backSurface = dict() Stone.middleSurface = dict() Stone.frontSurface = dict() Tree.mediumTrees = [] Tree.bushes = [] Tree.largeTrees = [] Bridge.bridges = [] Waterfall.waterfalls = [] #generate stones for corner in Stone.cornerData: if corner[1] <= self.height / 3: layer = 0 h = random.randint(500, 800) w = random.randint(50, 100) for dim in range(random.randint(0, 4)): length = random.randint(5, w // 3) dimx = random.randint(corner[0], corner[0] + w * 2 // 3) dimy = 790 - h Stone.dims.append((length, dimx, dimy)) Stone.backStones.append((corner[0], 800, w, h, layer)) #add to surface dictionary for i in range(corner[0], corner[0] + w): Stone.stoneSurface[i] = 789 - h Stone.backSurface[i] = 789 - h elif corner[1] <= self.height * 2 / 3: layer = 1 h = random.randint(100, 500) w = random.randint(100, 150) for dim in range(random.randint(0, 4)): length = random.randint(5, w // 3) dimx = random.randint(corner[0], corner[0] + w * 2 // 3) dimy = 790 - h Stone.dims.append((length, dimx, dimy)) for i in range(corner[0], corner[0] + w): Stone.stoneSurface[i] = 789 - h Stone.middleSurface[i] = 789 - h Stone.middleStones.append((corner[0], 800, w, h, layer)) else: layer = 2 h = random.randint(20, 100) w = random.randint(50, 150) for dim in range(random.randint(0, 4)): length = random.randint(5, w // 3) dimx = random.randint(corner[0], corner[0] + w * 2 // 3) dimy = 790 - h Stone.dims.append((length, dimx, dimy)) for i in range(corner[0], corner[0] + w): Stone.stoneSurface[i] = 789 - h Stone.frontSurface[i] = 789 - h Stone.frontStones.append((corner[0], 800, w, h, layer)) #trees for tree in Tree.mediumTreeData: a = tree[0] + 800 b = Stone.stoneSurface.get(a, 800) if b != 800: Tree.mediumTrees.append(MediumTree(a, b, season)) x = tree[0] y = Stone.stoneSurface.get(x, 800) Tree.mediumTrees.append(MediumTree(x, y, season)) c = tree[0] - 800 d = Stone.stoneSurface.get(c, 800) if d != 800: Tree.mediumTrees.append(MediumTree(c, d, season)) for bush in Tree.bushData: a = bush[0] + 800 b = Stone.stoneSurface.get(a, 800) if b != 800: Tree.bushes.append(Bush(a, b, season)) x = bush[0] y = Stone.stoneSurface.get(x, 800) Tree.bushes.append(Bush(x, y, season)) c = bush[0] - 800 d = Stone.stoneSurface.get(c, 800) if d != 800: Tree.bushes.append(Bush(c, d, season)) for largeTree in Tree.largeTreeData: x = largeTree[0] y = 800 height = random.randint(300, 600) Tree.largeTrees.append(LargeTree(x, y, height, season)) Tree.largeTrees.append(LargeTree(x + 800, y, height, season)) Tree.largeTrees.append(LargeTree(x - 800, y, height, season)) #identify biggest gap gapOriginX,gapDestinationX,gapOriginY,gapDestinationY =\ Stone.findBiggestGap(Stone,Stone.stoneSurface) #setup back stones for waterfall self.backStoneX = gapOriginX + (gapOriginX - gapDestinationX) / 2 self.backStoneH = random.randint(500, 800) self.backStoneW = random.randint(50, 100) Stone.backStones.append( (self.backStoneX, 800, self.backStoneW, self.backStoneH, 0)) self.middleStoneX = self.backStoneX + 30 self.middleStoneH = random.randint(100, 500) self.middleStoneW = random.randint(100, 150) Stone.middleStones.append( (self.middleStoneX, 800, self.middleStoneW, self.middleStoneH, 1)) self.frontStoneX = self.middleStoneX + 30 self.frontStoneH = random.randint(20, 100) self.frontStoneW = random.randint(50, 150) Stone.frontStones.append( (self.frontStoneX, 800, self.frontStoneW, self.frontStoneH, 2)) Waterfall.waterfalls.append(Waterfall(self.backStoneX,800-self.backStoneH,\ self.backStoneW,self.backStoneH,self.middleStoneX,800-self.middleStoneH,\ self.middleStoneW,self.middleStoneH,self.frontStoneX,800-self.frontStoneH, self.frontStoneW,self.frontStoneH)) #identify bridge gaps #back if Stone.findBiggestGap(Stone, Stone.backSurface) != None: backX1,backX2,backY1,backY2 =\ Stone.findBiggestGap(Stone,Stone.backSurface) Bridge.bridges.append(\ Bridge(backX1,backX2,backY1,backY2)) #middle if Stone.findBiggestGap(Stone, Stone.middleSurface) != None: middleX1,middleX2,middleY1,middleY2 =\ Stone.findBiggestGap(Stone,Stone.middleSurface) Bridge.bridges.append(\ Bridge(middleX1,middleX2,middleY1,middleY2)) #front if Stone.findBiggestGap(Stone, Stone.frontSurface) != None: frontX1,frontX2,frontY1,frontY2 =\ Stone.findBiggestGap(Stone,Stone.frontSurface) Bridge.bridges.append(\ Bridge(frontX1,frontX2,frontY1,frontY2)) #instruction self.showInstruction = False self.showNavigation = True self.timer = 0 self.leftArrow = pygame.image.load('menu/leftarrow.png') self.rightArrow = pygame.image.load('menu/rightarrow.png') self.leftArrowRect = self.leftArrow.get_rect() self.rightArrowRect = self.rightArrow.get_rect() self.leftArrowRect.center = (50, self.height / 2) self.rightArrowRect.center = (1230, self.height / 2) self.navigation = pygame.image.load('menu/lookaround.png') self.navRect = self.navigation.get_rect() self.navRect.center = (self.width / 2, 30) #menubar self.menuBar = pygame.image.load('menu/menu.png') self.menuPos = (1150, 20) self.menuExpanded = False self.seasonBar = pygame.image.load('menu/seasons.png') self.seaPos = (960, 20) self.seasonExpanded = False self.arrow = pygame.image.load('menu/downarrow.png') self.arrowPos = (1055, 75) self.arrowShow = False self.spring = pygame.image.load('menu/spring.png') self.spring1 = pygame.image.load('menu/spring1.png') self.springPos = (960, 70) self.summer = pygame.image.load('menu/summer.png') self.summer1 = pygame.image.load('menu/summer1.png') self.summerPos = (960, 120) self.autumn = pygame.image.load('menu/autumn.png') self.autumn1 = pygame.image.load('menu/autumn1.png') self.autumnPos = (960, 170) self.winter = pygame.image.load('menu/winter.png') self.winter1 = pygame.image.load('menu/winter1.png') self.winterPos = (960, 220) self.makeitsnow = pygame.image.load('menu/makeitsnow.png') self.makePos = (20, 20) self.snowed = False #snow self.snowDensity = 30 self.snowSpeed = 10 self.snowflakes = [] self.snowflake = pygame.image.load('menu/snowflake.png') for i in range(self.snowDensity): snowX = random.randint(0, 1280) snowY = random.randint(0, 800) self.snowflakes.append((snowX, snowY))
def test_WaterHeightForLongHighLowMediumLowWellWithStepAtEnd(self): waterfall = Waterfall([3, 1, 1, 2, 1]) self.assertListEqual([2, 2, 2, 2, 1], waterfall.getHeights())
def test_WaterHeightForLongHighLowMediumWell(self): waterfall = Waterfall([3, 1, 1, 2]) self.assertListEqual([2, 2, 2, 2], waterfall.getHeights())
def test_WaterHeightForMediumLowHighWell(self): waterfall = Waterfall([2, 1, 3]) self.assertListEqual([2, 2, 2], waterfall.getHeights())
def test_WaterHeightForHighLowHighWell(self): waterfall = Waterfall([1, 0, 1]) self.assertListEqual([1, 1, 1], waterfall.getHeights())
from Waterfall import Waterfall waterfall = Waterfall() waterfall.start()