场景编辑器的草案

Jojoushi场景编辑器

 

整个脚本的演示和编辑以点击事件为基本的单元,一次点击事件的生命期是:玩家点击一次鼠标到下一次有效的点击鼠标之间的这段时间。

 

1.显示场景

   显示模型存在的场景,可以通过上下左右案件在场景中漫游。

2.指定场景关键点.

       场景的地面是一块NXN的网格,使用者可以指定其中某些点为关键点,模型只能在这些位置间移动,并停留在这些点上。

3.导入模型及音乐

a.通过 导入〉〉模型 可以选择路径导入一个mesh类型的模型,模型的所有关联动画会显示在界面上,双击该动画,模型会演示该动画。

可以更改模型的位置到某个关键点上,否则默认显示在场景正中央。

b.通过导入〉〉音乐 可以导入一个mp3类型的音乐素材。

编辑器会给素材分配一个ID,在后面的脚本中以该ID标示该素材。

可以在界面上点击该素材并删除,但分配的ID并不发生改变。如果仍然存在使用该素材的脚本,提出警告。

3.编辑并演示脚本

脚本语言包括以下几类:

1.       模型表演动画

可以通过增加脚本使得某模型开始播放动画

例如:12 PlayAction “LAUGH” count=1 //播放动画一次

      12 PlayAction “LAUGH” time=1000 //播放动画1

12 PlayAction “LAUGH” UntilClick//播放直至下一次点击事件

2.       移动模型

模型移动期间不响应点击事件,移动方式有如下几种:

a.模型可以在关键点间移动,根据参数可改变模型移动的速度。

        例如:    Move 12 From P1 to P2 Speed 10 ///将模型从P1点移动到P2 速度为10

b.模型可以根据输入的角度旋转。(在这里我们假定都是绕y周在xz平面上旋转)

         例如: Move 12 Degree 80 Speed 10//将模型旋转80 设置角速度10

c.移动/旋转的同时可表演动画。

     例如:    Move 12 From P1 to P2 PlayerAction“Run”///将模型从P1点移动到P2 同时表演动画”Run”

3.       打印对话框

在场景的下方显示对话框

例如: Show Dialog: 云天河你真是我的好兄弟
对话框中的文字按固定速度逐字显示,玩家点击/按回车可以将所有文字显示出来,再次点击/按下回车时,如果此时所有本点击事件的动画已经播放完毕,可以进入下一个点击事件,否则不立即响应此次点击,等待动画播放完毕直接进入下一个点击事件

4.       镜头移动

镜头也是一个模型。在场景初始化时就存在。

可以对镜头进行旋转,移动,方法同模型移动。

也可以进入镜头视角,通过前后左右控制镜头。

另外还有轨迹的问题,这个很麻烦啊 先不考虑

5.       镜头特效

以后再说。

6.       播放音效 开始/终止

可以通过脚本控制素材中音乐的开始和结束。

例如:Music 1 Start

Music 1 Stop

7.保存脚本

       保存当前脚本以及所有加载的素材信息。

8.加载脚本

       将原有脚本加载到场景中,如果素材信息缺失,提出警告。

转载于:https://www.cnblogs.com/rimy/archive/2009/05/11/1454432.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/463464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++学习书籍推荐《超越C++标准库:Boost库导论》下载

《超越C标准库Boost库导论》不仅介绍了Boost库的功能、使用方法及注意事项,而且还深入讨论了Boost库的设计理念、解决问题的思想和技巧以及待处理的问题。因此,本书是一本了解Boost库并探索其机理的实用手册。 百度云及其他网盘下载地址:点我…

批量替换 MySQL 指定字段中的字符串

批量替换 MySQL 指定字段中的字符串 批量替换 MySQL 指定字段中的字符串是数据库应用中很常见的需求,但是有很多初学者在遇到这种需求时,通常都是用脚本来实现;其实,MySQL 内置的有批量替换语法,效率也会高很多&#x…

WebCombo

原文来自方案网 http://www.fanganwang.com/Product-detail-item-1162.html,欢迎转载。 关键字: WebCombo.NET 是一款基于AJAX技术,处于行业领先地位的Combo box控件。它提供众多高级的数据输入功能及其独特的技术。通过其内置的数据过滤功能…

Redis之压缩列表ziplist

Redis是基于内存的nosql,有些场景下为了节省内存redis会用“时间”换“空间”。 ziplist就是很典型的例子。 ziplist是list键、hash键以及zset键的底层实现之一(3.0之后list键已经不直接用ziplist和linkedlist作为底层实现了,取而代之的是qu…

动态链表与静态链表

一. 静态链表 在某些语言中指针是不被支持的,只能使用数组来模拟线性链表的结构.在数组中每个元素不但保存了当前元素的值,还保存了一个”伪指针域”,一般是int类型,用于指向下一个元素的内存地址. #define MAXSIZE 100; typedef struct{ ElemType data; in…

Mysql索引机制B+Tree

1、问题引入    有一个用户表,为了查询的效率,需要基于id去构建索引。构建索引我们需要考虑两个方面的问题,1个是查询的效率,1个是索引数据的存储问题。该表的记录需要支持百万、千万、甚至上亿的数据量,如果将索引…

GLSL学习笔记

GLSL语言内置的变量,包括内置的顶点属性(attribute)、一致变量(uniform)、易变变量(varying)以及常量(const),一方面加深印象,另一方面今天的文章…

redis源码之main()函数剖析

今天看了redis的源码之中的main()函数,将大概的流程进行梳理。 在代码中进行了相应的注释,便于阅读者理解: int main(int argc, char **argv) {struct timeval tv;int j;#ifdef REDIS_TESTif (argc 3 && !strcasecmp(argv[1], &qu…

SQL Server 文件规划 -位置规划

数据库设计中,文件规划是相当重要的一个环节。 这部分内容包括文件数目的规划,大小的规划,位置的规划。 本篇介绍的是文件位置的规划,如下图所示 1. 数据文件 有可能的情况下,应该区分经常更新的表与不经常更新的表。分…

const关键字

const关键字const是constant的简写,只要一个变量前面用const来修饰,就意味着该变量里的数据可以被访问,不能被修改。也就是说const意味着“只读”readonly规则:const离谁近,谁就不能被修改;const修饰一个变…

深入理解计算机系统 第十二章 并发编程

如果逻辑控制流在时间上重叠,那么它们就是并发的(concurrent) 这种常见的现象称为并发(concurrency),出现在计算机系统的许多不同层面上。 并发不仅仅局限于内核,它也可以在应用程序中扮演重要角…

Redis源码分析之小型测试框架testhelp.h和redis-check-aof.c日志检测

使用的是redis 3.2版本 test中的文件主要分为以下几个: 1.memtest.c 内存检测 2.redis_benchmark.c 用于redis性能测试的实现,后续会当做单独的一个章节进行分析 3.redis_check_aof.c 用于更新日志检查的实现。 4.redis_check_dump.c 用于本地数据库检查…

VSTS学习和迁移(1) 安装部署

要将开发环境从SVN到VFS中,下个月开始迁移。 先从WebCast中下载文件,看了安装部署部分。以下为部分截图: 一:课程内容 Team Foundation 的逻辑结构与物理结构 Team Foundation 系统要求 Team Foundation 安装实战 Team Founda…

【HNOI2013】数列

题面 题解 设\(\{a_n\}\)为差分数组,可以得到柿子:\[ \begin{aligned} ans & \sum_{a_1 1} ^ m \sum_{a_2 1} ^ m \cdots \sum_{a_{k-1} 1} ^ m (n - \sum_{i 1} ^ {k - 1} a_i) \\ & nm^{k - 1} - \sum_{a_1 1} ^ m \sum_{a_2 1} ^ m \cd…

程序员的艺术:排序算法舞蹈

1、冒泡排序: 2、希尔排序: 3、选择排序: 4:插入排序: 5、快速排序: 6、归并排序: 转载于:https://www.cnblogs.com/jxgxy/archive/2012/08/20/2648210.html

Redis源码分析之内存检测memtest

redis的内存检测会和机器的CPU位数有关,32位或64位会影响后面的一些宏定义参数。首先给出memtest中的API: void memtest_progress_start(char *title, int pass) /* 内存检测加载开始,输出开始的一些图线显示 */ void memtest_progress_end(…

Java Collections Framework - Java集合框架List,Map,Set等全面介绍之概要篇

deng 转载于:https://www.cnblogs.com/jacktu/archive/2009/05/15/1457316.html

C语言 数据结构 树和二叉树

树 1、树:是n节点的有限集。树是n(n>0)个节点的有限集。 n0时成为空树。 在任意一颗非空树中:(1)有且仅有一个称为根的节点;(2)当n>0时,其余节点可分为m(m>0)个互不相交的…

Oracle开启关闭归档日志

开启归档日志 shutdown immediate; --关闭数据库 startup mount; --打开数据库 alter database archivelog; --开启归档日志 alter database open; --开启数据库 archive log list; --查看归档日志是否开启 关闭归档日志 shutdown immediate; --关闭数据库 startup mount; …

Redis源码分析之anet网络通信的封装

anet是redis对tcp/ip网络中socket api接口的一个全面的封装,针对server/client端。封装的api的接口如下,注释了主要的接口: // tcp连接 int anetTcpConnect(char *err, char *addr, int port); // 非阻塞连接 int anetTcpNonBlockConnect(ch…