Example #1
1
    def __init__(self, game, name, color):
        self.game = game
        self.name = name
        self.score = 0
        self.keys_state = 0
        self.alive = True

        common_randomizer = random_of(self.game.common_random_seed)
        def random():
            if self.game.net_config.WORM_SYNC_HOLES:
                return common_randomizer
            else:
                return self.game.random()
        self.worm = Worm(random, config.WORM_AREA_SIZE,
                         self.game.net_config, self.game.worm_area, color)
        self.reset()
Example #2
0
 def emplace_worm(self, x, y, orient=0, weights=None, saturation=100):
     new_worm = Worm(self.act_id, x, y, orient, weights)
     new_worm.set_saturation(saturation)
     self.worms.append(new_worm)
     self.act_id += 1
     self.act_worms += 1
     return True
Example #3
0
    def __init__(self, screen):
        self.screen = screen
        self.running = True

        self.blue_worms = []
        self.red_worms = []

        # noinspection PyArgumentList
        self.blue_worms.append(Worm(Team.BLUE, pygame.Vector2(600, 300)))
        # noinspection PyArgumentList
        self.red_worms.append(Worm(Team.RED, pygame.Vector2(700, 300)))
        # noinspection PyArgumentList
        self.blue_worms.append(Worm(Team.BLUE, pygame.Vector2(800, 300)))
        # noinspection PyArgumentList
        self.red_worms.append(Worm(Team.RED, pygame.Vector2(900, 300)))

        self.background = pygame.image.load("assets/background.png")
        self.foreground = pygame.image.load(
            "assets/foreground.png").convert_alpha()

        self.mask_image = pygame.image.load("assets/mask.png").convert_alpha()
        self.mask = None
        self.masked_foreground = None
        self.recalculate_mask()

        self.active_worm = self.worms()[0]
        self.active_worm.walking_credits = 200
        self.last_blue = -1
        self.last_red = -1
        self.projectile = None
        self.state = GameState.WF_PLAYER_ACTION
        self.current_team = self.active_worm.team

        self.skip_next_round_end_check = False

        self.original_wind_arrow = pygame.image.load(
            "assets/wind_arrow.png").convert_alpha()
        self.wind = None
        self.wind_arrow = None
        self.wind_font = pygame.font.Font("assets/font.ttf", 40)
        self.game_over_font = pygame.font.Font("assets/font.ttf", 80)
        self.wind_text = None
        self.randomize_wind()

        self.clock = pygame.time.Clock()
Example #4
0
import random
from Food import Food
from Worm import Worm

w = 500
h = 500

screen = pygame.display.set_mode((w, h))

clock = pygame.time.Clock()

pygame.mixer.init()
chomp = pygame.mixer.Sound("chomp.wav")

score = 0
worm = Worm(screen)
food = Food(screen)
running = True
while running:

    screen.fill((0, 0, 0))
    worm.move()
    worm.draw()
    food.draw()

    if worm.crashed:
        running = False
    elif worm.x <= 0 or worm.x >= w - 1:
        running = False
    elif worm.y <= 0 or worm.y >= h - 1:
        running = False
Example #5
0
def game(levels):

    global level
    level = levels

    global foodlet
    global wormlet

    foodlet = Food()
    prt1 = Loc(250, 250)
    wormlet = Worm([prt1])

    game = True

    while game == True:

        last = copy.deepcopy(wormlet.get(wormlet.length() - 1))

        events = pygame.event.get()
        for event in events:
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    wormlet.setdir('left')

                elif event.key == pygame.K_RIGHT:
                    wormlet.setdir('right')

                elif event.key == pygame.K_UP:
                    wormlet.setdir('up')

                elif event.key == pygame.K_DOWN:
                    wormlet.setdir('down')

                elif event.key == pygame.K_q:
                    game = False

                elif event.key == pygame.K_p:
                    a = pause()
                    if a == 'menu':
                        game = False

        wormlet.update()  #advances worm in its direction

        first = wormlet.get(0)

        if foodlet.getlocation() == wormlet.getlocation():
            wormlet.add(last)
            foodlet.reset()
        while (level.checkloc(foodlet.getlocation()) == True
               or wormlet.checkloc(foodlet.getlocation()) == True):
            foodlet.reset()

        display()

        if (level.checkloc(first) == True):
            game = False

        for x in range(1, wormlet.length()):
            if first == wormlet.get(x):
                game = False

        window.blit(pygame.transform.smoothscale(screen, (ssize)), (0, 0))
        pygame.display.flip()
        pygame.display.update()
        if level.num == 2:
            pygame.time.wait(45)
        elif level.num == 1:
            pygame.time.wait(65)
        else:

            pygame.time.wait(80)
Example #6
0
player = Player(playerx, playery, playercharacter, board)

def printboard():
    #set the playercharacter to the board for drawing
    board[player.y][player.x] = playercharacter

    for line in range(player.y - 12, player.y + 11):
        for column in range(player.x - 40, player.x + 40):
            print(board[line][column], end="")
        print("")

    #after rendering, remove the character from the board
    board[player.y][player.x] = ' '

worm = Worm(0, 0, board, player)
worm.floodfill()
level1.createdoors()
level1.clearrandchars()

print(' \n' * 80)
print("Welcome to the Lazy Stronghold, press any key to play")
print("Controls are as follows: WASD for directions, q to quit and h for help")
print(level1.wallchar +
    " signs are walls, you are the "
    +  player.character +
    " and " +
    level1.outofboundschar +
    " is out of bounds"
)
print(time.clock() - inittime)
Example #7
0
def game(levels):
		
		global level 
		level = levels

		global foodlet
		global wormlet 

		foodlet = Food()
		prt1=Loc(250,250)
		wormlet = Worm([prt1])
		
		game = True
		
		while game == True:

			last = copy.deepcopy(wormlet.get(wormlet.length()-1))
	
			events = pygame.event.get()
			for event in events:
				if event.type == pygame.KEYDOWN:
					if event.key == pygame.K_LEFT:
						wormlet.setdir('left')
					
					elif event.key == pygame.K_RIGHT:
						wormlet.setdir('right')

					elif event.key == pygame.K_UP:
						wormlet.setdir('up')

					elif event.key == pygame.K_DOWN:
						wormlet.setdir('down')

					elif event.key == pygame.K_q:
						game = False

					elif event.key == pygame.K_p:
						a = pause()
						if a == 'menu':
							game = False

			
			wormlet.update() #advances worm in its direction
						
			first=wormlet.get(0)
			
			if foodlet.getlocation() == wormlet.getlocation():
				wormlet.add(last)
				foodlet.reset()
			while (level.checkloc(foodlet.getlocation()) == True or wormlet.checkloc(foodlet.getlocation()) == True):
				foodlet.reset()
							
			display()

			if (level.checkloc(first) == True):
				game = False
	
			for x in range (1, wormlet.length()):
				if first == wormlet.get(x):
					game = False
			
			window.blit(pygame.transform.smoothscale(screen,(ssize)),(0,0))
			pygame.display.flip()
			pygame.display.update()	
			if level.num == 2:
				pygame.time.wait(45)
			elif level.num == 1:
				pygame.time.wait(65)
			else:
				
				pygame.time.wait(80)
Example #8
-1
class Player(object):
    def __init__(self, game, name, color):
        self.game = game
        self.name = name
        self.score = 0
        self.keys_state = 0
        self.alive = True

        common_randomizer = random_of(self.game.common_random_seed)
        def random():
            if self.game.net_config.WORM_SYNC_HOLES:
                return common_randomizer
            else:
                return self.game.random()
        self.worm = Worm(random, config.WORM_AREA_SIZE,
                         self.game.net_config, self.game.worm_area, color)
        self.reset()
    def __repr__(self):
        return '<%s(%s)>' % (self.__class__.__name__, self.name)
    def color(self):
        return self.worm.color
    def reset(self):
        """Resets the player and worm parameters to level-start state.
        
        Note this uses random and is therefore only callable after
        random seed synchronization (or followed by a
        sync_players_states)"""
        width, height = config.WORM_AREA_SIZE
        outline_width = config.POS_RANDOM_OUTLINE_WIDTH
        random = self.game.random()
        pos = (random.randrange(outline_width, width - outline_width),
               random.randrange(outline_width, height - outline_width))
        self.worm.reset(pos)
        self.alive = True
    def kill(self):
        self.alive = False
    def increase_score(self):
        self.score += 1
    def update(self):
        if not self.alive:
            return
        angle_diff = math.radians(float(self.game.net_config.ANGLES_PER_SECOND) /
                                  self.game.net_config.GAME_ITERATIONS_PER_SECOND)
        if self.keys_state & PlayerController.LEFT:
            self.worm.left(angle_diff)
        elif self.keys_state & PlayerController.RIGHT:
            self.worm.right(angle_diff)
        try:
            self.worm.forward(self.game.speed)
        except Collision:
            self.kill()
            raise PlayerDied()

    def key_event(self, is_down, event):
        # Ignore keys by default
        pass