zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    计算机世界中解决问题的三种技术手段
    应用程序池的经典模式与集成模式的区别
    sh文件的编译
    flex学习开始了
    com,ActiveX,Ole之间的关系学习总结
    "正在等待localhost。。”问题的解决
    一些感悟
    面向对象软件工程方法学实践【转】
    外连接在sqlserver和access之间的差异
    外连接在sqlserver和access之间的差异
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/pygame-tutorial-1-keypress-and-move.html
Copyright © 2011-2022 走看看