一种使用Python语言进行在线项目创作的方法技术

技术编号:24089444 阅读:41 留言:0更新日期:2020-05-09 07:25
本发明专利技术公开了一种使用Python语言进行在线项目创作的方法,采用Skuplt作为核心底层运行库,所有创作需要的方法依赖于该库进行封装实现,包括如下步骤:S101:游戏引擎,项目创作中的背景、人物渲染,声音动效、物体碰撞、重力引擎、坐标系等采用createjs实现,利用createjs对于画布渲染、帧动画、物理引擎支持;S102:前端方面,采用ace作为在线代码编辑器,支持语法高亮,自动换行,代码补全,段落折叠,提供了较好的用户输入体验;S103:前端还采用jQuery作为前端基础交互框架,提供了网页弹窗、事件绑定、Ajax请求、浏览器兼容。本发明专利技术用户通过浏览器直接运行Python代码,用户打开浏览器就能进行编程的教学或学习,降低了学习门槛,降低教授和学习Python的难度。

A method of online project creation using Python language

【技术实现步骤摘要】
一种使用Python语言进行在线项目创作的方法
本专利技术涉及Python教学软件
,特别涉及一种使用Python语言进行在线项目创作的方法。
技术介绍
在代码运行技术方面,现有浏览器端能够直接运行Python的在线编译运行框架比较成熟的为Skuplt。现有市场上Python和Scratch教学工具同质化比较常见,缺少一种可以进行互动性、趣味性较强的Python项目PBL教学工具,有些Python需要用户安装较大的软件,对于新手不够友好。现有Python教学软件工具中,通常存在两种方法进行实现,一种是通过安装在计算机本地的软件,对python编译器进行封装,用户在本地进行代码的提交运行,另外一种则是将代码上传到服务器,在云端进行运行后将结果回传给用户。现有Python教学工具内容大都以海龟库为主,用户无法进行复杂交互,做出和Scratch的项目创作同样的作品效果,趣味性不强。
技术实现思路
本专利技术的目的在于提供一种使用Python语言进行在线项目创作的方法,用户不需要像以前那样安装软件或者需要发送代码到服务器运行,而是通过浏览器直接运行Python代码,用户打开浏览器就能进行编程的教学或学习,降低了学习门槛,可以快速上手制作项目,降低教授和学习Python的难度,以解决上述
技术介绍
中提出的问题。为实现上述目的,本专利技术提供如下技术方案:一种使用Python语言进行在线项目创作的方法,采用Skuplt作为核心底层运行库,所有创作需要的方法依赖于该库进行封装实现,包括如下步骤:S101:游戏引擎,项目创作中的背景、人物渲染,声音动效、物体碰撞、重力引擎、坐标系等采用createjs实现,利用createjs对于画布渲染、帧动画、物理引擎支持;S102:前端方面,采用ace作为在线代码编辑器,支持语法高亮,自动换行,代码补全,段落折叠,提供了较好的用户输入体验;S103:前端还采用jQuery作为前端基础交互框架,提供了网页弹窗、事件绑定、Ajax请求、浏览器兼容,降低了前端研发难度和时间成本。进一步地,坐标系采用笛卡尔二维直角坐标系。进一步地,还包括坐标系转换算法。进一步地,坐标系转换算法包括如下步骤:S201:x方向缩放系数=250/x方向画布半径;S202:x方向位移系数=(x方向画布最小坐标+x方向画布半径)*x方向缩放系数;S203:y方向缩放系数=250/y方向画布半径;S204:y方向位移系数=(y方向画布最小坐标+y方向画布半径)*y方向缩放系数。与现有技术相比,本专利技术的有益效果是:1、本专利技术用户不需要像以前那样安装软件或者需要发送代码到服务器运行,而是通过浏览器直接运行Python代码,用户打开浏览器就能进行编程的教学或学习,降低了学习门槛。2、本专利技术拥有一整套项目创作方面的工具方法库,包括场景、精灵、声音、海龟、循环、条件判断、事件、动作、状态属性、物理、控制台、数据、列表、函数、数学、几何等内容。通过这些方法库能够实现复杂的项目创作,给Python项目制教学提供了工具支撑。3、本专利技术在浏览器端即可直接执行,且拥有比原生Python编译器更强大工具库,可以快速上手制作项目,降低教授和学习Python的难度。附图说明图1为本专利技术的方法流程图;图2为本专利技术的createjs坐标系图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。参阅图1,一种使用Python语言进行在线项目创作的方法,采用Skuplt作为核心底层运行库,所有创作需要的方法依赖于该库进行封装实现,在游戏引擎方面,项目创作中的背景、人物渲染,声音动效、物体碰撞、重力引擎、坐标系等采用createjs实现,利用了createjs对于画布渲染、帧动画、物理引擎等完善的工具方法支持。在前端方面,采用了ace作为在线代码编辑器,支持语法高亮,自动换行,代码补全,段落折叠等功能,提供了较好的用户输入体验。除此之外,前端还采用jQuery作为前端基础交互框架,提供了网页弹窗、事件绑定、Ajax请求、浏览器兼容等功能,降低了前端研发难度和时间成本。本专利技术中的定位系统采用笛卡尔二维直角坐标系,原点在中央,而createjs框架使用的是原点为左上角的坐标系(如图2),因此要使用一种算法进行坐标系转换,本专利技术采取的是通过画布大小计算出x和y的缩放系数和位移系数,提供坐标系相互转换的算法。算法具体过程如下:1)x方向缩放系数=250/x方向画布半径;2)x方向位移系数=(x方向画布最小坐标+x方向画布半径)*x方向缩放系数;3)y方向缩放系数=250/y方向画布半径;4)y方向位移系数=(y方向画布最小坐标+y方向画布半径)*y方向缩放系数。通过附图2可以看到两个坐标系转换主要区别在原点位置不同和y方向是相反的,因此转换是通过位移系数去做原点位置的调整,并乘以缩放系数。因此从传统坐标系到createjs坐标系的实现方法为:createjs坐标系x=笛卡尔坐标系x*x方向缩放系数-x方向位移系数createjs坐标系y=笛卡尔坐标系y*y方向缩放系数-y方向位移系数从createjs坐标系到传统坐标系的实现方法为:传统坐标系x=(createjs坐标系x+x方向位移系数)/x方向缩放系数传统坐标系y=(createjs坐标系y+y方向位移系数)/y方向缩放系数。本专利技术中物理碰撞引擎采用半径法处理边界的问题,通过计算碰撞物体的中心点到对应坐标方向的1/2高度或1/2宽度是否重叠,出现重叠则判断物体碰撞,都没有重叠则物体没有发生碰撞。物体A上边界(下面简写为AT)=物体A的y坐标+A物体的1/2高度。物体A下边界(下面简写为AB)=物体A的y坐标-A物体的1/2高度。物体A的左边界(下面简写为AL)=物体A的x坐标-A物体的1/2宽度。物体A的右边界(下面简写为AR)=物体A的x坐标+A物体的1/2宽度。物体B上边界(下面简写为BT)=物体B的y坐标+B物体的1/2高度。物体B下边界(下面简写为BB)=物体B的y坐标-B物体的1/2高度。物体B的左边界(下面简写为BL)=物体B的x坐标-B物体的1/2宽度。物体B的右边界(下面简写为BR)=物体B的x坐标+B物体的1/2宽度。由于碰撞程序会两两相互比较,即会比较A和B也会比较B和A,因此条件可以只站在A或B角度来判定,即假如AT>BB且BT>AB且AR>BL且BR>AL情况本文档来自技高网...

【技术保护点】
1.一种使用Python语言进行在线项目创作的方法,其特征在于,采用Skuplt作为核心底层运行库,所有创作需要的方法依赖于该库进行封装实现,包括如下步骤:/nS101:游戏引擎,项目创作中的背景、人物渲染,声音动效、物体碰撞、重力引擎、坐标系等采用createjs实现,利用createjs对于画布渲染、帧动画、物理引擎支持;/nS102:前端方面,采用ace作为在线代码编辑器,支持语法高亮,自动换行,代码补全,段落折叠,提供了较好的用户输入体验;/nS103:前端还采用jQuery作为前端基础交互框架,提供了网页弹窗、事件绑定、Ajax请求、浏览器兼容,降低了前端研发难度和时间成本。/n

【技术特征摘要】
1.一种使用Python语言进行在线项目创作的方法,其特征在于,采用Skuplt作为核心底层运行库,所有创作需要的方法依赖于该库进行封装实现,包括如下步骤:
S101:游戏引擎,项目创作中的背景、人物渲染,声音动效、物体碰撞、重力引擎、坐标系等采用createjs实现,利用createjs对于画布渲染、帧动画、物理引擎支持;
S102:前端方面,采用ace作为在线代码编辑器,支持语法高亮,自动换行,代码补全,段落折叠,提供了较好的用户输入体验;
S103:前端还采用jQuery作为前端基础交互框架,提供了网页弹窗、事件绑定、Ajax请求、浏览器兼容,降低了前端研发难度和时间成本。


2.如权利要求1...

【专利技术属性】
技术研发人员:张之严纪磊秦然项鹏
申请(专利权)人:阿哈王国武汉教育科技有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1