有趣的滑雪小人游戏

这篇博客主要介绍了在python学习中,通过类的方法实现滑雪小人、树木和旗帜的动态移动,是游戏编程的一个趣味应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天的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()		#刷新
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值