• pygame 笔记-1 按键控制方块移动


    背景:家里的娃慢慢长大了,准备教一些儿童入门的编程知识,研究了一阵麻省理工的scratch 2 虽然不错,但是功能有限,很多高级点的东西玩不出来。所以就有了这一系列,先提前自学一下,顺便拿来练手python ~_^

    pygame虽然不是做大型游戏的最好选择,但是入门却是不错,python也易于学习,官网的文档也算齐全。

    先来一个最基本的代码:

    import pygame
    
    pygame.init()
    
    win = pygame.display.set_mode((320, 240))  # 画布窗口的大小
    pygame.display.set_caption("first game")  # 窗口标题
    
    x, y = 50, 50  # 方块的起点
    width, height = 30, 30  # 方块的宽,高
    speed = 5  # 速度
    
    run = True
    while run:
        # 防止cpu占用过高
        pygame.time.delay(20)
    
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
    
        keys = pygame.key.get_pressed()
    
        # 方向箭头响应
        if keys[pygame.K_LEFT]:
            x -= speed
    
        if keys[pygame.K_RIGHT]:
            x += speed
    
        if keys[pygame.K_UP]:
            y -= speed
    
        if keys[pygame.K_DOWN]:
            y += speed
    
        # 防止跑出边界
        if x > win.get_size()[0] - 
            x = win.get_size()[0] - width
    
        if x < 0:
            x = 0
    
        if y > win.get_size()[1] - height:
            y = win.get_size()[1] - height
    
        if y < 0:
            y = 0
    
        # 将每一帧的底色先填充成黑色
        win.fill((0, 0, 0))
        # 画方块
        pygame.draw.rect(win, (255, 0, 0), (x, y, width, height))
        # 更新画布
        pygame.display.update()
    
    pygame.quit()
    

     

    效果:

     

    参考:

    https://www.youtube.com/watch?v=i6xMBig-pP4

    https://nerdparadise.com/programming/pygame/part1

    https://www.pygame.org/docs/ref/surface.html

  • 相关阅读:
    Java设计模式-装饰器模式
    【c++内存分布系列】单独一个类
    【转】LCS
    快速排序
    冒泡排序
    选择排序
    多线程读取全局变量
    【转】一致性hash算法(consistent hashing)
    【转】五笔的字典序编码与解码
    给定一个函数rand()能产生0到n-1之间的等概率随机数,问如何产生0到m-1之间等概率的随机数?
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/pygame-tutorial-1-keypress-and-move.html
Copyright © 2020-2023  润新知