Lufylenged引擎学习——LGraphics

(一)在一个LSprite上画一张图,new另一个Sprite进行图片的mask效果 ,效果如下:

<!DOCTYPE HTML>
<html>
<head>
	<meta charset="utf-8" />
	<script type="text/javascript" src="../lufylegend-1.7.6.min.js"></script>
</head>
<body>
<div id="mylegend">loading...</div>
<script type="text/javascript">
var loader;
init(50,"mylegend",500,350,main);

function main(){
    loader = new LLoader();
    loader.addEventListener(LEvent.COMPLETE,loadBitmapdata);
    loader.load("face.jpg","bitmapData");
}
function loadBitmapdata(event){
    var bitmapdata = new LBitmapData(loader.content);
    var bitmap = new LBitmap(bitmapdata);
 	//加入层LSprite
    var layer = new LSprite();
    addChild(layer);
    layer.x = 50;
    layer.y = 50;
    layer.rotate = 60;
    layer.addChild(bitmap);

    var layer2 = new LSprite();
    addChild(layer2);
    layer2.graphics.drawRect(1,"#FCF",[50,0,140,140]);
    layer.mask = layer2;
}
</script>
</body>
</html>

(二)drawRect的两个属性效果对比

<!DOCTYPE HTML>
<html>
<head>
	<meta charset="utf-8" />
	<script type="text/javascript" src="../lufylegend-1.7.6.min.js"></script>
</head>
<body>
<div id="mylegend">loading...</div>
<script type="text/javascript">
init(50,"mylegend",500,350,main);
function main(){
   var layer = new LSprite();
   addChild(layer);
   layer.graphics.drawRect(1,'#000000',[50,50,100,100]);
   layer.graphics.drawRect(1,'#000000',[170,50,100,100],true,'#cccccc');
}
</script>
</body>
</html>

效果如下:

(三)线条的绘制

init(50,"mylegend",500,350,main);
function main(){
	var graphics = new LGraphics();
	addChild(graphics);
	graphics.add(function(coodx,coody){
		LGlobal.canvas.strokeStyle = "#000000";
		LGlobal.canvas.moveTo(20,20);
		LGlobal.canvas.lineTo(200,200);
		LGlobal.canvas.stroke();
	});
} 

(四)画圆、三角形、四边形 用位图图像填充绘图区。

			LInit(50, "legend", 800, 480, main);
			function main () {
				var loader = new LLoader();
				loader.addEventListener(LEvent.COMPLETE, loadBitmapdata);
				loader.load("face.jpg", "bitmapData");
			}
			function loadBitmapdata (event) {
				var bitmapdata = new LBitmapData(event.target);
				var backLayer;
				backLayer = new LSprite();
				addChild(backLayer);
				backLayer.graphics.beginBitmapFill(bitmapdata);
				backLayer.graphics.drawArc(1,"#000000",[150,50,50,0,Math.PI*2]);
				backLayer = new LSprite();
				addChild(backLayer);
				backLayer.graphics.beginBitmapFill(bitmapdata);
				backLayer.graphics.drawRect(1,"#000000",[10,100,70,100]);
				backLayer = new LSprite();
				addChild(backLayer);
				backLayer.graphics.beginBitmapFill(bitmapdata);
				backLayer.graphics.drawVertices(1,"#000000",[[120,100],[100,200],[200,150]]);
			}
			

drawVertices  分别绘制的是三个∠ 点的坐标值,

而drawRect  画出左上角的坐标值 然后分别赋值宽 高值

backLayer.graphics.drawArc(1,"#000000",[150,100,50,0,Math.PI*2]);

150,100为圆点坐标、50为半径、0,为起始角、Math.PI*2为结束角

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-29 06:35:54

Lufylenged引擎学习——LGraphics的相关文章

Lufylenged引擎学习——LLoader、LBitmap

FPS(Frames Per Second):每秒传输帧数. [代码练习] LLoader类可用于加载图像(JPG.PNG或GIF)文件.使用load()方法来启动加载. LLoader.load('URl','bitmapData'); LEvent COMPLETE  图片加载完成事件 loader.addEventListener(LEvent.COMPLETE,ybFuncName); 初始化 LBitmap 对象以引用指定的 LBitmapData 对象.LBitmap 类表示用于表示

Lufylenged引擎学习——LTextField

[ LTextField ]创建新的 LTextField 实例.在创建 LTextField 实例后,调用父 LSprite 对象的 addChild() 或 addChildAt() 方法可将 LTextField 实例添加到显示列表中. LTextField 类的方法允许您设置.选择并操作在创作过程中或运行时创建的动态或输入文本字段中的文本. (一)利用LTextField 实现文字样式的修改: LInit(1000/50,"mylegend",200,100,main); va

cocos2d-js引擎学习笔记

Scale9Sprite 在用Scale9Sprite.create的时候出现Uncaught TypeError: Cannot call method 'create' of undefined这个错误, 后来发现在默认情况下,project.json里的modules只自带cocos2d模块,通过检查frameworks/cocos2d-html5/moduleConfig.json,可以看到cocos2d模块里并没有CCScale9Sprite.js这个类. 它在GUI里,所以可以在mo

Razor引擎学习:RenderBody,RenderPage和RenderSection

RenderBody,RenderPage和RenderSection 1. RenderBody 在Razor引擎中没有了“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中.在这个页面中,会看到<body>标签里有这样一条语句: @RenderBody() 其实它的作用和母版页中的<contentplaceholder>服务器控件类似,当创建基于此布局页面的视图时,视图的内容会和布局页面合并,而新创建视图的内容会通过布局页面的@Ren

artTemplate模板引擎学习实战

在我的一篇关于智能搜索框异步加载数据的文章中,有博友给我留言,认为我手写字符串拼接效率过低,容易出错.在经过一段时间的摸索和学习之后,发现现在拼接字符串的方法都不在是自己去书写了,而是使用Javascript引擎.而javascript引擎的实质就是帮我们把带有JavaScript代码的伪THTML语句编译为HTML. 如果有不了解的朋友,可以前往这两篇文章: 淘宝购物车页面 PC端和移动端实战 淘宝购物车页面 智能搜索框Ajax异步加载数据 源码地址: GitHub:Uncle-Keith 回

DELPHI版传奇引擎学习菜鸟篇(applem2)-03

3.2 Gmain.pas单元 这是引擎控制台的主窗口,就是之前说的那个4500行代码的单元,对大神来说,这不算什么,对我看来说,光是理清里边的关系就很吃力.我知道也许从程序的架构角度去理解会好一些,但咱不懂那些,只好继续以一个菜鸟的方式按单元\按页面逐项查看,期待能获得一些营养. 接口部分也有近500行代码,虽然我是初学delphi,但也知道把所有的功能和定义都放到一个单元对以后维护带来很大不变,这份代码是谁写的我不清楚,但是至少不像比较标准的架构,除了重复的复制代码,就是一些嵌套的过程中的过

DELPHI版传奇引擎学习菜鸟篇(applem2)-06

引擎源代码的学习暂时放下了几天,因为需要掌握一些进程处理方面的消息,之前在GAMECENTER中的启动服务过程好好琢磨了一下,将服务启动过程单独拿出来,原先是用主界面的过程判断处理启动,好长的代码,终于提炼出来了一个通用启动过程,停止服务的过程和这个是类似的. {运行外部程序的函数} function RunProgram(var ProgramInfo: TProgram; sHandle: string; dwWaitTime: LongWord): LongWord; var Startu

DELPHI版传奇引擎学习菜鸟篇(applem2)-04

接着学习,从学习的过程中,我发现了这个引擎控制台的主要功能,这也是一行一行代码敲进去的结果,之前我对这个单元的功能了解的还是少,不知不觉中就发现了它主要实现的功能,对里边的代码理解也进了一步. 从我的理解它大概有如下功能: a.实现整个服务端的启动配置. b.进行数据更新,这里指的是对数据库(人物\物品\怪物…)的更新. c.服务端初始化(清理数据和M2的变量复位) d.启动所有服务并监控其运行状态. e.备份数据. 除了d,其他的都还容易理解,基本上拖拉控件写上事件就可以完成,唯独对服务进程进

DELPHI版传奇引擎学习菜鸟篇(applem2)-02

每天只学习一个知识点,也是一种进步. 接着学习GShare.pas的实现部分,其实这个应该叫做GAMECENTER共享单元,我刚开始理解的是错误的,这是根据名字起的. 在学习实现部分之前,声明部分还有一些变量: //虽然光看这些变量不可能全部知道带表什么,但是为了学习,还是注释一下 var //下面4个应该是更新数据(格式)用的,默认为本机更新 g_sDataListAddrs: string = '127.0.0.1'; g_wDataListPort: Word = 18888; g_sDa