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. 最近在做外贸网站的时候,需要大量的字体来充实页面,就学习了怎么引用Google Fonts

    第一步,FQ进入谷歌官方字体网站:https://fonts.google.com  妥妥的. 第二步,点击你所选择字体演示块的右上角的加号,然后你所选择的字体会形成引用链接以及你所要写的css样式. ...

  2. F2工作流引擎之-纯JS Web在线可拖拽的流程设计器(八)

          Web纯JS流程设计器无需编程,完全是通过鼠标拖.拉.拽的方式来完成,支持串行.并行.分支.异或分支.M取N路分支.会签.聚合.多重聚合.退回.传阅.转交,都可以非常方便快捷地实现,管理员 ...

  3. blade and soul pvp guide

    PvP PvP in Blade and Soul is categorized into two types, a personal PvP called Arena and a large-sca ...

  4. mysql数据的行列转换

    动态,适用于列不确定情况,第一种: SET @EE=''; SELECT GROUP_CONCAT('SUM(IF(C2=\'',C2,'\'',',C3,0)) AS ',C2)INTO @EE F ...

  5. linux中用户的主目录~

    -在Linux中代表用户主目录 对一般用户,-表示/home/(用户名) 对于root用户,-表示/root 如果要查看-的真实面貌,可以先进入-目录,然后用pwd -P命令查看-的绝对路径 cd ~ ...

  6. Emmet 使用说明。

    Emmet for Sublime Text Official Emmet plugin for Sublime Text. How to install Available actions Exte ...

  7. C# 数据类型

    1.整数类型:  int    只能 存储证书,不能存储小数. 2.小数类型: doubie 机能存储整数,也能存储小数,小数点后面的额 15-16位. 3.金钱类型: decimal:用来存储金钱, ...

  8. Unique Paths II

    这题在Unique Paths的基础上增加了一些obstacle的位置,应该说增加的难度不大,但是写的时候对细节的要求多了很多,比如,第一列的初始化会受到之前行的第一列的结果的制约.另外对第一行的初始 ...

  9. android小技巧(一)

      1,调web浏览器 Uri myBlogUri = Uri.parse("http://xxxxx.com"); returnIt = new Intent(Intent.AC ...

  10. knockout应用开发指南(完整版)

    http://www.cnblogs.com/TomXu/archive/2011/11/21/2257154.html