Beispiel #1
0
 def CreateObjectsForPlay(self):
     """Creates instances of various objects in the game"""
     
     self.__board = Board()
     self.__player = Player(self.__board)
     self.__donkeys = []
     self.__donkeys.append(Donkey(self.__board, self.__player, (4,2)))
Beispiel #2
0
    def ReInitializeForLevelUp(self):
        """To Reinitialise variables, objects etc for Level up and increase the number of donkeys"""

        self.CreateHelperVariables()
        self.__board.Initialize()
        self.__donkeys.append(Donkey(self.__board, self.__player, (4, 30)))        
        self.__player.UpdatePosition((28, 2))
        self.__board.setChar((28, 2), "P")
        pygame.display.flip()
Beispiel #3
0
    def placeDonkey(self):
        ''' Places Donkey on the map initially '''

        donkeyi = self.floor[-2:-1][0] - 1
        donkeyj = 0
        PLACED = False

        while not PLACED:
            donkeyj = random.randint(1, COLUMNS - 1)
            if self.orign[donkeyi][donkeyj] == 0 and self.orign[
                    donkeyi + 1][donkeyj] == 1 and self.board[donkeyi][
                        donkeyj] != DONKEYCHAR:
                PLACED = True
                self.board[donkeyi][donkeyj] = DONKEYCHAR
        self.Donkey.append(Donkey(donkeyi, donkeyj))
Beispiel #4
0
    def __init__(self):
        WIDTH = 192
        HEIGHT = 250
        CAPTION = "Mario Game Beta 5.0"

        self.mario = Mario()
        self.kong = Donkey()
        self.win_condition = False

        self.barrels = {}
        #######################
        self.platforms = {}
        for i in range(1, 24):
            if i < 3:
                name = 'platform_' + str(i)
                x = 16 * (i - 1)
                y = 242
                obj = statics.Platform(x, y)
                self.platforms[name] = obj
            elif i < 14:
                for j in range(2):
                    if j == 0:
                        name = 'platform_' + str(i) + '.' + str(j + 1)
                        x = 16 * (i - 1)
                        y = 242 - (i - 2)
                        obj = statics.Platform(x, y)
                        self.platforms[name] = obj
                    elif j == 1:
                        name = 'platform_' + str(i) + '.' + str(j + 1)
                        x = 16 * (i - 1)
                        y = 140 - (i - 2)
                        obj = statics.Platform(x, y)
                        self.platforms[name] = obj
            elif i > 13:
                if i == 16:
                    name = 'platform_' + str(i)
                    x = 16 * (i - 15)
                    y = 180 + 1
                    obj = statics.Platform(x, y)
                    self.platforms[name] = obj
                else:
                    name = 'platform_' + str(i)
                    x = 16 * (i - 15)
                    y = 180 + (i - 15)
                    obj = statics.Platform(x, y)
                    self.platforms[name] = obj

        for i in range(10):
            if i < 3:
                name = 'platform' + str(100 + i)
                x = 16 * i
                y = 70
                obj = statics.Platform(x, y)
                self.platforms[name] = obj
            else:
                name = 'platform' + str(100 + i)
                x = 16 * i
                y = 70 + (i - 2)
                obj = statics.Platform(x, y)
                self.platforms[name] = obj

        for i in range(6):
            name = 'platform' + str(200 + i)
            x = 100 + 16 * i
            y = 40
            obj = statics.Platform(x, y)
            self.platforms[name] = obj
        ################
        self.invisiplats = {}
        name = 'inv_1'
        x = 145
        y = 188
        obj = statics.InvisiPlat(x, y)
        self.invisiplats[name] = obj
        name = 'inv_2'
        x = 160
        y = 77
        obj = statics.InvisiPlat(x, y)
        self.invisiplats[name] = obj
        name = 'inv_3'
        x = 32
        y = 139
        obj = statics.InvisiPlat(x, y)
        self.invisiplats[name] = obj
        ################
        self.ladders = {}

        name = 'ladder_1'
        x = 118
        yl = 229
        yh = 187
        obj = statics.Ladder(x, yh, yl)
        self.ladders[name] = obj

        name = 'ladder_2'
        x = 50
        yl = 176
        yh = 138
        obj = statics.Ladder(x, yh, yl)
        self.ladders[name] = obj

        name = 'ladder_3'
        x = 130
        yl = 126
        yh = 76
        obj = statics.Ladder(x, yh, yl)
        self.ladders[name] = obj

        name = 'ladder_4'
        x = 101
        yl = 67
        yh = 41
        obj = statics.Ladder(x, yh, yl)
        self.ladders[name] = obj

        ##################
        self.scores_path = 'highscores.txt'
        try:
            with open(self.scores_path, "r") as file:
                self.highscores = eval(file.readline())

        except:
            self.highscores = []
            for i in range(5):
                self.highscores.append(0)

            with open(self.scores_path, "w") as file:
                file.write(str(self.highscores))
        ##################
        """
        We thought at first that ladders could be iterably generated, but soon
        changed our mind. 
        self.ladders = {}
        for i in range(1,9):
            name = 'ladder_' + str(i)
            x = 117
            y = 236-6*i
            obj = classes.Ladder(x,y)
            self.ladders[name] = obj
        """
        pyxel.init(WIDTH, HEIGHT)
        pyxel.load("opjects.pyxres")
        pyxel.playm(0, loop=True)

        pyxel.run(self.update, self.draw)
Beispiel #5
0
def main():

    l = 1  # variable to store the present level

    score = 0

    #initialising pygame

    pygame.init()

    # declaring game objects for the first time

    size = [constants.SCREEN_WIDTH, constants.SCREEN_HEIGHT]
    screen = pygame.display.set_mode(size)

    pygame.display.set_caption("Donkey Kong")

    # declaring player object

    player = Player()

    # donkey object

    donkey = Donkey()

    donkey.rect.x = random.randrange(100, 280)
    donkey.rect.y = 89

    donkey_list = pygame.sprite.Group()

    donkey_list.add(donkey)

    # fireball instance

    fireball_list = pygame.sprite.Group()
    fireball = Fireball()
    fireball.rect.x = donkey.rect.x + 40
    fireball.rect.y = donkey.rect.y
    fireball_list.add(fireball)

    level_list = []
    level_list.append(level.Board(player))

    current_level_no = 0
    current_level = level_list[current_level_no]

    active_sprite_list = pygame.sprite.Group()
    player.level = current_level

    player.rect.x = 40
    player.rect.y = constants.SCREEN_HEIGHT - player.rect.height

    active_sprite_list.add(player)
    active_sprite_list.add(donkey)

    done = False

    background_image = pygame.image.load("./images/background2.jpg").convert()
    background_image = pygame.transform.scale(background_image, [1000, 700])

    clock = pygame.time.Clock()

    restart = False

    # Main loop where all the updation takes place

    while not done:

        f = 0  # flag variable

        # to check which keys are pressed

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                done = True

            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_q:
                    done = True

            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_a:
                    player.go_left()
                if event.key == pygame.K_d:
                    player.go_right()
                if event.key == pygame.K_SPACE:
                    player.jump()
                if event.key == pygame.K_w and len(
                        pygame.sprite.spritecollide(
                            player, player.level.ladder_list, False)) > 0:
                    f = 1
                    player.go_up()
                if event.key == pygame.K_s and len(
                        pygame.sprite.spritecollide(
                            player, player.level.ladder_list, False)) > 0:
                    f = 1
                    player.go_down()

            if event.type == pygame.KEYUP:
                if event.key == pygame.K_a and player.change_x < 0:
                    player.stop()

                if event.key == pygame.K_d and player.change_x > 0:
                    player.stop()

                if event.key == pygame.K_w and len(
                        pygame.sprite.spritecollide(
                            player, player.level.ladder_list, False)) > 0:
                    player.stop2()
                if event.key == pygame.K_s and len(
                        pygame.sprite.spritecollide(
                            player, player.level.ladder_list, False)) > 0:
                    player.stop2()

        #checking for collisions

        if len(
                pygame.sprite.spritecollide(player, player.level.ladder_list,
                                            False)) > 0:
            f = 1

        if len(pygame.sprite.spritecollide(player, donkey_list, False)) > 0:
            done = True

        if len(pygame.sprite.spritecollide(player, fireball_list, False)) > 0:
            player.lives -= 1
            player.score -= 25
            player.reset()

        if player.lives == 0:
            done = True

        if len(
                pygame.sprite.spritecollide(player, player.level.queen_list,
                                            False)) > 0:
            restart = True

        ######### Restarts game when queen is rescued ##########

        if restart == True:

            l += 1

            score += player.score

            player = Player()

            donkey = Donkey()

            donkey.rect.x = random.randrange(100, 280)
            donkey.rect.y = 89

            donkey_list = pygame.sprite.Group()

            donkey_list.add(donkey)

            # fireball instance

            fireball_list = pygame.sprite.Group()
            fireball = Fireball()

            fireball.rect.x = donkey.rect.x + 40
            fireball.rect.y = donkey.rect.y
            fireball.speed = l
            fireball_list.add(fireball)

            level_list = []
            level_list.append(level.Board(player))

            current_level_no = 0
            current_level = level_list[current_level_no]

            active_sprite_list = pygame.sprite.Group()
            player.level = current_level

            player.rect.x = 40
            player.rect.y = constants.SCREEN_HEIGHT - player.rect.height

            active_sprite_list.add(player)
            active_sprite_list.add(donkey)

            player.score = score

            restart = False

        # updating all game objects

        fireball_list.update()
        active_sprite_list.update(f)
        current_level.update()

        if player.rect.right > constants.SCREEN_WIDTH:
            player.rect.right = constants.SCREEN_WIDTH

        if player.rect.left < 0:
            player.rect.left = 0

        screen.blit(background_image, [0, 0])

        # generating fireballs

        if donkey.count == 0:

            fireball = Fireball()

            p = getPosition(donkey)

            fireball.speed = l
            fireball.rect.x = p[0] + 40
            fireball.rect.y = p[1]
            fireball_list.add(fireball)

        for j in fireball_list:
            hit_platform = pygame.sprite.spritecollide(
                j, player.level.platform_list, False)

            if len(hit_platform) > 0:
                j.rect.bottom = hit_platform[0].rect.top

        if done:

            font = pygame.font.SysFont("serif", 25)
            text = font.render("Game Over :(  ,  Now we are going to exit",
                               True, constants.RED)
            center_x = (constants.SCREEN_WIDTH // 2) - (text.get_width() // 2)
            center_y = (constants.SCREEN_HEIGHT // 2) - (text.get_height() //
                                                         2)
            screen.blit(text, [center_x, center_y])

        ##########  Dispaying the game score, no of lives left and present Level   #############

        if not done:

            current_level.draw(screen)
            active_sprite_list.draw(screen)
            fireball_list.draw(screen)

            font = pygame.font.SysFont("serif", 25)
            text = font.render("Game Score %s" % player.score, True,
                               constants.WHITE)
            center_x = 0
            center_y = (constants.SCREEN_HEIGHT - 25)
            screen.blit(text, [center_x, center_y])

            font = pygame.font.SysFont("serif", 25)
            text = font.render("Lives Left : %s" % player.lives, True,
                               constants.WHITE)
            center_x = 700
            center_y = (constants.SCREEN_HEIGHT - 25)
            screen.blit(text, [center_x, center_y])

            font = pygame.font.SysFont("serif", 25)
            text = font.render("LEVEL %s" % l, True, constants.WHITE)
            center_x = 850
            center_y = (constants.SCREEN_HEIGHT - 25)
            screen.blit(text, [center_x, center_y])

        clock.tick(60)

        pygame.display.update()

    pygame.quit()
Beispiel #6
0
def main():
    pygame.init()

    screen = pygame.display.set_mode((WIDTH, HEIGHT))
    pygame.display.set_caption("DonkeyKong")

    # Initialize level

    lifes = 3
    score = 0
    COINS = 20
    times = 0

    done = False
    donkey = Donkey()
    donkey_group = pygame.sprite.GroupSingle(donkey.makeDonkey())

    hero = Player()
    hero_group = pygame.sprite.GroupSingle(hero.makePlayer(lifes))

    fireball_group = pygame.sprite.OrderedUpdates()
    Fireballs = []

    fireballS = Fireball()
    fireSource = pygame.sprite.GroupSingle(fireballS.makeFireSource())

    coinGroup = comLevels.genCoins(COINS)

    pygame.key.set_repeat(8, 10)
    FIRETIME = pygame.USEREVENT + 1
    pygame.time.set_timer(pygame.USEREVENT, 150)
    pygame.time.set_timer(FIRETIME, 2000)

    while done == False:

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                done = True
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_q or event.key == pygame.K_ESCAPE:
                    done = True
                elif event.key == pygame.K_SPACE:
                    hero.setState("JUMPING")
                elif event.key == pygame.K_w or event.key == pygame.K_UP:
                    hero.moveUP(screen, hero_group, level.getStairGroup())
                elif event.key == pygame.K_s or event.key == pygame.K_DOWN:
                    hero.moveDown(screen, hero_group, level.getStairGroup())
                elif event.key == pygame.K_a or event.key == pygame.K_LEFT:
                    if hero.getState == ("JUMPING"):
                        hero.allowLeft(True)
                    hero.moveLeft(screen)
                elif event.key == pygame.K_d or event.key == pygame.K_RIGHT:
                    if hero.getState() == "JUMPING":
                        hero.allowRight(True)
                    hero.moveRigth(screen)
                elif event.key == pygame.K_f:
                    for ball in Fireballs:
                        ball.setSpeedP()
                elif event.key == pygame.K_b:
                    for ball in Fireballs:
                        ball.setSpeedN()
            if event.type == pygame.USEREVENT:
                donkey.move()
                donkey.chgSpeed()
            if event.type == FIRETIME:
                fireball = Fireball()
                fireball_group.add(fireball.makeFireball())
                Fireballs.append(fireball)
            for ball in Fireballs:
                ball.moveBalls()
                ball.gravity()
                ball.onBarless()
                ball.killFireball()

        collDon = pygame.sprite.groupcollide(donkey_group, hero_group, False,
                                             True)
        collFire = pygame.sprite.groupcollide(fireball_group, hero_group,
                                              False, True)
        if len(collDon) > 0 or len(collFire) > 0:
            if score >= 25:
                score -= 25
            else:
                score = 0
            print "player: D " + str(hero.getPosition("D"))
            print "player: L " + str(hero.getPosition("L"))
            print "donkey: D " + str(donkey.getPosition("D"))
            print "donkey: L " + str(donkey.getPosition("L"))
            lifes = hero.playerDied(screen)
            pygame.display.update()
            hero_group = pygame.sprite.GroupSingle(hero.makePlayer(lifes))
            try:
                time.sleep(3)
            except:
                print "key"

        collCoin = pygame.sprite.groupcollide(coinGroup, hero_group, True,
                                              False)
        if len(collCoin) > 0:
            score += 20

        if hero.getState() == "JUMPING":
            hero.printPos()
            print "--------"
        times = hero.jump(times)
        if times == 4:
            hero.setState("STANDING")
            hero.allowLeft(False)
            hero.allowRight(False)
            times = 0
        level.selectLevel(screen, 1)
        coinGroup.draw(screen)
        hero_group.draw(screen)
        fireSource.draw(screen)
        fireball_group.draw(screen)
        donkey_group.draw(screen)
        comLevels.updateLife(lifes, screen)
        comLevels.updateScore(score, screen)
        pygame.display.update()

        if lifes == 0:
            break

    pygame.quit()
    sys.exit()