zoukankan      html  css  js  c++  java
  • Python菜鸟快乐游戏编程_pygame(4)

    Python菜鸟快乐游戏编程_pygame(博主录制,2K分辨率,超高清)

    https://study.163.com/course/courseMain.htm?courseId=1006188025&share=2&shareId=400000000398149

    为了熟悉键盘,鼠标,颜色参数,屏幕参数,我为大家准备了一个最简单的游戏sprite and sounds

    import pygame, sys, time, random
    from pygame.locals import *
    
    # Set up pygame.
    pygame.init()
    mainClock = pygame.time.Clock()
    
    # Set up the window.
    WINDOWWIDTH = 400
    WINDOWHEIGHT = 400
    windowSurface = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT), 0, 32)
    pygame.display.set_caption('Sprites and Sounds')
    
    # Set up the colors.
    WHITE = (255, 255, 255)
    
    # Set up the block data structure.
    player = pygame.Rect(300, 100, 40, 40)
    playerImage = pygame.image.load('player.png')
    playerStretchedImage = pygame.transform.scale(playerImage, (40, 40))
    foodImage = pygame.image.load('cherry.png')
    foods = []
    for i in range(20):
        foods.append(pygame.Rect(random.randint(0, WINDOWWIDTH - 20), random.randint(0, WINDOWHEIGHT - 20), 20, 20))
    
    foodCounter = 0
    NEWFOOD = 40
    
    # Set up keyboard variables.
    moveLeft = False
    moveRight = False
    moveUp = False
    moveDown = False
    
    MOVESPEED = 6
    
    # Set up the music.
    pickUpSound = pygame.mixer.Sound('pickup.wav')
    pygame.mixer.music.load('background.mid')
    pygame.mixer.music.play(-1, 0.0)
    musicPlaying = True
    
    # Run the game loop.
    while True:
        # Check for the QUIT event.
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()
            if event.type == KEYDOWN:
                # Change the keyboard variables.
                if event.key == K_LEFT or event.key == K_a:
                    moveRight = False
                    moveLeft = True
                if event.key == K_RIGHT or event.key == K_d:
                    moveLeft = False
                    moveRight = True
                if event.key == K_UP or event.key == K_w:
                    moveDown = False
                    moveUp = True
                if event.key == K_DOWN or event.key == K_s:
                    moveUp = False
                    moveDown = True
            if event.type == KEYUP:
                if event.key == K_ESCAPE:
                    pygame.quit()
                    sys.exit()
                if event.key == K_LEFT or event.key == K_a:
                    moveLeft = False
                if event.key == K_RIGHT or event.key == K_d:
                    moveRight = False
                if event.key == K_UP or event.key == K_w:
                    moveUp = False
                if event.key == K_DOWN or event.key == K_s:
                    moveDown = False
                if event.key == K_x:
                    player.top = random.randint(0, WINDOWHEIGHT - player.height)
                    player.left = random.randint(0, WINDOWWIDTH - player.width)
                if event.key == K_m:
                    if musicPlaying:
                        pygame.mixer.music.stop()
                    else:
                        pygame.mixer.music.play(-1, 0.0)
                    musicPlaying = not musicPlaying
    
            if event.type == MOUSEBUTTONUP:
                foods.append(pygame.Rect(event.pos[0] - 10, event.pos[1] - 10, 20, 20))
    
        foodCounter += 1
        if foodCounter >= NEWFOOD:
            # Add new food.
            foodCounter = 0
            foods.append(pygame.Rect(random.randint(0, WINDOWWIDTH - 20), random.randint(0, WINDOWHEIGHT - 20), 20, 20))
    
        # Draw the white background onto the surface.
        windowSurface.fill(WHITE)
    
        # Move the player.
        if moveDown and player.bottom < WINDOWHEIGHT:
            player.top += MOVESPEED
        if moveUp and player.top > 0:
            player.top -= MOVESPEED
        if moveLeft and player.left > 0:
            player.left -= MOVESPEED
        if moveRight and player.right < WINDOWWIDTH:
            player.right += MOVESPEED
    
    
        # Draw the block onto the surface.
        windowSurface.blit(playerStretchedImage, player)
    
        # Check whether the block has intersected with any food squares.
        for food in foods[:]:
            if player.colliderect(food):
                foods.remove(food)
                player = pygame.Rect(player.left, player.top, player.width + 2, player.height + 2)
                playerStretchedImage = pygame.transform.scale(playerImage, (player.width, player.height))
                if musicPlaying:
                    pickUpSound.play()
    
        # Draw the food.
        for food in foods:
            windowSurface.blit(foodImage, food)
    
        # Draw the window onto the screen.
        pygame.display.update()
        mainClock.tick(40 )
    

     

    如下图,生成一个游戏,小怪物吃樱桃。游戏随机生成若干樱桃,玩家通过操作键盘移动小怪物,吃的樱桃越多,小怪物就会越大。 

    https://study.163.com/provider/400000000398149/index.htm?share=2&shareId=400000000398149(博主视频教学主页)

  • 相关阅读:
    Oracle TRCA 工具 说明
    Oracle TTS ORA39322: Cannot use transportable tablespace with different timezone version 说明
    Oracle 传输表空间(Transportable Tablespaces) 示例(二) 跨操作系统迁移表空间(endianness格式不同)
    易于在各手机平台移植的设计(转)
    Symbian 学习资源
    项目经理修炼手册
    ZIP 算法详解 (转!)
    google Android OS 学习资源、资料和笔记汇总(要看的)
    小白兔的求职遭遇
    数据结构和算法学习笔记(1)
  • 原文地址:https://www.cnblogs.com/webRobot/p/9824205.html
Copyright © 2011-2022 走看看