返回顶部
首页 > 资讯 > 前端开发 > JavaScript >HTML5+lufylegend如何实现游戏中的卷轴
  • 849
分享到

HTML5+lufylegend如何实现游戏中的卷轴

2024-04-02 19:04:59 849人浏览 薄情痞子
摘要

这篇文章将为大家详细讲解有关HTML5+lufylegend如何实现游戏中的卷轴 ,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 lufyl

这篇文章将为大家详细讲解有关HTML5+lufylegend如何实现游戏中的卷轴 ,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

lufylegend是一个html5开源引擎,它实现了利用仿ActionScript3.0的语法进行HTML5的开发, 包含了LSprite,LBitmapData,LBitmap,LLoader,LURLLoader,LTextField,LEvent等多个AS开发人员熟悉的类, 支持Google Chrome,Firefox,Opera,IE9,iOSAndroid等多种热门环境。 利用lufylegend可以轻松的使用面向对象编程,并且可以配合Box2dWEB制作物理游戏, 另外它还内置了LTweenLite缓动类等非常实用的功能, 现在开始使用它吧,它可以让你更快的进入HTML5的世界!
什么是卷轴
玩过RPG或者横版格斗的同学应该知道,人物走到屏幕中央后,由于地图过大,地图会进行移动,人物则相对静止不动。这个就是传说中的卷轴。例如下图是我的游戏“三国战线”里的卷轴:

HTML5+lufylegend如何实现游戏中的卷轴


有了以上的简介,大家应该明白了什么是卷轴。说白了就是镜头跟随主角的效果。接下来,我们就利用lufylegend.js游戏引擎来实现这个效果。
原理介绍
其实实现这个效果的关键在于如何使人物静止,何时移动地图,以及如何移动地图。在探究这个两个问题之前,我们先创建一个结构良好的舞台层(及一个LSprite对象),以便以后的操作。舞台结构如下:
+- 舞台层
|
+- 地图层
|
+- 人物层
可见舞台层就是地图层和人物层的父元素,并且人物层在地图层上方,毕竟人物是站在地图上的。我们知道,子对象的坐标是相对于父对象的,所以移动父对象,子对象会跟着移动。这点要先弄明白。
如何使人物静止呢?何时移动地图呢?如何移动地图呢?也许你会想,首先用if(xxx){...}来判断人物的坐标是否达到屏幕中央,如果是,则移动地图对象,如果不是则移动人物对象。这么做的话就麻烦了。其实有更简单的方法:
卷轴/不卷轴时,我们的人物都是在移动,但是如果人物达到屏幕中央时,要开始卷轴了,我们的舞台层就进行与人物速度方向相反、大小相同的移动,那么人物的相对于canvas画布的位移就抵消了,看上去就是静止的,而地图就跟着父类向反方向移动。这个类似于拍古装电影,拍两个人一边骑马一边谈话。如果人和马在前进,摄像机以相同的速度跟拍,那么得到的画面就是人物并没有移动,而人物背后风景是在移动的。
接下来看实现代码。
实现代码
以下是含有详细注释的代码:

LInit(30, 'mydemo', 700, 480, main);    
// 移动方向,null代表没移动    
var direction = null;    
// 小鸟,舞台层,背景对象    
var bird, stageLayer, bg;    
// 每次移动的长度    
var step = 5;    
function main () {    
// 资源列表    
var loadList = [    
{name : 'bird', path : './bird.png'},    
{name : 'bg', path : './bg.jpg'}    
];    
// 加载资源    
LLoadManage.load(loadList, null, demoInit);    
}    
function demoInit (result) {    
// 初始化舞台层    
stageLayer = new LSprite();    
addChild(stageLayer);    
// 加入背景    
bg = new LBitmap(new LBitmapData(result['bg']));    
bg.y = -100;    
stageLayer.addChild(bg);    
// 加入小鸟    
bird = new LBitmap(new LBitmapData(result['bird']));    
bird.x = 100;    
bird.y = 150;    
stageLayer.addChild(bird);    
// 添加鼠标按下事件    
stageLayer.addEventListener(LMouseEvent.MOUSE_DOWN, onDown);    
// 添加鼠标弹起事件    
stageLayer.addEventListener(LMouseEvent.MOUSE_UP, onUp);    
// 添加时间轴事件    
stageLayer.addEventListener(LEvent.ENTER_FRAME, onFrame);    
}    
function onDown (e) {    
    
if (e.offsetX > LGlobal.width / 2) {    
direction = 'right';    
} else {    
direction = 'left';    
}    
}    
function onUp () {    
// 设置方向为无方向,代表不移动    
direction = null;    
}    
function onFrame () {    
var _step, minX, maxX;    
    
if (direction == 'right') {    
_step = step;    
} else if (direction == 'left') {    
_step = -step;    
} else {    
return;    
}    
bird.x += _step;    
    
minX = 0,    
maxX = bg.getWidth() - bird.getWidth();    
if (bird.x < minX) {    
bird.x = minX;    
}else if (bird.x > maxX) {    
bird.x = maxX;    
}    
    
stageLayer.x = LGlobal.width / 2 - bird.x;    
    
minX = LGlobal.width - stageLayer.getWidth(),    
maxX = 0;    
if (stageLayer.x < minX) {    
stageLayer.x = minX;    
}else if (stageLayer.x > maxX) {    
stageLayer.x = maxX;    
}    
}

运行结果:

HTML5+lufylegend如何实现游戏中的卷轴

关于“HTML5+lufylegend如何实现游戏中的卷轴 ”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: HTML5+lufylegend如何实现游戏中的卷轴

本文链接: https://lsjlt.com/news/79610.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • HTML5+lufylegend如何实现游戏中的卷轴
    这篇文章将为大家详细讲解有关HTML5+lufylegend如何实现游戏中的卷轴 ,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 lufyl...
    99+
    2024-04-02
  • 如何使用HTML5+lufylegend实现游戏中的卷轴
    这篇文章将为大家详细讲解有关如何使用HTML5+lufylegend实现游戏中的卷轴,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 lufylegend是一个HTML5...
    99+
    2024-04-02
  • 如何使用HTML5实现贪吃蛇游戏
    这篇文章将为大家详细讲解有关如何使用HTML5实现贪吃蛇游戏,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 游戏操作说明 通过方向键控制贪吃蛇上下左右移动。贪吃蛇吃到...
    99+
    2024-04-02
  • 如何使用html5实现记忆翻牌游戏
    这篇文章主要为大家展示了“如何使用html5实现记忆翻牌游戏”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用html5实现记忆翻牌游戏”这篇文章吧。 &...
    99+
    2024-04-02
  • html5中如何使用63行代码实现贪吃蛇游戏
    这篇文章主要介绍html5中如何使用63行代码实现贪吃蛇游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 代码如下:<!DOCTYPE HTML> <...
    99+
    2024-04-02
  • Html5中Canvas实现一个“刮刮乐”游戏的方法
    小编给大家分享一下Html5中Canvas实现一个“刮刮乐”游戏的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!之前公司项目有一个刮奖小游戏的需求,因此有了本...
    99+
    2023-06-09
  • Python如何实现Hangman游戏
    这篇“Python如何实现Hangman游戏”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python如何实现Hangman...
    99+
    2023-06-27
  • 如何使用原生JS实现圣旨卷轴展开效果
    这篇文章将为大家详细讲解有关如何使用原生JS实现圣旨卷轴展开效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。实现原理:(1)利用绝对定位固定好起始位置;(2)利用遮罩将...
    99+
    2024-04-02
  • Java中如何实现斗地主游戏
    这篇文章给大家分享的是有关Java中如何实现斗地主游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。题目要求:通过自制54张扑克牌,发给3人,留下3张底牌,分别显示不同人的手牌与底牌达到斗地主的游戏需求算法思想:...
    99+
    2023-06-20
  • 如何在PHP中实现游戏开发
    随着互联网的迅猛发展,游戏开发已经成为了一个全新的行业,吸引越来越多的开发者前来尝试。游戏开发所需的技能包括图形处理、物理处理、游戏逻辑和网络通信等,在这些技能中,编程技能是不可或缺的一部分。PHP作为一种流行的编程语言,虽然被认为主要用于...
    99+
    2023-05-21
    PHP 实现 游戏开发
  • numpy中轴处理如何实现
    本篇内容介绍了“numpy中轴处理如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!numpy中轴参数的意义指定的轴是被压缩的轴沿轴的时...
    99+
    2023-07-05
  • LeetCode如何实现跳跃游戏
    这篇文章给大家介绍LeetCode如何实现跳跃游戏,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。题目给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代...
    99+
    2024-04-02
  • Python如何实现篮球游戏
    这篇文章给大家分享的是有关Python如何实现篮球游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、前言准备编写一个篮球游戏,运动员带球跑,跳起投篮。在每帧图片中包括运动员和篮球,使用多帧图片,实现运动员运球...
    99+
    2023-06-15
  • C++如何实现跳跃游戏
    这篇文章主要介绍“C++如何实现跳跃游戏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++如何实现跳跃游戏”文章能帮助大家解决问题。Jump Game 跳跃游戏Given an array of ...
    99+
    2023-06-19
  • Easyx如何实现扫雷游戏
    今天给大家介绍一下Easyx如何实现扫雷游戏。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。代码:#include<stdio.h>#include...
    99+
    2023-06-26
  • Qt如何实现棋盘游戏
    小编给大家分享一下Qt如何实现棋盘游戏,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!知识点画背景图、线条qDebug()与QString联合使用qDebug()&...
    99+
    2023-06-22
  • C#如何实现扫雷游戏
    今天小编给大家分享一下C#如何实现扫雷游戏的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、实验目的:掌握c#窗体和控件的常...
    99+
    2023-07-02
  • Python中turtle如何实现球类小游戏
    1. 前言turtle (小海龟) 是 Python 内置的一个绘图模块,其实它不仅可以用来绘图,还可以制作简单的小游戏,甚至可以当成简易的 GUI 模块,编写简单的 GUI程序。本文使用 turtle 模块编写一个简单的小游戏,通过此程序...
    99+
    2023-05-15
    Python turtle
  • Python如何实现我的世界游戏
    这篇文章主要介绍Python如何实现我的世界游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.准备开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果你用Python的目的是数据分析,可以直接安装A...
    99+
    2023-06-25
  • jQuery如何实现拼图小游戏
    这篇文章给大家分享的是有关jQuery如何实现拼图小游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。小熊维尼拼图jQuery代码实现拼图小游戏,鼠标选中拼块,用上下左右键移动拼...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作