CN105955731A - 一种手机游戏快速编写方法和系统 - Google Patents
一种手机游戏快速编写方法和系统 Download PDFInfo
- Publication number
- CN105955731A CN105955731A CN201610264337.2A CN201610264337A CN105955731A CN 105955731 A CN105955731 A CN 105955731A CN 201610264337 A CN201610264337 A CN 201610264337A CN 105955731 A CN105955731 A CN 105955731A
- Authority
- CN
- China
- Prior art keywords
- role
- information
- program
- javascript
- quick
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000006870 function Effects 0.000 claims abstract description 32
- 238000009954 braiding Methods 0.000 claims description 8
- 239000000203 mixture Substances 0.000 claims description 8
- 239000000463 material Substances 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000005314 correlation function Methods 0.000 claims description 4
- 238000000465 moulding Methods 0.000 claims description 3
- 238000005070 sampling Methods 0.000 claims description 3
- 241000406668 Loxodonta cyclotis Species 0.000 claims 1
- 238000011161 development Methods 0.000 abstract description 11
- 230000007547 defect Effects 0.000 abstract 1
- 230000003993 interaction Effects 0.000 abstract 1
- 230000009471 action Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种手机游戏快速编写方法和系统,包括建立项目文件并保存至服务器端;加载所述项目文件并对所述项目文件进行解析;实现程序中的角色场景对象与多媒体资源信息的关联与交互;对角色场景信息的脚本进行解析,编译成用JavaScript描述的语法,对变量函数信息进行解析,生成对应的JavaScript代码;用JavaScript将Scratch编程语言的功能进行封装,以实现在手机浏览器中运行;用户点击开始运行或者进行交互时,各个角色中对应的代码被执行。本发明提供了一种快速编写手机游戏的方法和系统,克服了手机游戏开发速度慢、难度大、成本高的缺点,对开发者的编程基础要求大大降低,使手机游戏开发效率得到极大提升,开发更为简单、快捷,具有广阔的应用前景。
Description
技术领域
本发明涉及网络应用技术领域,特别涉及一种手机游戏快速编写方法和系统。
背景技术
随着移动互联网技术的快速发展,手机终端的智能化的不断提升,越来越多的用户通过安装各种移动应用程序,极大地方便了人们的日常生活,而手机游戏逐渐成为人们生活中不可缺少的娱乐组成部分。
在目前的手机游戏开发流程中,游戏的主要逻辑是由程序员通过对程序逻辑的编写,完成对美术资源的加载、显示和用户输入、网络消息、定时器等各种事件的判断。现有的手机游戏一般都由专业的设计者和编程者进行开发,游戏开发涉及到的知识面较广,例如数学知识、程序开发语言、底层API等,而每个领域又包含许多抽象的概念,开发难度大、成本高。
因此,有必要提供一种可快速编写手机游戏的方法,降低手机游戏开发难度,让非编程技术人员,甚至是儿童,都可以迅速开发出手机游戏,以便在玩手机游戏的同时也能学习编程开发,方便在移动互联网传播。
发明内容
针对以上问题,本发明专利目的在于设计一种手机游戏快速编写方法和系统,克服手机游戏开发难度大、成本高的缺点,实现简单、快捷地开发手机游戏,具有广阔的应用前景。
本发明是通过以下技术方案实现的:
一种手机游戏快速编写方法,包括:
建立项目文件并保存至服务器端,所述项目文件包括多媒体资源信息、角色场景信息和变量函数信息;
客户端加载所述项目文件,并对所述项目文件进行解析,具体包括对所述多媒体资源信息解析并进行加载,对角色场景信息进行解析并创建角色场景对象;
实现程序中的角色场景对象与多媒体资源信息的关联与交互;
对角色场景信息的脚本进行解析,编译成用JavaScript描述的语法,对变量函数信息进行解析,生成对应的JavaScript代码;
用JavaScript将Scratch编程语言的功能进行封装,以实现在手机浏览器中运行;
用户点击开始运行或者进行交互时,各个角色中对应的代码被执行。
进一步,本发明所述媒体资源信息包括图片信息和音频信息,具体包括图片的文件名、位置、大小、旋转中心,音频的文件名、取样数目、码率。
进一步,本发明所述角色场景信息包括角色的造型、初始状态以及脚本,场景的图片、大小、显示方式、脚本。
本发明还提供一种手机游戏快速编写系统,包括服务器端和客户端;其中,
所述服务器端包括项目管理模块,用于管理、分发项目文件及素材;
所述客户端包括:用于与服务器端进行交互并加载所述项目文件的IO控制模块;用于对所述项目文件进行解析并创建程序对象的程序解释模块;用于实现所述程序对象与项目文件关联与交互的多媒体资源控制模块;用于使用JavaScript的Canvas相关功能实现逻辑控制相关的接口,以供程序执行模块调用的程序执行API模块;以及用于控制程序的运行和用户交互相关的逻辑的程序执行模块。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1是本发明一种手机游戏快速编写方法的模块图;
图2是本发明一种手机游戏快速编写系统的流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步的详细说明。
本发明提供一种手机游戏快速编写系统,请参阅图1,包括服务器端和客户端;其中,
所述服务器端包括项目管理模块,用于管理、分发项目文件及素材。
所述客户端包括:用于与服务器端进行交互并加载所述项目文件的IO控制模块;用于对所述项目文件进行解析并创建程序对象的程序解释模块;用于实现所述程序对象与项目文件关联与交互的多媒体资源控制模块;用于使用JavaScript的Canvas相关功能实现逻辑控制相关的接口,以供程序执行模块调用的程序执行API模块;以及用于控制程序的运行和用户交互相关的逻辑的程序执行模块。
服务器端包括项目管理模块。项目文件为一个Zip文件,Zip文件的内容包括项目用到的图片资源、音频资源,以及项目的源代码文件。包括以下内容:图片与音频等多媒体资源的描述,包括图片的文件名、位置、大小、旋转中心,音频的文件名、取样数目、码率等。各个角色及场景的描述,包括角色的造型、初始状态以及脚本,场景的图片、大小、显示方式、脚本等。创建的变量、函数等。
服务器端首先要将提交到服务器的项目文件进行解压,并将素材文件保存在固定位置,以方便客户端调用。由于源代码项目文件中的资源文件的命名方式为“文件MD5值.扩展名”,而解压之后每个文件的名字为“数字编号.扩展名”,解压完成后需要计算文件的MD5值并进行重命名。
服务器端同时提供Web服务,客户端请求项目文件时将项目文件发送至客户端,然后客户端会依次请求各个资源文件。服务器端负责将资源文件发送到客户端。
客户端由IO控制模块、程序解释模块、多媒体资源控制模块、程序执行API以及程序执行模块构成。
IO控制模块负责客户端与服务器端进行交互,以可以控制的方式加载服务器上的资源。主要实现如下功能:请求队列对象,用于管理请求队列,并监测请求的状态,对成功、错误、失败的请求分别调用对应的回调函数,同时提供加载进度提示,异常处理等功能;IO对象,用于对服务器资源进行请求,提供函数通过使用XMLHttpRequest对象对服务器资源发起Ajax请求,同时提供不同资源类型的请求函数,对不同类型资源的请求做出不同的处理,方便其他模块调用。
程序解释模块负责对程序源代码进行解析。此模块为本系统的核心模块。其功能是对项目源代码中的JSON数据进行解析,得到角色与场景的信息,包括:①对其中的多媒体资源,交由IO控制模块进行加载,并由多媒体控制模块进行管理。②对角色或场景的信息进行解析,创建角色或场景对象。③对角色与场景的脚本进行解释,编译成为JavaScript代码。这里使用了JavaScript语言的函数式编程,采用CPS风格(Continuation-Passing Style,后继传递风格)实现脚本的编译器,使得编译器实现复杂度大大降低。具体的,项目源代码文件中对角色或场景的脚本的描述方式为嵌套的数组,通过尾递归方式处理该数组,可以得到脚本的结构;然后对于每一条代码,通过拼接命令的名字与参数,可以得到相对应的JavaScript语句,最终得到描述该脚本的JavaScript代码。④对程序创建的变量、函数进行解析,生成对应的JavaScript代码。
多媒体资源控制模块负责实现程序中的对象与多媒体资源的关联与交互,例如音频的播放、切换,角色在舞台的显示、隐藏等。除此之外,多媒体资源控制模块还需要对特殊格式的多媒体文件进行处理。JavaScript的Canvas无法直接支持SVG格式的图片文件,而常用的矢量图多为SVG格式。在将SVG文件绘制到Canvas之前,需要将SVG文件进行解析,按SVG中图形元素标签的语法描述,绘制图形到一个临时Canvas之上,然后再绘制到目标Canvas上。
程序执行API是用JavaScript将Scratch编程语言的功能进行封装,以实现在手机浏览器中运行。具体的,Scratch编程语言的功能包括动作、事件、外观、控制、侦测、多媒体控制、数字和逻辑等主要分类。其中部分功能直接对应JavaScript语法中的相应功能,其它功能则用JavaScript编程实现。这里创建了表示角色的Sprite类以及表示场景的Stage类。Sprite类包含了角色的各种行为函数及事件监听函数,所有的角色对象都是在Sprite类的基础上进行扩展。类似的,Stage类包含了场景的各种行为函数及用户动作处理函数,用于创建场景对象。
程序执行模块负责控制程序的运行,以及用户交互相关的逻辑。通过调用其它各个模块,在客户端浏览器上实现与Scratch项目在PC端相同的运行效果。
根据以上内容,本发明提出了一种手机游戏快速编写方法,请参阅图2,包括:
步骤(1),建立项目文件并保存至服务器端,所述项目文件包括多媒体资源信息、角色场景信息和变量函数信息;
步骤(2),客户端加载所述项目文件,并对所述项目文件进行解析,具体包括对所述多媒体资源信息解析并进行加载,对角色场景信息进行解析并创建角色场景对象;
步骤(3),实现程序中的角色场景对象与多媒体资源信息的关联与交互;
步骤(4),对角色场景信息的脚本进行解析,编译成用JavaScript描述的语法,对变量函数信息进行解析,生成对应的JavaScript代码;
步骤(5),用JavaScript将Scratch编程语言的功能进行封装,以实现在手机浏览器中运行;
步骤(6),用户点击开始运行或者进行交互时,各个角色中对应的代码被执行。
具体的,包括:
用户在PC端使用Scratch这一可视化编程语言,快速、方便地开发出游戏,然后提交项目文件到本发明所述系统的服务器端。
服务器端接收到提交的项目文件后,对文件进行解压,提取出多媒体资源文件,将多媒体资源文件按文件的MD5值进行重命名,并保存在素材库中。为方便手机端访问,服务器端将项目对应的URL生成二维码。
客户端手机扫描二维码即可访问项目对应的URL。浏览器打开URL后,首先加载HTML、CSS及JavaScript文件。加载完之后,浏览器会执行JavaScript文件,载入上述各个模块。
IO控制模块开始加载项目的源代码,即项目文件。加载完成之后,由程序解释模块对其进行解析。首先需要从中提取出图片、音频等多媒体资源描述对象,得到各个资源文件的文件名及地址,然后交由IO控制模块向服务器端请求多媒体资源文件。多媒体资源文件加载完毕之后,对于图片资源文件,回调函数会根据项目文件中描述的角色或场景的信息,创建角色或者场景对象,并与对应的多媒体资源对象进行关联,在多媒体资源控制模块中进行注册;对于音频资源文件,回调函数会创建对应的音频对象,并与音频资源文件进行关联。
接下来程序解释模块需要对各个角色与场景的脚本进行编译,构建语法树,生成对应的JavaScript代码,保存在角色或场景对象中。
此时项目载入完毕,程序交由程序执行模块控制。程序执行模块在Canvas对象上绘制游戏初始界面,并等待用户操作。
用户点击开始运行或者进行交互时,各个角色中对应的代码被执行。代码执行时,会根据实际需求,调用程序执行API中的函数,实现相关功能。例如,当用户点击鼠标时,对应角色或场景的鼠标事件监听函数会执行,调用角色或场景的相关代码。
以上所述本发明的具体实施方式,并不构成对本发明保护范围的限定。任何根据本发明的技术构思所做出的各种其他相应的改变与变形,均应包含在本发明权利要求的保护范围内。
Claims (4)
1.一种手机游戏快速编写方法,其特征在于,包括:
建立项目文件并保存至服务器端,所述项目文件包括多媒体资源信息、角色场景信息和变量函数信息;
客户端加载所述项目文件,并对所述项目文件进行解析,具体包括对所述多媒体资源信息解析并进行加载,对角色场景信息进行解析并创建角色场景对象;
实现程序中的角色场景对象与多媒体资源信息的关联与交互;
对角色场景信息的脚本进行解析,编译成用JavaScript描述的语法,对变量函数信息进行解析,生成对应的JavaScript代码;
用JavaScript将Scratch编程语言的功能进行封装,以实现在手机浏览器中运行;
用户点击开始运行或者进行交互时,各个角色中对应的代码被执行。
2.根据权利要求1所述的一种手机游戏快速编写方法,其特征在于,所述媒体资源信息包括图片信息和音频信息,具体包括图片的文件名、位置、大小、旋转中心,音频的文件名、取样数目、码率。
3.根据权利要求1所述的一种手机游戏快速编写方法,其特征在于,所述角色场景信息包括角色的造型、初始状态以及脚本,场景的图片、大小、显示方式、脚本。
4.一种手机游戏快速编写系统,其特征在于,包括服务器端和客户端;其中:
所述服务器端包括项目管理模块,用于管理、分发项目文件及素材;
所述客户端包括:用于与服务器端进行交互并加载所述项目文件的IO控制模块;用于对所述项目文件进行解析并创建程序对象的程序解释模块;用于实现所述程序对象与项目文件关联与交互的多媒体资源控制模块;用于使用JavaScript的Canvas相关功能实现逻辑控制相关的接口,以供程序执行模块调用的程序执行API模块;以及用于控制程序的运行和用户交互相关的逻辑的程序执行模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610264337.2A CN105955731B (zh) | 2016-04-26 | 2016-04-26 | 一种手机游戏快速编写方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610264337.2A CN105955731B (zh) | 2016-04-26 | 2016-04-26 | 一种手机游戏快速编写方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105955731A true CN105955731A (zh) | 2016-09-21 |
CN105955731B CN105955731B (zh) | 2019-05-14 |
Family
ID=56915440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610264337.2A Expired - Fee Related CN105955731B (zh) | 2016-04-26 | 2016-04-26 | 一种手机游戏快速编写方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105955731B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106709974A (zh) * | 2016-12-20 | 2017-05-24 | 网易(杭州)网络有限公司 | 游戏场景绘制方法及装置 |
CN106843873A (zh) * | 2017-01-18 | 2017-06-13 | 深圳市编玩边学教育科技有限公司 | 一种远程游戏编程系统 |
WO2018099214A1 (zh) * | 2016-11-30 | 2018-06-07 | 华南理工大学 | 一种图形化编程控制与存储系统 |
CN108694047A (zh) * | 2017-04-11 | 2018-10-23 | 武汉斗鱼网络科技有限公司 | 资源加载方法及装置 |
CN108804090A (zh) * | 2018-05-08 | 2018-11-13 | 张弢 | 基于h5技术的app虚拟原型制作平台、制作方法及模拟方法 |
CN110308902A (zh) * | 2019-06-28 | 2019-10-08 | 百度在线网络技术(北京)有限公司 | 文件生成方法、装置、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101963899A (zh) * | 2009-07-24 | 2011-02-02 | 华中师范大学 | 一种逻辑动漫平台系统 |
CN102520972A (zh) * | 2011-12-31 | 2012-06-27 | 上海方寸信息科技有限公司 | 电子游戏开发系统及其方法 |
CN103377039A (zh) * | 2012-04-13 | 2013-10-30 | 腾讯科技(深圳)有限公司 | 一种网页游戏开发、解析方法、一种编辑器以及解析装置 |
CN104090765A (zh) * | 2014-07-16 | 2014-10-08 | 福建天晴数码有限公司 | 一种手机游戏转网页游戏的方法及装置 |
-
2016
- 2016-04-26 CN CN201610264337.2A patent/CN105955731B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101963899A (zh) * | 2009-07-24 | 2011-02-02 | 华中师范大学 | 一种逻辑动漫平台系统 |
CN102520972A (zh) * | 2011-12-31 | 2012-06-27 | 上海方寸信息科技有限公司 | 电子游戏开发系统及其方法 |
CN103377039A (zh) * | 2012-04-13 | 2013-10-30 | 腾讯科技(深圳)有限公司 | 一种网页游戏开发、解析方法、一种编辑器以及解析装置 |
CN104090765A (zh) * | 2014-07-16 | 2014-10-08 | 福建天晴数码有限公司 | 一种手机游戏转网页游戏的方法及装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018099214A1 (zh) * | 2016-11-30 | 2018-06-07 | 华南理工大学 | 一种图形化编程控制与存储系统 |
US10963224B2 (en) | 2016-11-30 | 2021-03-30 | South China University Of Technology | Graphical programming control and storage system |
CN106709974A (zh) * | 2016-12-20 | 2017-05-24 | 网易(杭州)网络有限公司 | 游戏场景绘制方法及装置 |
CN106709974B (zh) * | 2016-12-20 | 2020-04-21 | 网易(杭州)网络有限公司 | 游戏场景绘制方法及装置 |
CN106843873A (zh) * | 2017-01-18 | 2017-06-13 | 深圳市编玩边学教育科技有限公司 | 一种远程游戏编程系统 |
CN108694047A (zh) * | 2017-04-11 | 2018-10-23 | 武汉斗鱼网络科技有限公司 | 资源加载方法及装置 |
CN108804090A (zh) * | 2018-05-08 | 2018-11-13 | 张弢 | 基于h5技术的app虚拟原型制作平台、制作方法及模拟方法 |
CN110308902A (zh) * | 2019-06-28 | 2019-10-08 | 百度在线网络技术(北京)有限公司 | 文件生成方法、装置、设备和存储介质 |
CN110308902B (zh) * | 2019-06-28 | 2023-10-03 | 百度在线网络技术(北京)有限公司 | 文件生成方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105955731B (zh) | 2019-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105955731A (zh) | 一种手机游戏快速编写方法和系统 | |
US10620948B2 (en) | Application system for multiuser creating and editing of applications | |
US10628132B2 (en) | Inversion of control framework for multiple behaviors of a process | |
CN105814539B (zh) | 用于代码虚拟化和远程进程调用生成的方法和装置 | |
Barthès | OMAS—a flexible multi-agent environment for CSCWD | |
CN104866327B (zh) | 一种php开发方法及框架 | |
CN103713891B (zh) | 一种在移动设备上进行图形渲染的方法和装置 | |
US9672140B1 (en) | Processing special requests at dedicated application containers | |
Satheesh et al. | Web development with MongoDB and NodeJs | |
CN105872083A (zh) | 一种支持不同类型客户端访问服务器的方法、服务器及系统 | |
Hales | HTML5 and JavaScript Web Apps: Bridging the gap between the web and the mobile web | |
CN105824900A (zh) | 一种基于react-native的页面展示系统 | |
CN110083342A (zh) | 一种程序生成方法、装置以及计算机可读存储介质 | |
Chin et al. | The Definitive Guide to Modern Java Clients with JavaFX 17 | |
Dixit | Android | |
CN112068879B (zh) | 基于配置化的客户端应用程序开发框架构建方法及装置 | |
CN117519877A (zh) | 快应用卡片的渲染方法、装置、存储介质及电子设备 | |
Khanna et al. | Ionic: Hybrid Mobile App Development | |
US10324692B2 (en) | Integration for next-generation applications | |
US11294644B2 (en) | Inversion of control framework for multiple behaviors on top of a process | |
Ruiz | Mastering Android Application Development | |
Singh et al. | Building Microservices with Micronaut®: A quick-start guide to building high-performance reactive microservices for Java developers | |
Bryksin et al. | Ubiq Mobile+ QReal a Technology for Development of Distributed Mobile Services | |
Newnham | Microsoft HoloLens By Example | |
Dumont et al. | A mobile distributed system for remote resource access |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190514 |