Example #1
0
	def tick(self):
		if self.step_clock >= (self.step_intervall - self.playfield.level * 70):
			self.step_clock = 0
			if geometry.collide(self.playfield.shape, self.playfield.grid, 0, 1):
				self.playfield.shape_land()
			else:
				self.playfield.shape_tick()
Example #2
0
		def keydown(event):
			s = self.playfield.shape
			g = self.playfield.grid
			
			if event.key == pygame.K_w:
				s.rotate_cw()
				if geometry.collide(s, g, 0, 0):
					s.rotate_ccw()
			
			if event.key == pygame.K_ESCAPE:
				self.done = True
			if event.key == pygame.K_SPACE:
				while not geometry.collide(s, g, 0, +1):
					s.y += 1
			
			if event.key == pygame.K_s and not geometry.collide(s, g, +0, +1):
				s.y += 1
			if event.key == pygame.K_a and not geometry.collide(s, g, -1, +0):
				s.x -= 1
			if event.key == pygame.K_d and not geometry.collide(s, g, +1, +0):
				s.x += 1
Example #3
0
	def shape_land(self):
		geometry.freeze(self.shape, self.grid)
		self.shape = self.next_shape
		self.next_shape = self.factory.spawn()
		lines = geometry.clear(self.grid)
		geometry.drop(self.grid, lines)
		score, message = self.scorefn(lines, self.level)
		self.score += score
		self.level_clears += len(lines)
		if geometry.collide(self.shape, self.grid, 0, 0):
			print("Game Over, your score was {0} pts!".format(self.score))
			quit()

		if self.level_clears >= 10:
			self.level += 1
			self.level_clears = 0
			print("Level up! Level: {0}".format(self.level))