其他分享
首页 > 其他分享> > 有趣的滑雪小人游戏

有趣的滑雪小人游戏

作者:互联网

今天的python学习内容十分有趣,是学习如何使用类的方法来实现滑雪小人的移动,由此可以衍生到游戏中的树和旗的动法,废话不多说,直接上码。

import pygame
import random
pygame.init()

window = pygame.display.set_mode((640,600))		#窗口大小
window.fill([255, 255, 255]) 	# 将背景填充成白色


class SkierClass(pygame.sprite.Sprite):
    '''实现精灵类的继承,完成滑雪小人'''
    def __init__(self,image,position,speed):
        '''
        :param image: 图片的路径
        :param position: 列表类型,[x横轴坐标,y纵轴坐标]
        :param speed: 列表类型,[横轴速度,纵轴速度]
        '''
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.image.load(image) 	#<Surface(30x64x32 SW)>,加载雪人图像
        self.rect = self.image.get_rect()	 #<rect(0, 0, 30, 64)> # 获取图像边界的矩形
        self.rect.left,self.rect.top = position	 #设置图像的初始位置
        self.speed = speed

    def move(self):
        '''这个方法实现小人移动,利用rect内置的move方法'''
        retdata = self.rect.move(self.speed)
        print('move方法的返回值',retdata)
        self.rect = retdata
        
        #设定移动的边界条件
        if self.rect.left < 0 or self.rect.right > 640:
            self.speed[0] = -self.speed[0]
        if self.rect.top < 0 or self.rect.bottom >600:
            self.speed[1] = -self.speed[1]


if __name__ == '__main__':

    # 创建单个小人实例
    ski = SkierClass('.\skier_down.png', [500, 100],[0,1])	#依次输入输入图片路径、位置、速度

    #
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                print("游戏退出")
                exit()
        window.fill([255,255,255]) #创建一个新背景,可覆盖前一个残留的小人
        ski.move()
        window.blit(ski.image,ski.rect) #将图像添加到窗口显示

        pygame.display.update()		#刷新

标签:__,self,小人,有趣,滑雪,speed,image,rect,pygame
来源: https://blog.csdn.net/pydax1a/article/details/88807066