首页 > 编程语言 >Python中的pygame骨骼设想

Python中的pygame骨骼设想

时间:2024-10-20 14:52:41浏览次数:11  
标签:骨骼 Python screen py pygame px blit

骨骼一般来说都是在3D建模中,动画之类里面的比较常见,pygame里面的话,我是没咋听说过用到骨骼这样的东西,所以我这里也只是一个设想。

一、核心思想

考虑有些同学可能不是很清楚骨骼,那我就以我个人的理解方法来说一下。

1.理解

这个骨骼,如其名,就看你自身好了,通俗点就是理解为:你通过大脑,控制右手抬起,但是右手是在你的右臂,然后右臂额又是在你的身体主干差不多,所以这是一个从大脑到主干,到右臂,再到右手的过程。

真正动的是骨骼,而外表上看起来是皮肤,毛发等的运动。

2.思路

所以,放在游戏里也是一样的。pygame一般来说,做横板的,2D的多一点,道理一样的,我觉得这除了3D之外2D也是通用的。但是这里的话骨骼没有具体的,只能通过坐标之间的关联来实现,其次,渲染则是在关联坐标上进行渲染,在后期运动过程中,只要调节各坐标之间的关系即可。 

除此之外,要注意的是,用于渲染的图片,不是整个被渲染物,而是要被拆分的各个部分。

二、码前准备

1.确定对象

首先我们要知道,我们要做谁的运动动画。

简单点,就比如做一个人好了。

2.基础代码

额这里就是做pygame的基础的代码,可以直接跳过这里先。

import pygame
pygame.init()
screen=pygame.display.set_mode((800,600))
pygame.display.set_caption("骨骼设想")


while True:
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            pygame.quit()
    pygame.display.flip()

3.确定骨骼

准备好基础之后,就是考虑骨骼如何确定,如上文所说,就是通过坐标的相对。

好,那我们先来归纳一下。

以头部为第一级,身体和头发为第二级,四肢为第三级。

 那就设头部的坐标px,py,然后根据其他肢体相对于头部的位置来渲染其他肢体。

三、具体代码

import pygame
pygame.init()
screen=pygame.display.set_mode((800,600))
pygame.display.set_caption("骨骼设想")
back=pygame.image.load("back.png")
px,py=300,300
head=pygame.image.load("head.png")
hair=pygame.image.load("hair.png")
body=pygame.image.load("body.png")
Larm=pygame.image.load("Larm.png")
Rarm=pygame.image.load("Rarm.png")
Lleg=pygame.image.load("Lleg.png")
Rleg=pygame.image.load("Rleg.png")

while True:
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            pygame.quit()
    screen.blit(back,(0,0))
    screen.blit(head,(px,py))
    screen.blit(hair,(px+10,py))
    screen.blit(body,(px+20,py+70))
    screen.blit(Lleg,(px+25,py+130))
    screen.blit(Larm,(px+30,py+80))
    screen.blit(Rleg,(px+25,py+130))
    screen.blit(Rarm,(px+30,py+80))
    pygame.display.flip()

额,我画的可能确实有点草率,然后图片尺寸大小没对上,所以效果可能不是很好看,但是差不多,意思到了起码。

 那么,在上述代码中,其实真正起到骨骼控制作用的是,以下几行。

    screen.blit(head,(px,py))
    screen.blit(hair,(px+10,py))
    screen.blit(body,(px+20,py+70))
    screen.blit(Lleg,(px+25,py+130))
    screen.blit(Larm,(px+30,py+80))
    screen.blit(Rleg,(px+25,py+130))
    screen.blit(Rarm,(px+30,py+80))

四、总结

当然,这只是这个骨骼设想的开始。

骨骼设想若是发展到后面,会联系上碰撞确定一些伤害值比如说,除此之外还可以做动画?或是角色的动作动画,可能现在这个程度比较浅,能体现出的东西比较少,但是到后面毋庸置疑可以挖掘出更多东西。

 QQ技术分享交流互助群:566341887   (大家一起互帮互助,共同进步,交流分享,奔赴未来!)

标签:骨骼,Python,screen,py,pygame,px,blit
From: https://blog.csdn.net/Hoke_C/article/details/143088275

相关文章

  • python+flask框架的基于Uniapp的核酸检测系统(开题+程序+论文) 计算机毕业设计
    取,系统界面在最后面。系统程序文件列表开题报告内容选题背景在当前全球新冠疫情的背景下,核酸检测已成为疫情防控的重要手段之一。关于核酸检测系统的研究,现有研究主要集中在大型医疗机构或政府卫生部门的信息系统整合与优化上,专门针对移动端、特别是基于Uniapp框架的核酸......
  • python+flask框架的基于SSM框架的微信小程序(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景随着移动互联网技术的飞速发展,微信小程序作为一种轻量级的应用形式,已经深入到人们的日常生活中。微信小程序以其无需下载、即用即走的特点......
  • python+flask框架的基于OA技术的办公文档归档系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景关于办公文档归档系统的研究,现有研究主要集中在传统档案管理系统以及大型企业级内容管理系统(ECM)方面,这些系统虽然功能强大,但往往复杂且成......
  • ultralytics yolo 训练及推理自定义人脸关键点数据 - python 实现
            Ultralytics YOLO 是计算机视觉和ML领域专业人士的高效工具。    深度学习的关键点任务也是基础和常见任务,所以这里进行基于ultralyticsyolo自定义关键点数据集的模型训练和模型推理。    根据需求,可能会发布其webui版本,现在已经发布......
  • python 编写 学生管理系统
    要求:解答: print("***************欢迎使用学生管理系统***************")print("1.添加学生2.查看学生列表3.查看学生信息4.删除学生5.退出系统")dictId={}dictCla={}dictScore={}#1.添加学生defadd():name=input("请输入学生姓名:")......
  • isicalendar.week——python中的WEEKNUM(ISO周数获取)
    Excel中的weeknum很方便,在python中却“没有”week_num,但可以有datetime.now().isocalendar().week。(笔记模板由python脚本于2024年10月18日11:38:15创建,本篇笔记适合喜欢python,爱鼓捣时间对象的coder翻阅)【学习的细节是欢悦的历程】Python官网:https://www.pyt......
  • Python加速运算——"-O优化"和Cython
    1.以release模式运行Pythonpython-Oprocess_file.py可以在代码中加入以下命令,判断是否为release模式:if__debug__:print("Debugmode")else:print("Releasemode")2.使用Cython下载Cython:pipinstallcython编写pyx文件,即要编译的Python代码:为了后面方......
  • 基于Python的旅游网站数据爬虫分析-可视化大屏
    《[含文档+PPT+源码等]精品基于Python的旅游网站数据爬虫分析》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功以及课程答疑与微信售后交流群、送查重系统不限次数免费查重等福利!软件开发环境及开发工具:开发语言:python使用框架:Django前......
  • python+flask计算机毕业设计影视信息资源交易平台(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,影视产业迎来了前所未有的繁荣期。然而,影视信息资源的分布不均、交易渠道不畅等问题日益凸显,限制了影视作品的传......
  • 洛谷P3741 小果的键盘(Python)
    海阔凭鱼跃,天高任鸟飞。——宋·阮阅《诗话总龟前集》一、题目传送门https://www.luogu.com.cn/problem/P3741二、代码input()s=list(input().strip())ans="".join(s).count("VK")foriinrange(len(s)):ifs[i]=='V':s[i]='K'......