pygame中的动画

最近沉迷pygame无法自拔,可是总是对动画这块有点懵逼

所以将这段学习到的代码记录下来

 

第一段:最基本的动画

import pygame
from pygame import *
from sys import exit

"""
一段最基本的动画代码
让飞机从屏幕左边飞到右边
"""
air_image = "D:\\workspace\\game\\data\\jet.png"

WIDTH, HEIGHT = 600, 480
pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
air = pygame.image.load(air_image)
clock = pygame.time.Clock()

x = 0

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            exit()
    screen.fill((255, 255, 255))
    screen.blit(air, (x, 100))
    # 设置FPS
    clock.tick(60)
    x += 2
    if x > 600:
        x -= 640
    pygame.display.update()

运行以后的效果图:

你可以找一张图片替换我这张图片,然后自己试一下,

想一下 这个是从到右运动,那么从上到下呢 我们只要保持x的值不变

让y的值一直变化就可以了,让y的值到达屏幕下方的时候把它归0

pygame中的动画_第1张图片

 

斜线运动

import pygame
from pygame import *
from sys import exit

"""
斜线运动
下面有一个更有趣一些的程序,不再是单纯的直线运动,而是有点像屏保一样,碰到了壁会反弹。
不过也并没有新的东西在里面,原理上来说,反弹只不过是把速度取反了而已

OK,这次的运动就说到这里。仔细一看的话,就会明白游戏中的所谓运动(尤其是2D游戏),不过是把一个物体的坐标改一下而已
"""
air_image = "D:\\workspace\\game\\data\\jet.png"

WIDTH, HEIGHT = 600, 480
pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
air = pygame.image.load(air_image)
clock = pygame.time.Clock()

x, y = 100., 100
speed_x, speed_y = 133., 170

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            exit()
    screen.fill((255, 255, 255))
    screen.blit(air, (x, y))

    time_passed = clock.tick(30)
    time_passed_seconds = time_passed / 1000.0

    x += speed_x * time_passed_seconds
    y += speed_y * time_passed_seconds

    # 到达边界则把速度反向
    if x > 640 - air.get_width():
        speed_x = -speed_x
        x = 640 - air.get_width()
    elif x < 0:
        speed_x = -speed_x
        x = 0.

    if y > 480 - air.get_height():
        speed_y = -speed_y
        y = 480 - air.get_height()
    elif y < 0:
        speed_y = -speed_y
        y = 0

    pygame.display.update()

 

原文章链接:https://eyehere.net/2011/python-pygame-novice-professional-8/

你可能感兴趣的:(Python学习)