skier 滑雪者 python小游戏
(2013-12-03 09:22:32)
说来挺惭愧!朋友和我一起学的python 他已经可以独立写一些小程序了。我还处于学习循环语句的地步!
下面的这个滑雪者游戏是我看PDF资料的时候一本书里提供的代码,当然书中的代码并未给予过多注释,虽然代码不是我写的。但,通过1天的研究,我也对这代码有了一点小小的了解,从这个代码中也学了不少东西!挺不错的,研究现成的代码确实能学到不少东西!
========================================
import pygame, sys,
random
# 所需要加载的模块
skier_images =
["skier_down.png","skier_right1.png",
#加载所需要的人物图像
"skier_right2.png","skier_left2.png",
"skier_left1.png"]
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):
# 方向
self.angle = self.angle +
direction # 角度+ 方向
if self.angle < -2: self.angle =
-2 # 向左右只允许转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, 10 - abs(self.angle) * 2]
#左右移动后的速度
return speed
def
move(self, speed):
# 移动 左右移动
self.rect.centerx = self.rect.centerx + speed[0]
if self.rect.centerx <
20: self.rect.centerx =
20 #向左移动至 起始位置20
或向右移动至终止位置620
if self.rect.centerx > 620:
self.rect.centerx = 620
class ObstacleClass
(pygame.sprite.Sprite):
#创建树和小旗
def
__init__(self, image_file, location, type):
pygame.sprite.Sprite.__init__(self)
self.image_file = image_file
self.image = pygame.image.load(image_file)