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引擎——(七)的更多相关文章

  1. LayaAir引擎——(六)

    LayaAir引擎——TiledMap地图图块属性获取和进行墙壁碰撞检测 需要的软件: TiledMap LayaAir IDE 1.0.2版本 所画的地图: pass层: floor层: pass层 ...

  2. LayaAir引擎——(五)

    LayaAir引擎——关于地图详解 所需要的软件: LayaAirIDE1.0.2版本 在LayaAir引擎中与地图相关的类: 1.laya.map.TiledMap TiledMap类   地图以层 ...

  3. LayaAir引擎——(四)

    LayaAir引擎 TiledMap 使用 所需要的软件: Tiled地图编辑器 版本0.16.2 LayaAir IDE 所需要的图片:图块图片(1.png) 步骤1: 文件->新文件-> ...

  4. LayaAir引擎——(二)

    LayaAir引擎 -> 工具 -> 图集打包例子

  5. LayaAir引擎——(一)

    LayaAir是LayaBox推出的Html5游戏引擎,支持 ActionScript3.TypeScript.JavaScript,开源,并且商用免费.   LayaAir IDE 是一款使用Lay ...

  6. Javascript多线程引擎(七)

    Javascript多线程引擎(七)--synchronized关键字 经过两天的努力, 今天synchronzied关键字终于支持了, 如下是测试代码 thread() 是一个开启新线程的API, ...

  7. LayaAir引擎开发HTML5最简单教程(面向JS开发者)

    LayaAir引擎开发HTML5最简单教程(面向JS开发者) 一.总结 一句话总结:开发游戏还是得用游戏引擎来开发,其实很简单啦 切记:开发游戏还是得用游戏引擎来开发,其实很简单,引擎很多东西都帮你做 ...

  8. LayaAir引擎——(三)

    LyaAir引擎(JavaScript)实现图片的翻转一半 图片4.png位于bin/开场过渡 文件夹下,图片大小150*30(根据实际情况做调整) var button; var scale1 = ...

  9. LayaAir引擎——(十一)

    var c = new Array(); var d = new Array(); var e = new Array(); var f = new Array(); var g = new Arra ...

随机推荐

  1. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) C. Ray Tracing

    我不告诉你这个链接是什么 分析:模拟可以过,但是好烦啊..不会写.还有一个扩展欧几里得的方法,见下: 假设光线没有反射,而是对应的感应器镜面对称了一下的话 左下角红色的地方是原始的的方格,剩下的三个格 ...

  2. HEAD FIRST HTML & CSS学习笔记1

    一.指定媒体类型=指定显示设备的类型  P400 有两种方式指定媒体类型: a. 直接在<link>标签中加属性media,例: <link href="print.css ...

  3. Groovy入门经典 随书重点

    1 数值和表达式 1.1数值 整数是Integer类的实例 有小数部分的数值是BigDecimal类的实例 不同于java,没有基础数据类型 一切皆对象的概念重于java 1.2表达式 两个整数的除法 ...

  4. Windows Store App 网络通信 HttpWebRequest

    如果希望更好地控制HTTP请求,可以使用System.Net类库中的HttpWebRequest类,该类对HTTP协议进行了完整的封装,并且提供了很多对HTTP协议中的 Header.Content和 ...

  5. mysql与sqlserver之间的关系转换

    sqlserver中的数据类型与mysql之间的对应 --sqlserver = 只复制表结构 = 复制表结构和表数据 --mysql create table xx like xx; 只复制表结构 ...

  6. Web前端开发规范手册

    一.规范目的 1.1  概述 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进行前台页面开发.  ...

  7. 在MyEclipse中配置Tomcat服务器

    http://wenku.baidu.com/link?url=j0rrOEvt10zgsJVWX3wuV26uVc2fz5MhIusvLWzvK_KZWMKq60wuDaMnHGck0PR6sCrU ...

  8. 1472. Martian Army

    http://acm.timus.ru/problem.aspx?space=1&num=1472 题目大意: 一颗树,根节点(1) 的值为 1.0,所有叶子节点的值为 0.0 ,其他节点值任 ...

  9. HDU--杭电--1026--Ignatius and the Princess I--广搜--直接暴力0MS,优先队列的一边站

    别人都是广搜+优先队列,我没空临时学,所以就直接自己暴力了 Ignatius and the Princess I Time Limit: 2000/1000 MS (Java/Others)     ...

  10. C++中的static关键字的总结

    C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static.前者应用于普通变量和函数,不涉及类:后者主要说明static在类中的作用. 1.面向过程设计中的st ...