导语:
哈喽铁汁们前几天不是许多城市都下起了鹅毛大雪嘛~(在湖南的小编真的时隔几年看到这么大的雪不要太激动了)不知道幸运的友友萌有好好玩雪了吗?雪仗跟雪人wo都是耍了的~😜😜
滑雪倒是没实现所以这期小编就想给大家整一个滑雪小游戏,让我们愉快的开始吧👇👇
想领取更多完整源码跟python学习资料可私信我或点击这行字体
正文:
开发工具
Python版本:3.6.4
相关模块:
pygame模块;
以及一些Python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
游戏预览:

原理介绍
游戏规则:
玩家通过”AD”键或者”←→”操控前进中的滑雪者,努力避开路上的树,尽量捡到路上的小旗。
如果碰到树,则得分减50,如果捡到小旗子,则得分加10。
逐步实现:
Step1:定义精灵类
由于游戏涉及到碰撞检测(滑雪者与树和小旗之间的碰撞),因此我们定义两个精灵类,分别用于代表滑雪者和障碍物(即树和小旗):

其中,滑雪者在前进过程中应当拥有向左,向右偏移的能力,并且在偏移时滑雪者向前的速度应当减慢才更加合乎常理,这样才能供玩家操作。同时,滑雪者应当拥有不同的姿态来表现自己滑行时的状态:
直线:

左偏一点:

左偏很多:

右偏一点:

右偏很多:

另外,尽管滑雪者的左右移动通过移动滑雪者本身实现,但是滑雪者的向前移动是通过移动障碍物实现的。
Step2:随机创建障碍物
现在我们需要定义一个随机创建障碍物的函数,以便在游戏主循环中调用:

Step3:游戏主循环
首先我们初始化一些参数:

其中障碍物创建两次的目的是便于画面衔接。
然后我们就可以定义主循环了:

主循环的内容包括:
事件监听、障碍物的更新、碰撞检测以及分数的展示等内容,总之还是很容易实现的。
Step4:其他
开始、结束界面这些,就靠大家自己发挥了,我就写了一个简单的开始界面:

效果:

附源码:
import pygame,sys,random
skier_images= ["skier_down.png","skier_right1.png","skier_right2.png","skier_left1.png","skier_left2.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
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):
self.rect.centerx = self.rect.centerx + speed[0]
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)
self.rect = self.image.get_rect()
self.rect.center = location
self.type = type
self.passed = False
# 创建树和小旗子
def update(self):
global speed
self.rect.centery -= speed[1] # 屏幕向上滚动
if self.rect.centery = 640 :
create_map()
map_position = 0
# 创建新场景
hit = pygame.sprite.spritecollide(skier,obstacles,False)
if hit:
if hit[0].type == "tree" and not hit[0].passed:
points -=100
skier.image = pygame.image.load("skier_crash.png")
score_text = font.render("Score:" +str(points),1,(0,0,0))
pygame.time.delay(100)
skier.iamge = pygame.image.load("skier_down.png")
skier.angle = 0
speed = [0,6]
hit[0].passed = True
elif hit[0].type == "flag" and not hit[0].passed:
points +=10
hit[0].kill()
# 检测是否碰到树或者小旗子
obstacles.update()
score_text = font.render("Score:" +str(points),1,(0,0,0)) # 显示得分
animate()
pygame.quit()
执行效果:
end
这期滑雪小游戏就分享到这了结束了喜欢的铁汁们记得三连噢!家人们的支持是小编更新最大的动力💪💪
Original: https://blog.csdn.net/L010409/article/details/122284889
Author: 车厘子@
Title: 【小游戏合集】之用Python制作一个滑雪小游戏~太适合上班摸鱼玩了。
相关阅读
Title: 【Python】– 可视化工具pyecharts的安装使用
pyecharts产生背景
Echarts是由百度开源的数据可视化,凭借良好的交互性和精巧的图表设计,得到众多开发者的认可,而python很适合用于数据处理,数据分析遇到数据可视化时pyecharts就产生了。
画廊pyecharts-gallery
pyecharts支持的图表众多,官方提供了画廊用于参考。
画廊链接:https://gallery.pyecharts.org/#/
一、pyecharts模块安装
使用pip命令快速安装:pip install pyecharts
此处省略,跟前面的文章安装第三方包的操作一样。

二、pyecharts入门
1、基础折线图
①导包Line
from pyecharts.charts import Line
②得到折线图对象
line = Line()
③添加x轴数据
line.add_xaxis(["中国","美国","英国"])
④添加y轴数据
line.add_yaxis("GDP",[30,20,10])
⑤生成图表
line.render()
运行后出现一个html文件,打开html文件会出现可视化图表。


2、pyecharts配置选项
全局配置选项
可通过set_global_opts方法配置
更多配置选项可前往官网参考。
例:
from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts
line.set_global_opts(
title_opts=TitleOpts("GDP展示","center","1%"),
legend_opts=LegendOpts(True),
toolbox_opts=ToolboxOpts(True),
visualmap_opts=VisualMapOpts(True)
)

Original: https://blog.csdn.net/Tir_zhang/article/details/126739936
Author: Shewyoo
Title: 【Python】– 可视化工具pyecharts的安装使用
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/342045/
转载文章受原作者版权保护。转载请注明原作者出处!