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

  • 相关阅读:
    XML属性
    4.9Java游戏项目练习
    关于JVM结构的学习
    HelloWorld之Struts2
    进程调度
    JVM垃圾回收总结
    学会阅读Java字节码
    关于产品需求文档的各种D
    刘强东学习亚马逊:控制供应链 技术是最大障碍
    JVM内存溢出的方式
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/pygame-tutorial-1-keypress-and-move.html
Copyright © 2011-2022 走看看