• 大小: 9KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: Python
  • 标签: python  代码  小游戏  

资源简介

基于python的一个滑雪小游戏,有图,有代码,可参考,适用于有一点点基础的python初学者。
内有6张人物形态图,1个得分图,一个障碍物图和一份代码。
用到了pygame库,可以做着玩玩。

资源截图

代码片段和文件信息



import pygame sys random

# different images for the skier depending on his direction
skier_images = [“skier_down.png“ “skier_right1.png“ “skier_right2.png“
                 “skier_left2.png“ “skier_left1.png“]
#import os
#os.environ[‘SDL_VIDEODRIVER‘] = ‘windib‘
# class for the skier sprite
class SkierClass(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.image.load(“skier_down.png“)
        self.rect = self.image.get_rect()
        self.rect.center = [320 100]
        self.angle = 0
        
    def turn(self direction): 
        # load new image and change speed when the skier turns
        self.angle = self.angle + direction
        if self.angle < -2:  self.angle = -2
        if self.angle >  2:  self.angle =  2 
        center = self.rect.center
        self.image = pygame.image.load(skier_images[self.angle])
        self.rect = self.image.get_rect()
        self.rect.center = center
        speed = [self.angle 6 - abs(self.angle) * 2]
        return speed
    
    def move(self speed):
        # move the skier right and left
        self.rect.centerx = self.rect.centerx + speed[0]
        if self.rect.centerx < 20:  self.rect.centerx = 20
        if self.rect.centerx > 620: self.rect.centerx = 620 
        
# class for obstacle sprites (trees and flags)
class ObstacleClass(pygame.sprite.Sprite):
    def __init__(self image_file location type):
        pygame.sprite.Sprite.__init__(self)  #call Sprite initializer
        self.image_file = image_file        
        self.image = pygame.image.load(image_file)
        self.location = location
        self.rect = self.image.get_rect()
        self.rect.center = location
        self.type = type
        self.passed = False
                   
    def scroll(self terrainPos):
        self.rect.centery = self.location[1] - terrainPos

# create one “screen“ of terrain: 640 x 640
# use “blocks“ of 64 x 64 pixels so objects aren‘t too close together
def create_map(start end):
    obstacles = pygame.sprite.Group()
    locations = []
    gates = pygame.sprite.Group()
    for i in range(10):                 # 10 obstacles per screen 
        row = random.randint(start end)
        col = random.randint(0 9)
        location  = [col * 64 + 20 row * 64 + 20] #center x y for obstacle
        if not (location in locations):        # prevent 2 obstacles in the same place
            locations.append(location)          
            type = random.choice([“tree“ “flag“])
            if type == “tree“: img = “skier_tree.png“
            elif type == “flag“:  img = “skier_flag.png“
            obstacle = ObstacleClass(img location type)
            obstacles.add(obstacle)
    return obstacles

# redraw the screen including all sprites
def animate():
    screen.fill([255 255 255])
    pygame.display.update(obstacles.draw(screen)) 
    screen.blit

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    .CA....      5743  2019-11-19 11:52  skier\skier.py

    .CA....      1010  2008-03-10 11:33  skier\skier_crash.png

    .CA....       768  2008-03-10 11:38  skier\skier_down.png

    .CA....       257  2008-02-06 01:12  skier\skier_flag.png

    .CA....       972  2008-03-10 10:41  skier\skier_left1.png

    .CA....      1002  2008-03-10 10:41  skier\skier_left2.png

    .CA....       983  2008-03-10 10:43  skier\skier_right1.png

    .CA....      1042  2008-03-10 10:42  skier\skier_right2.png

    .CA....       847  2008-03-10 10:55  skier\skier_tree.png

    .C.D...         0  2019-12-13 17:46  skier

----------- ---------  ---------- -----  ----

                12624                    10


评论

共有 条评论