返回顶部
首页 > 资讯 > 后端开发 > Python >Python怎么实现可可爱爱的小粽子
  • 138
分享到

Python怎么实现可可爱爱的小粽子

2023-07-06 11:07:05 138人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

今天小编给大家分享一下python怎么实现可可爱爱的小粽子的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。建立两个精灵并搭建背

今天小编给大家分享一下python怎么实现可可爱爱的小粽子的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

建立两个精灵并搭建背景元素

粽子和爱心

先是建立一个粽子对象,也就是一个精灵,类里面需要继承pygame.sprite.Sprite类,这是碰撞模块的重要部分。update函数是控制粽子方向,并防止粽子跑出边界,当粽子触碰到边界时出发触底反弹功能,使粽子向边界另一方向反弹移动。

class Player(pygame.sprite.Sprite):    """    粽子对象    """    def __init__(self):        pygame.sprite.Sprite.__init__(self)        self.image = pygame.image.load('min2.png')        self.image = pygame.transfORM.scale(self.image, (130, 130))        print(self.image)        self.rect = self.image.get_rect()        self.rect.midbottom = (20, screen_height )    def update(self):        screen.blit(self.image, (self.rect.x, self.rect.y))        screen.blit(self.image, self.rect)        x_move = 0        y_move = 0        # 获取按键,并进行相应的移动        key = pygame.key.get_pressed()        #通过控制数字来设置粽子速度        if key[pygame.K_LEFT]:            x_move -= 4        if key[pygame.K_RIGHT]:            x_move += 4        if key[pygame.K_UP]:            y_move -= 4        if key[pygame.K_DOWN]:            y_move += 4        self.rect.x += x_move        self.rect.y += y_move        # 控制人物的最低位置        if self.rect.bottom > screen_height+330 :            self.rect.bottom = screen_height + 330        # 绘制粽子        screen.blit(self.image, self.rect)        #防止粽子跑出边界        if  self.rect.right > 1400:            self.rect.x -= 20        elif  self.rect.left <=-10:            self.rect.x += 20        elif  self.rect.top < 0:            self.rect.y += 50        elif self.rect.bottom> 730:            self.rect.y -= 60

在添加一个❤,当咸粽吃到❤时得分。其也必须继承pygame.sprite.Sprite类,通过Move_update使❤随机出现在游戏中,并在游戏边界内移动。

class Heart_game(pygame.sprite.Sprite):    def __init__(self):        pygame.sprite.Sprite.__init__(self)        self.Heart_speed = [2,-3]        # 加载小球图片        self.image = pygame.image.load('min_love.png').convert_alpha()        # 获取小球图片的区域开状        self.rect = self.image.get_rect()        x,y = random.randint(0,1300),random.randint(0,700)        self.active = True        self.rect.midbottom = (x, y )    def Move_update(self):        self.rect = self.rect.move(self.Heart_speed)        #绘制爱心图片        screen.blit(self.image, self.rect)        if  self.rect.right > 1400:            x = random.randint(-5, 0)            y = random.randint(-5, -2) or random.randint(1, 5)            self.Heart_speed = [x, y]        elif  self.rect.left <=-10:            x = random.randint(0, 5)            y = random.randint(-5, 5)            self.Heart_speed = [x, y]        elif  self.rect.top < -10:            x = random.randint(-3,3)            y = random.randint(0,3)            self.Heart_speed = [x,y]        elif self.rect.bottom> 695:            x = random.randint(-3, 3)            y = random.randint(-3,0)            self.Heart_speed = [x, y]

注 意 : \color{#FF45b0}{注意:} 注意:screen.blit(image, rect)为在游戏中绘制图片,必须包含两个参数,一个是图片本身,另一个是图片在游戏中的位置,即为rect

背景搭建

直接导入图片并在循环中显示

bg = pygame.image.load("vack.jpeg").convert()#下句需在游戏主循环中使用screen.blit(bg, (0, 0))

搭建完成后为

Python怎么实现可可爱爱的小粽子

碰撞模块

碰撞部分我可是煞费苦心啊,使用以下语句, 尤 其 是 ! ! \color{blue}{尤其是!!} 尤其是!!我一开始以为没有碰撞,添加多个语句,实际上他发生了,只是我没有加语句->在此条件下会发生什么,造成这个惨案&hellip;

我们来好好分析这段条件,player 是粽子对象,group是一个包含❤的组,pygame.sprite.collide_circle_ratio(0.5)可以控制图片碰撞体积,于是碰撞条件达成!

if pygame.sprite.spritecollide(player,group,True,pygame.sprite.collide_circle_ratio(0.5)) :语句

贪吃模块

当达到碰撞时把❤吃掉,设l为一个空数组,用l.append(aixin)加入❤实例,当数组l存在时,进入碰撞环节,碰撞后用pop函数删除❤。

然后加入判断,若数组l为空,则新加入❤游戏实例,也就是上述❤实例

    for each in l:        each.Move_update()        screen.blit(each.image, each.rect)        if pygame.sprite.spritecollide(player,group,True,pygame.sprite.collide_circle_ratio(0.5)) :                l.pop()                score += 1                print(score)                # del aixin    if not l:        l.append(Heart_game())        group.add(l[0])

计数机制

score计算,引用一个ttf字体文件

score = 0score_font = pygame.font.Font("font.ttf",50)score_text = score_font.render("Score: % s" % str(score), True, BLACK)screen.blit(score_text, (0, 0))

最终呈现为

Python怎么实现可可爱爱的小粽子

Python怎么实现可可爱爱的小粽子

完整代码

import pygamefrom pygame.locals import *import pygameimport sysimport asyncioimport timeimport randomclass Player(pygame.sprite.Sprite):    #粽子对象    def __init__(self):        pygame.sprite.Sprite.__init__(self)        self.image = pygame.image.load('min2.png')        self.image = pygame.transform.scale(self.image, (130, 130))        print(self.image)        self.rect = self.image.get_rect()        self.rect.midbottom = (20, screen_height )    def update(self):        screen.blit(self.image, (self.rect.x, self.rect.y))        screen.blit(self.image, self.rect)        x_move = 0        y_move = 0        # 获取按键,并进行相应的移动        key = pygame.key.get_pressed()        if key[pygame.K_LEFT]:            x_move -= 4        if key[pygame.K_RIGHT]:            x_move += 4        if key[pygame.K_UP]:            y_move -= 4        if key[pygame.K_DOWN]:            y_move += 4        self.rect.x += x_move        self.rect.y += y_move        # 控制人物的最低位置        # 绘制人物        screen.blit(self.image, self.rect)        if  self.rect.right > 1400:            self.rect.x -= 20        elif  self.rect.left <=-10:            self.rect.x += 20        elif  self.rect.top < 0:            self.rect.y += 50        elif self.rect.bottom> 730:            self.rect.y -= 60    # def eat(self):class Heart_game(pygame.sprite.Sprite):    def __init__(self):        pygame.sprite.Sprite.__init__(self)        self.Heart_speed = [2,-3]        # 加载小球图片        self.image = pygame.image.load('min_love.png').convert_alpha()        # 获取小球图片的区域开状        self.rect = self.image.get_rect()        x,y = random.randint(0,1300),random.randint(0,700)        self.active = True        self.rect.midbottom = (x, y )    def Move_update(self):        self.rect = self.rect.move(self.Heart_speed)        screen.blit(self.image, self.rect)        if  self.rect.right > 1400:            x = random.randint(-5, 0)            y = random.randint(-5, -2) or random.randint(1, 5)            self.Heart_speed = [x, y]        elif  self.rect.left <=-10:            x = random.randint(0, 5)            y = random.randint(-5, 5)            self.Heart_speed = [x, y]        elif  self.rect.top < -10:            x = random.randint(-3,3)            y = random.randint(0,3)            self.Heart_speed = [x,y]        elif self.rect.bottom> 695:            x = random.randint(-3, 3)            y = random.randint(-3,0)            self.Heart_speed = [x, y]# 加载基本的窗口和时钟pygame.init()screen_width = 1400screen_height = 700screen = pygame.display.set_mode((screen_width, screen_height))pygame.display.set_caption('迟到的端午')clock = pygame.time.Clock()  # 设置时钟# 加载背景,粽子,爱心bg = pygame.image.load("vack.jpeg").convert()player = Player()aixin = Heart_game()group = pygame.sprite.Group(aixin)count = 0score = 0score_font = pygame.font.Font("font.ttf",50)BLACK= (0,0,0)l = []l.append(aixin)#  游戏主循环game_run = 1while game_run:    clock.tick(60)    screen.blit(bg, (0, 0))    # 持续更新    count += 1    for each in l:        each.Move_update()        screen.blit(each.image, each.rect)        if pygame.sprite.spritecollide(player,group,True,pygame.sprite.collide_circle_ratio(0.5)) :                l.pop()                score += 1                print(score)                # del aixin    if not l:        l.append(Heart_game())        group.add(l[0])    player.update()    score_text = score_font.render("Score: % s" % str(score), True, BLACK)    screen.blit(score_text, (0, 0))    for event in pygame.event.get():        if event.type == pygame.QUIT:            game_run = False    # 窗口更新并绘制    pygame.display.update()pygame.quit()

以上就是“Python怎么实现可可爱爱的小粽子”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网Python频道。

--结束END--

本文标题: Python怎么实现可可爱爱的小粽子

本文链接: https://lsjlt.com/news/358029.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python怎么实现可可爱爱的小粽子
    今天小编给大家分享一下Python怎么实现可可爱爱的小粽子的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。建立两个精灵并搭建背...
    99+
    2023-07-06
  • Python如何实现可可爱爱的小粽子
    建立两个精灵并搭建背景元素粽子和爱心先是建立一个粽子对象,也就是一个精灵,类里面需要继承pygame.sprite.Sprite类,这是碰撞模块的重要部分。update函数是控制粽子方向,并防止粽子跑出边界,当粽子触碰到边界时出发...
    99+
    2023-05-14
    Python
  • Python实现的可可爱爱的小粽子详解
    目录粽子和爱心制作建立两个精灵并搭建背景元素粽子和爱心背景搭建碰撞模块贪吃模块计数机制完整代码粽子和爱心制作 PS截取小爱心和我最爱的咸粽子 建立两个精灵并搭建背景元素 粽子和爱心...
    99+
    2024-04-02
  • Python+Turtle实现绘制可爱的小仓鼠
    目录一、效果展示二、代码详解1.导入库2.播放音乐3.定义画小仓鼠头的函数4.定义画左眼和右眼的函数5.定义画嘴的函数一、效果展示 在介绍代码之前,先来看下本文的实现效果。 可以参...
    99+
    2024-04-02
  • CSS3怎么实现可爱的小黄人动画
    这篇文章主要介绍“CSS3怎么实现可爱的小黄人动画 ”,在日常操作中,相信很多人在CSS3怎么实现可爱的小黄人动画 问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS3怎么...
    99+
    2024-04-02
  • C语言实现绘制可爱的橘子钟表
    目录简介程序截图源码简介 这个橘子钟表程序主要分成三个部分:画表盘、画表针、显示当前时间。画表盘部分运用到了三次贝塞尔曲线、HSL 颜色模型以及字符串格式化命令,其中三次贝塞尔曲线确...
    99+
    2022-12-28
    C语言绘制橘子钟表 C语言 橘子钟表 C语言 钟表
  • Python+Turtle绘制可爱的可达鸭
    目录一、效果展示二、代码详解1.导入库2.播放音乐3.画可达鸭的头和身体外轮廓4.画眼睛5.画手6.画嘴和脚7.画头发8.写文字一年一度的六一儿童节又来了,祝大朋友小朋友节日快乐。 ...
    99+
    2024-04-02
  • Python+Turtle绘制可爱的小蜜蜂详解
    目录一、效果展示二、代码详解1.导入库2.播放音乐3.画小蜜蜂的头4.画脖子和腹部三、完整代码公众号中有个朋友私信我,想要帮忙画下小蜜蜂。 答应了有时间就帮忙画下,趁着五一休息,今天...
    99+
    2024-04-02
  • 《可爱的Python》读书笔记(一)
    Just use it! don't learn!——只用,不学!无意间了解到《可爱的Python》就被它的名字所吸引。查了书评得知这本书是有争议的,有人觉得书中很多都是点到为止不适合新手入门,处处给读者挖坑,结构混乱更不能作为参考书。有人...
    99+
    2023-01-31
    读书笔记 可爱 Python
  • 怎么用Python绘制一个可爱的米老鼠
    本篇内容介绍了“怎么用Python绘制一个可爱的米老鼠”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、效果展示二、代码详解python绘制...
    99+
    2023-06-29
  • python怎么实现爱心效果
    本篇内容介绍了“python怎么实现爱心效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!图形都是由一系列的点(X,Y)构成的曲线,由于X,...
    99+
    2023-06-02
  • 怎么使用CSS绘制一个可爱卡通狮子动画
    这篇文章主要介绍了怎么使用CSS绘制一个可爱卡通狮子动画的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用CSS绘制一个可爱卡通狮子动画文章都会有所收获,下面我们一起来看看...
    99+
    2024-04-02
  • 使用Python画一个可爱的冰墩墩
    利用Python绘制可爱的冰墩墩 冰墩墩,作为北京冬奥会的吉祥物,可爱的形象深受广大人们的喜爱。在这篇文章中,我们将使用Python语言来绘制一个可爱的冰墩墩的图像。首先,我们需要了解Python的绘图库matplotlib和n...
    99+
    2024-01-13
    Python绘图 可爱形象设计 冰墩墩绘画
  • 怎么用Python+Turtle绘制一个可爱的生日蛋糕
    本文小编为大家详细介绍“怎么用Python+Turtle绘制一个可爱的生日蛋糕”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用Python+Turtle绘制一个可爱的生日蛋糕”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来...
    99+
    2023-06-30
  • 利用Python绘制一个可爱的米老鼠
    目录一、效果展示二、代码详解1.导入库2.播放音乐3.画米老鼠头部外轮廓4.画衣服和耳朵5.画眼睛、鼻子、嘴杨紫和肖战的《余生请多指教》于3月15日起腾讯视频全网独播,湖南卫视金鹰独...
    99+
    2024-04-02
  • Python+Turtle绘制一个可爱的生日蛋糕
    每当有朋友过生日时,生日蛋糕自然是必不可少的,今天我们来看一下如何用 Python 画一个生日蛋糕。 本文我们用到的 Python 库包括:turtle、math 和 random。...
    99+
    2024-04-02
  • Python+Turtle如何绘制可爱的多啦A梦
    小编给大家分享一下Python+Turtle如何绘制可爱的多啦A梦,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1 送她的多啦A梦一个哆啦A梦让她开心开心好久好久...
    99+
    2023-06-29
  • 利用python实现全屏爱心雨怎么实现
    本篇文章和大家了解一下利用python实现全屏爱心雨怎么实现。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。以下核心代码参考黑客帝国的界面的雨滴图和网友的爱心素材一 音乐播放def alarm(): &...
    99+
    2023-08-03
  • 怎么利用Matlab绘制一个可爱的南瓜灯
    这篇文章主要介绍怎么利用Matlab绘制一个可爱的南瓜灯,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!效果及原理效果如下:调一下数据还能改成三角眼:原理南瓜主体函数从知友 [九章算法] 的一张图而来,大体是瓜身瓜柄分...
    99+
    2023-06-29
  • 基于Python实现的恋爱对话小程序详解
    目录导语一、小简介二、代码演示1)导入模块2)倒计时3)画2份不同的礼物4)二种选择是不同的绘图倒计时之后就是绘制你回答的那个礼物。5)弹窗设计的文字(可修改)三、效果展示1)视频展...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作