LayaAir引擎——(七)
LayaAir引擎——人物控制TiledMap地图移动和墙壁检测
所需要的软件:
LayaAir IDE 1.0.2版本
TiledMap
所需要的东西:
地图:53 * 32,(48*48)
人物:48*48
注意:
var a = pass.getTileDataByScreenPos(player.x,player.y - 48);//返回图块在图块集纹理上的索引+1
562//实际上索引是561,判断地图上的格子是否是561,如果是,不可以通行,则反之。
var Sprite = Laya.Sprite;
var Stage = Laya.Stage;
var MapLayer = Laya.MapLayer;
var TiledMap = Laya.TiledMap;
var Point = Laya.Point;
var Rectangle = Laya.Rectangle;
var Handler = Laya.Handler;
var WebGL = Laya.WebGL; Laya.init(624, 576); var map1 = new TiledMap();
map1.createMap("map/map1/town1.json",new Rectangle(0,0,624,576),Handler.create(this,onMapLoaded));
var pass; var player;
var mX = 0;
var mY = 0; function onMapLoaded() {
pass = map1.getLayerByName("pass"); player = new Sprite();
player.loadImage("map/player/player.png",0,0,48,48);
Laya.stage.addChild(player); Laya.stage.on(laya.events.Event.KEY_DOWN,this,onkeydown);
} function onkeydown(e) {
switch (e.keyCode) {
case 38:{
var a = pass.getTileDataByScreenPos(player.x,player.y - 48);
if(a != 562){
if(mY > 0 ){
if (player.y > 288) {
player.y -= 48;
}else{
mY -= 48;
map1.moveViewPort(mX,mY);
} }else{
if (player.y > 0) {
player.y -= 48;
}
}
}
break;
}
case 40:{
var a = pass.getTileDataByScreenPos(player.x,player.y + 48);
if(a != 562){
if (player.y > 144) {
if (mY < 960) {
mY += 48;
map1.moveViewPort(mX,mY);
}else{
if (player.y < 528) {
player.y += 48;
}
}
}else{
player.y += 48;
}
}
break;
}
case 37:{
var a = pass.getTileDataByScreenPos(player.x - 48,player.y);
if(a != 562){
if(player.x > 288){
player.x -= 48;
}else{
if (mX > 0) {
mX -= 48;
map1.moveViewPort(mX,mY);
}else{
if (player.x > 0) {
player.x -= 48;
}
}
}
}
break;
}
case 39:{
var a = pass.getTileDataByScreenPos(player.x + 48,player.y);
if(a != 562){
if (player.x > 288) {
if (mX > 1872) {
if (player.x < 576) {
player.x += 48;
}
}else{
mX += 48;
map1.moveViewPort(mX,mY);
}
}else{
player.x += 48;
}
}
break;
}
default:
break;
}
}
LayaAir引擎——(七)的更多相关文章
- LayaAir引擎——(六)
LayaAir引擎——TiledMap地图图块属性获取和进行墙壁碰撞检测 需要的软件: TiledMap LayaAir IDE 1.0.2版本 所画的地图: pass层: floor层: pass层 ...
- LayaAir引擎——(五)
LayaAir引擎——关于地图详解 所需要的软件: LayaAirIDE1.0.2版本 在LayaAir引擎中与地图相关的类: 1.laya.map.TiledMap TiledMap类 地图以层 ...
- LayaAir引擎——(四)
LayaAir引擎 TiledMap 使用 所需要的软件: Tiled地图编辑器 版本0.16.2 LayaAir IDE 所需要的图片:图块图片(1.png) 步骤1: 文件->新文件-> ...
- LayaAir引擎——(二)
LayaAir引擎 -> 工具 -> 图集打包例子
- LayaAir引擎——(一)
LayaAir是LayaBox推出的Html5游戏引擎,支持 ActionScript3.TypeScript.JavaScript,开源,并且商用免费. LayaAir IDE 是一款使用Lay ...
- Javascript多线程引擎(七)
Javascript多线程引擎(七)--synchronized关键字 经过两天的努力, 今天synchronzied关键字终于支持了, 如下是测试代码 thread() 是一个开启新线程的API, ...
- LayaAir引擎开发HTML5最简单教程(面向JS开发者)
LayaAir引擎开发HTML5最简单教程(面向JS开发者) 一.总结 一句话总结:开发游戏还是得用游戏引擎来开发,其实很简单啦 切记:开发游戏还是得用游戏引擎来开发,其实很简单,引擎很多东西都帮你做 ...
- LayaAir引擎——(三)
LyaAir引擎(JavaScript)实现图片的翻转一半 图片4.png位于bin/开场过渡 文件夹下,图片大小150*30(根据实际情况做调整) var button; var scale1 = ...
- LayaAir引擎——(十一)
var c = new Array(); var d = new Array(); var e = new Array(); var f = new Array(); var g = new Arra ...
随机推荐
- 初识ReactJs(一)
React的开发背景 ReactJS官网地址:http://facebook.github.io/react/ Github地址:https://github.com/facebook/react J ...
- NoSQL生态系统——一致性RWN协议,向量时钟,gossip协议监测故障
13.5 一致性 在NoSQL中,通常有两个层次的一致性:第一种是强一致性,既集群中的所有机器状态同步保持一致.第二种是最终一致性,既可以允许短暂的数据不一致,但数据最终会保持一致.我们先来讲一下,在 ...
- SQL Server系列
这里整理了我学习SQL Server的全部文章,包括从基础到高级,做一个目录,方便以后查找. SQL Server数据类型 SQL Server中开发常用的数据类型 单表查询和多表查询 一个单表查询的 ...
- 基于任务的异步模式(TAP)
Task .net 4.0为我们带来了Task的异步,我们有以下三种方法创建Task. 1,Task.Factory.StartNew,比较常用. 2,Task.Run,是.net 4.5中增加的. ...
- 解析提高PHP执行效率的50个技巧
1.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的”函数”(译注:PHP手 ...
- Poj1743 (后缀数组)
#include<cstdio> #include<algorithm> #include<cstring> #include<cmath> using ...
- 误设PATH导致命令失效的处理
今天配置Linux下的Java环境时,把PATH设为了export PATH=${JAVA_HOME}/bin,然后执行了source ~/.bash_profile命令,导致了几乎所有的Linux命 ...
- 【转】valueof()用法
valueOf()用来返回对象的原始类型的值. 语法 booleanObject.valueOf() 代码:<script> var a = new String("valueO ...
- IE下new Date不支持传参数的解决
在FF gloogle浏览器中 用js实例化Date对象时 各种参数都可以换传啊. var date = new Date("2014-10-1 10:24:31"); var d ...
- Android的权限检查
Application的权限: 可以在AndroidManifest.xml中用<permission>定义运行Application需要的权限. 用<uses-permission ...