博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javascript动画模拟
阅读量:4310 次
发布时间:2019-06-06

本文共 2388 字,大约阅读时间需要 7 分钟。

动画模拟

主要效果就是鼠标点击地图,人物会在地图上行走。

主要代码

  关于移动还是用到了向量(Vector)的概念

  判断移动方向代码,根据方向来选择走路效果需要用到的图片

direction: function(pos, target) {                    var z = Math.abs(target.x - pos.x);                    if (target.x > pos.x) {                        if (target.y >= pos.y - z && target.y <= pos.y + z) {                            return 'E';                        }                        if (target.y < pos.y - z) {                            return 'N';                        }                        if (target.y > pos.y + z) {                            return 'S';                        }                    }                    if (target.x < pos.x) {                        if (target.y >= pos.y - z && target.y <= pos.y + z) {                            return 'W';                        }                        if (target.y < pos.y - z) {                            return 'N';                        }                        if (target.y > pos.y + z) {                            return 'S';                        }                    }                }

   走路效果的代码,就是不停的切换图片来达到走路效果

walk: function(obj, wdir) {                    var s = obj.style;                    this.pos.x += this.man.w;                    switch (wdir) {                        case 'E':                            this.pos.y = 216;                            break;                        case 'N':                            this.pos.y = 324;                            break;                        case 'S':                            this.pos.y = 0;                            break;                        case 'W':                            this.pos.y = 108;                            break;                    }                    if (this.pos.x >= this.img.w) {                        this.pos.x = 0;                        //this.pos.y += this.man.h;                        if (this.pos.y >= this.img.h) {                            this.pos.x = 0;                            this.pos.y = 0;                        }                    }                    s.left = -this.pos.x + 'px';                    s.top = -this.pos.y + 'px';                }

修正

   修正鼠标点击后,人物的脚在鼠标的点击位置,主要是加一个偏移量,半个人物的宽度和一个人物的高度,因为原先位置是在左上角(left,top)

this.footPos = this.lxyPos.add(this.tempPos); var t = target.subtract(this.footPos).normalize();

 演示效果

转载于:https://www.cnblogs.com/xqhppt/archive/2012/04/10/2441540.html

你可能感兴趣的文章
PHP empty、isset、innull的区别
查看>>
apache+nginx 实现动静分离
查看>>
通过Navicat远程连接MySQL配置
查看>>
phpstorm开发工具的设置用法
查看>>
Linux 系统挂载数据盘
查看>>
Git基础(三)--常见错误及解决方案
查看>>
Git(四) - 分支管理
查看>>
PHP Curl发送数据
查看>>
HTTP协议
查看>>
HTTPS
查看>>
git add . git add -u git add -A区别
查看>>
apache下虚拟域名配置
查看>>
session和cookie区别与联系
查看>>
PHP 实现笛卡尔积
查看>>
Laravel中的$loop
查看>>
CentOS7 重置root密码
查看>>
Centos安装Python3
查看>>
PHP批量插入
查看>>
laravel连接sql server 2008
查看>>
Laravel 操作redis的各种数据类型
查看>>