1、获取角色和怪物的坐标位置:使用JavaScript的getBoundingClientRect()方法获取角色和怪物的坐标位置。
2、计算角色和怪物的距离:使用两点间距离公式计算角色和怪物的距离。
3、判断角色是否在怪物跟踪范围内:当角色和怪物的距离小于一个特定的跟踪范围时,表示角色在怪物跟踪范围内。
4、设置角色跟踪移动速度:设置怪物每次移动的速度,使它能够朝向角色并靠近。
5、在每一帧动画中执行跟踪动作:使用JavaScript的requestAnimationFrame()方法,在每一帧动画中执行跟踪动作。
下面是一个示例代码,它展示了如何实现自动跟踪功能:
// 获取角色和怪物的坐标位置
var characterRect = character.getBoundingClientRect()
var monsterRect = monster.getBoundingClientRect()
// 计算角色和怪物的距离
var distance = Math.sqrt(Math.pow(characterRect.x - monsterRect.x, 2) + Math.pow(characterRect.y - monsterRect.y, 2))
// 判断角色是否在怪物跟踪范围内
if (distance <TRACKING_RANGE) {
// 设置角色跟踪移动速度
var speedX = (characterRect.x - monsterRect.x) / distance
var speedY = (characterRect.y - monsterRect.y) / distance
// 在每一帧动画中执行跟踪动作
function trackCharacter() {
// 获取当前角色和怪物的坐标位置
characterRect = character.getBoundingClientRect()
monsterRect = monster.getBoundingClientRect()
// 计算角色和怪物的距离
distance = Math.sqrt(Math.pow(characterRect.x - monsterRect.x, 2) + Math.pow(characterRect.y - monsterRect.y, 2))
// 判断角色是否在怪物跟踪范围内
if (distance <TRACKING_RANGE) {
// 更新怪物的坐标位置
monster.style.left = monsterRect.x + speedX + "px"
monster.style.top = monsterRect.y + speedY + "px"
// 继续跟踪角色
requestAnimationFrame(trackCharacter)
}
}
trackCharacter()
}
百度统计 事件跟踪 js代码怎么写事件跟踪最核心的方法就是_hmt.push:
_hmt.push(['_trackEvent', category, action, opt_label, opt_value])
1. '_trackEvent': 固定参数,表明统计类型是时间跟踪。
1. category:要监控的目标的类型名称,通常是同一组目标的名字,比如"视频"、"音乐"、"软件"、"游戏"等等。该项必选。
1. action:用户跟目标交互的行为,如"播放"、"暂停"、"下载"等等。该项必选。
1. opt_label:事件的一些额外信息,通常可以是歌曲的名称、软件的名称、链接的名称等等。该项可选。
1. opt_value:事件的一些数值信息,比如权重、时长、价格等等,在报表中可以看到其平均值等数据。该项可选。
使用
我们有两种方式来使用_html.push方法:
HTML行内使用
<a onclick="_hmt.push(['_trackEvent', 'website', 'click', 'baidu', 1])" href="http://www.baidu.com">百度</a>
JS代码中使用
document.getElementById("link").addEventListener("click", function() {
_hmt.push(['_trackEvent', 'website', 'click', 'baidu', 1])
// ...
})
推荐的方式
这是我一般写统计的方式,比较简单,个人比较推荐:
<a data-track="点击百度链接" href="http://www.baidu.com">baidu</a>
$("[data-track]").on("click", function() {
var label = $(this).data("track")
window._hmt &&window._hmt.push(['_trackEvent', label, 'click'])
})