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. 用 highlight.js 为文章中的代码添加语法高亮

    来源:http://www.ghostchina.com/adding-syntax-highlighting-to-ghost-using-highlight-js/ --------------- ...

  2. asp.net发邮件功能

    protected void SendMail() { try { string CreaterName = ""; string examiner = ""; ...

  3. JavaScript 面向对象(二) —— 案例篇

    看案例前可以先看看基础篇:JavaScript 面向对象(一) —— 基础篇 案例——面向对象的选项卡:把面向过程的程序一步步改成面向对象的形式,使其能够更加的通用(但是通用的东西,一般会比较臃肿). ...

  4. 实战Nginx与PHP(FastCGI)的安装、配置与优化

    一.什么是 FastCGIFastCGI是一个可伸缩地.高速地在HTTP server和动态脚本语言间通信的接口.多数流行的HTTP server都支持FastCGI,包括Apache.Nginx和l ...

  5. WCF初探文章列表

    WCF初探-1:认识WCF WCF初探-6:WCF服务配置 WCF初探-2:手动实现WCF程序 WCF初探-7:WCF服务配置工具使用 WCF初探-3:WCF消息交换模式之单向模式 WCF初探-8:W ...

  6. java 创建线程的三种方法Callable,Runnable,Thread比较及用法

    转自:http://www.chinaitlab.com/Java/line/942440.html 编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互.一般有三种方法,Thread, ...

  7. 记一次联想A820t救砖线刷

    因为是看着教程刷的(有大神放出教程,只管伸手拿来就好啦)但是照着教程做的过程中出现了一些问题还是值得注意的,在这里总结一下,给新手提供一点建议 教程比较长,我放到博客的文件中,需要的自己下载一下.或者 ...

  8. 通过select的value值来改变textarea内字体和大小

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. PHP制作验证码

    session_start();$a = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r',' ...

  10. share登录Samba可读可写(适合虚拟机下学习使用)

    直接配置 smb.conf ( path = /etc/samba/smb.conf ). 首先,进入到 samba 文件夹: cd /etc/samba/ 备份 smb.conf: mv smb.c ...