一.运行效果 1.建立一幅具有地形起伏和不同地貌纹理的地图: 地图中间为凹陷的河道,两角为突出的高地,高地和低地之间以斜坡通道相连. 水下为沙土材质,沙土材质网格贴合地形,河流材质网格则保持水平. 2.在地图上随机放置土黄色小方块表示可控单位 默认控制为自由相机--鼠标左键拖拽改变视角,上下左右键进行移动:按v键切换为RTS式控制,视角锁定为45度俯视,按wasd键水平移动相机,鼠标滚轮调整相机缩放. 3.左键拖拽鼠标产生选框: 松开鼠标后,被选中的单位显示为白色 4.右键单击地图,选中单位开始…
一.实验目的: 1.在上一篇的"RTS式单位控制"的基础上添加逻辑线程,为每个单位实现ai计算: 2.用精灵动画为单位的行为显示对应的动作效果. 二.运行效果: 1.场景中的单位分为红蓝两方,单位在发现敌对单位后向敌人移动: 2.进入攻击范围后对敌对单位发起攻击: 注意,单位在"移动"."攻击"."受伤"."死亡"时分别播放不同的动画. 3.切换为RTS式控制后,可以选择单位并发布"移动攻击&qu…
设计目标:借鉴前辈编程者的经验将简单的配置文本转化为3D场景,并根据配置文件在场景中加入图片和可播放的视频,最终形成可浏览的3D陈列室. 一.使用效果 1.txt配置文件: (博客园的富文本编辑器会改变txt文本的排版,所以用图片方式呈现文本) 第一行表示陈列室的每一层前后最多有5个房间,左右最多有8个房间,接下来是第一层的地图:"0"表示普通房间,"+.-.|"表示连接房间的通道,"#"表示地面有洞的房间可用来连接下一层,"^&quo…
实验目标:借助canvas把一张国际象棋棋子图片转换为一组适用于WebGL渲染的精灵动画图片,不借助其他图片处理工具,不引用其他库只使用原生js实现. 初始图片如下: 一.图片分割 将初始图片分割为六张大小相同的棋子图片 1.html舞台: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>处理棋子…
使用骨骼动画技术可以将网格的顶点分配给若干骨头,通过给骨头设定关键帧和父子关系,可以赋予网格高度动态并具有传递性的变形 效果.这里结合之前的相关研究在网页端使用JavaScript实现了一个简单的骨骼动画编辑和模型生成工具. 一.显示效果: 1.访问https://ljzc002.github.io/Bones/HTML/CstestSpaceCraft2.html查看测试页面: 屏幕右侧的Babylon.js场景中是一个初始网格. 2.在Chrome浏览器控制台输入“ImportMesh("&…
计划做一个宇宙飞船模拟程序,首先做一些技术准备. 可以访问https://ljzc002.github.io/test/Spacetest/HTML/PAGE/spacetestwp2.html查看测试场景,按住qe键可以左右倾斜相机.可以在https://github.com/ljzc002/ljzc002.github.io/tree/master/test/Spacetest查看程序代码,因时间有限,github上的代码可能和本文中的代码有少许出入. 主要内容: 一.程序基础结构 二.场景…
1.事件冒泡:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. IE 5.5: div -> body -> document IE 6.0: div -> body -> html -> document Mozilla 1.0: div -> body -> html -> document -> window 2.事件捕获:事件从最不精确的对象(document 对象)开始触发,然后到最精确target 3.DO…
学了JavaScript有一段时间了,但是对闭包还是不太理解,于是怀着心中的疑问做了几个小实验,终于有点明白了. 首先看一下MDN上的定义:闭包是函数和声明该函数的词法环境的组合. 简单来说,闭包是一种现象. 我在搞清楚了2个概念后,理解了闭包. 首先是关于函数以及函数调用的概念: 我们来做一个简单的实验: function foo () { var a = 1; function bar () { console.log(a) } return bar; } var first = foo()…
js闭包小实验 一.总结 一句话总结: 闭包中引用闭包外的变量会使他们常驻内存 function foo() { var i=0; return function () { console.log(i++); } } 1.如下实验的结果是什么,为什么? |||-begin function foo() { var i=0; return function () { console.log(i++); } } var f1=foo(); var f2=foo(); f1(); f1(); f1()…
0. 前言 上接:用 Roslyn 做个 JIT 的 AOP 作为第二篇,我们基于Source Generators做个AOP静态编织小实验. 内容安排如下: source generators 是什么? 做个达到上篇Jit 一样的效果的demo source generators还存在什么问题? 1. Source Generators 是什么? 1.1 核心目的 开启dotnet平台的编译时元编程功能, 让我们能在编译时期动态创建代码, 同时考虑IDE的集成,让体验更舒适. 官方文档:htt…