Chap6_鼠标移动跟随

一、获取鼠标坐标

[wm_tips]程序会记录鼠标在元素中触发事件时的坐标位置(x,y) 我们可以通过在自定义函数中设置参数获得触发事件时的x,y[/wm_tips]

示例

var  app = new PIXI.Application(512,768);
document.body.appendChild(app.view);
var bg = new PIXI.Sprite.fromImage("img/bg_01.png");
app.stage.addChild(bg);
bg.interactive = true;
bg.on("click",move);
function move(event){
var  pos = event.data.getLocalPosition(app.stage);
var x = pos.x;
var y = pos.y;
console.log(x+"  "+y);
}

1、创建应用窗口并添加到页面中

var  app = new PIXI.Application(512,768);
document.body.appendChild(app.view);

2、创建背景图片并添加到 窗口中

var bg = new PIXI.Sprite.fromImage("img/bg_01.png");
app.stage.addChild(bg);

3、设置背景图片 可以互动

bg.interactive = true;

4、为背景图片添加mousemove事件,并在事件发生时调用move函数

bg.on("click",move);

5、定义move函数,添加event参数,通过event获取鼠标 坐标

//event :被触发的事件
//data ; 数据
//getLocalPosition ; 获取某个元素鼠标事件触发位置
//app.stage ; 仅在获取程序窗口中的鼠标位置

//var x = pos.x ; 获取事件触发时鼠标的x坐标
//var y = pos.y ;获取事件触发时鼠标的y坐标

//console.log(x+"  " +y) ; 开发者工具的控制台中输出x坐标与y坐标
function move(event){
    var pos = event.data.getLocalPosition(app.stage);
    var x = pos.x;
    var y = pos.y;
   console.log(x+"   "+y);
}

[wm_notice]任意一种鼠标事件,都可以通过上述代码获得鼠标坐标[/wm_notice]

完成效果:在单击页面窗口中的某个位置时,console中会出现坐标

二、鼠标跟随

[wm_tips]鼠标跟随,就是控制显示元素,跟随鼠标指针一起移动[/wm_tips]

思路

1.当鼠标移动时会触发mousemove事件

2.在事件中通过event.data.getLoalPosition(app.stage)获取鼠标当前坐标(x,y)

3.用获取到的x,y坐标为图片定位

4.这样图片就会跟随鼠标一起移动

代码示例

var  app = new PIXI.Application(512,768);
document.body.appendChild(app.view);
//图片元素(背景)
var bg = new PIXI.Sprite.fromImage("img/bg_01.png");
app.stage.addChild(bg);
//图片元素(飞机)
var plane = new PIXI.Sprite.fromImage("img/plane.png");
plane.x = 250;
plane.y = 250;
app.stage.addChild(plane);
bg.interactive = true;
bg.on("mousemove", movePlane);
function  movePlane(event){
  //1、获取鼠标触发事件时的位置
var pos  = event.data.getLocalPosition(app.stage);
  //2、设置元素位置与鼠标位置一致
plane.x = pos.x;
plane.y = pos.y;
}

三、设置锚点

[wm_tips]元素的锚点,也可以叫做定位点,指元素显示在某个x,y坐标时时元素以哪个点来对齐该坐标[/wm_tips]

例:当我们把飞机图片定位到200,100位置时,图片是以左上角与该位置对齐并显示在窗口中,那么此时的锚点就是左上角

设置锚点代码

元素.anchor.x = x方向锚点位置

元素.anchor.y = y方向锚点位置

元素.anchor.set(x值,y值):同时设置x、y方向锚点位置

锚点取值范围 0~1

常见锚点配置

设置锚点为左上角:
元素.anchor.x=0,元素.anchor.y=0 或 元素.anchor.set(0,0)

设置锚点为右上角:
元素.anchor.x=1,元素.anchor.y=0 或 元素.anchor.set(1,0)

设置锚点为左下角:
元素.anchor.x=0,元素.anchor.y=1 或 元素.anchor.set(0,1)

设置锚点为右下角:
元素.anchor.x=1,元素.anchor.y=1 或 元素.anchor.set(1,1)

设置锚点为中心:
元素.anchor.x=0.5,元素.anchor.y=0.5 或 元素.anchor.set(0.5,0.5)

代码示例

var plane = new PIXI.Sprite.fromImage("img/plane.png");
plane.x = 250;
plane.y = 250;
//设置锚点为中心点
plane.anchor.x = 0.5;
plane.anchor.y = 0.5;
app.stage.addChild(plane);

四、字符拼接

[wm_tips]字符与变量可以使用+号进行拼接,不变的字符内容用" "号包裹,变量用+号拼接[/wm_tips]

例:在应用窗口中显示坐标x,y

function move (event ){
    //获取鼠标触发事件时的位置
    var pos = event.data.getLocalPosition(app.stage);
    //为文本元素设置内容(x,y坐标位置)
    //"x:" +pos.x + "y:" +pos.y
    txt.text = "x:"+pos.x + "y:"+pos.y;
}

小数取整

Math.ceil(1.5); //向上取整结果为:2
parseInt(1.5); //忽略小数部分结果为:1

坐标取整后字符拼接

function move( event ){
//获取鼠标触发事件时的坐标
var pos = event.data.getLocalPosition(app.stage);
//为文本元素设置内容(x,y坐标位置)
//"x:"+pos.x + "y:"+pos.y
txt.text = "x:"+ parseInt(pos.x) + " y:" + parseInt(pos.y);

chap3_常用元素属性

一、元素属性分类

[wm_tips]1、公共属性:所有元素都具备的属性(例如:x,y)
2、独有属性:只作用于某一种元素(例如:style.fill 字体颜色)

[/wm_tips]

二、常用属性

【了解即可】旋转弧度示例

[wm_notice]一个圆是360°,也是2π
1角度 = 360分之1 ,也就是2π的360分之1
2π的360分之 1 = 180分之 π
所以1角度 = π/180 rad[/wm_notice]

三、代码示例

<body>
		<script src="../js/pixi.min.js"></script>
		<script>
			//1.创建应用窗口
			var app = new PIXI.Application(1010,650);
			//2.在页面添加应用窗口
			document.body.appendChild(app.view);
			//3.创建图片元素(背景图)
			 var bj = new PIXI.Sprite.fromImage("img/bg1.png");
			//4.在应用窗口添加背景图片
			 app.stage.addChild(bj);
			//5.创建图片元素
			var kk = new PIXI.Sprite.fromImage("img/item.png");
			//6.设置图片位置
			kk.x = 2;
			kk.y = 1;
			//7.在应用窗口中添加图片
			app.stage.addChild( kk );
			//8.创建文本元素
			var fs= new PIXI.Text("520");
			//9.创建文本颜色
			fs.style.fill = "#000000";
			//10设置文本元素的位置
			fs.x = 18;
			fs.y = 64;
			//11.在应用窗口中添加文本内容
			app.stage.addChild(fs);
			//12.创建僵尸图片元素
			var js3 = new PIXI.Sprite.fromImage("img/js3.png");
			//13.设置图片位置
			js3.x = 650;
			js3.y = 120;
			//14.在应用窗口中添加图片
			app.stage.addChild(js3);
			//15.创建僵尸图片元素
			var js2 = new PIXI.Sprite.fromImage("img/js2.png");
			//16.设置图片位置
			js2.x = 650;
			js2.y = 230;
			//17.在应用窗口添加图片
			app.stage.addChild(js2);
			//18.创建僵尸图片元素
			var js4 = new PIXI.Sprite.fromImage("img/js4.png");
			//19.设置图片位置
			js4.x = 450;
			js4.y = 340;
			//20.在应用窗口添加图片
			app.stage.addChild(js4);
			//21.创建僵尸图片元素
			var js1 = new PIXI.Sprite.fromImage("img/js1.png");
			//22.设置图片位置
			js1.x = 800;
			js1.y = 340;
			//23.在应用窗口添加图片
			app.stage.addChild(js1);
		</script>
	</body>

chap2_文本元素与元素属性

 一、创建文本元素

[wm_tips]文本元素是用来在应用窗口中显示一段文字(字符 文本)[/wm_tips]

示例

1、创建文本元素

// new PIXI.Text(); :创建文本元素
// "得分:10000" : 文本元素中的内容(文字、字符)
// var score : 文本元素的别名
var score = new PIXI.Text("得分:10000");

2、在应用窗口中添加文本元素

//在名为app的应用窗口中(stage),添加一个元素(addChild),元素名为 score
app.stage.addChild( score );

[wm_notice]注意:文本元素中的默认字体颜色为黑色[/wm_notice]

二、设置文本元素属性

[wm_tips]属性:可以理解为配置,我们可以自定义属性的值来修改原有的配置[/wm_tips]

示例

//score  : 文本元素的名称
//style  : 风格
//fill  : 填充颜色
// = "green" :绿色
//修改文本元素的属性,将颜色改为白色
score.style.fill = "green";

[wm_notice]我们可以将“ ”号中的颜色改为自己需要的颜色[/wm_notice]

颜色可以使用十六进制颜色编码表示

[wm_tips]十六进制颜色编码:为每种颜色匹配的一个编号,不需要背,当需要使用某种颜色时,可以从百 度中直接输入十六进制颜色编码表,找到自己需要 的颜色 编码[/wm_tips]

使用十六进制 颜色编码设置文本颜色

// "#cff060" :就表示了一种颜色
score.style.fill = "#cff060"

三、定位元素

[wm_notice]在应用窗口中元素默认的位置实在左上角(原点),可以通过修改定位点来改变元素的位置 定位点由两部分构成,分别是x坐标点与y坐标点[/wm_notice]

例如:

[wm_red]

1.应用窗口的宽度为500px,高度为400px,以左上角为原点向下延伸属于y轴,向右延伸属于x轴,

2.元素越靠右x的值越大,元素越靠下y的值越大

3.设置元素的x坐标与y坐标来定义元素在窗口中的位置

[/wm_red]

调整元素位置代码

//设置文本元素位置
元素别名.x = 340;//设置x坐标为340
元素别名.y = 20;// 设置y坐标为20

调整后效果

四、练习赛课游戏界面

1.示例代码

<!-- 引入外部的pixi.min.js -->
<script src="../js/pixi.min.js"></script>
<script>
//1、创建应用窗口(宽 480 ,高 700)
var app = new PIXI.Application(480,700);
//2、在页面中添加应用窗口
document.body.appendChild( app.view );
//3、创建图片元素(背景图片)路径:img/bg.jpg
var bg = new PIXI.Sprite.fromImage("img/bg.jpg");
//4、在应用窗口中添加图片
app.stage.addChild( bg );
//5、创建图片元素(赛车1图片)路径:img/saiche-2_03.png
var c1 = new PIXI.Sprite.fromImage("img/saiche-2_03.png");
//6、设置图片元素位置:x = 165 , y = 275
c1.x = 165;
c1.y = 275;
//7、在应用窗口中添加图片
app.stage.addChild( c1 );
//8、创建图片元素(赛车2图片)路径:img/saiche-3_03.png
var c2 = new PIXI.Sprite.fromImage("img/saiche-3_03.png");
//9、设置图片元素位置:x = 255 , y = 575
c2.x = 255;
c2.y = 575;
//10、在应用窗口中添加图片
app.stage.addChild(c2);“
</script>

2.运行效果

3.编程套路

1、引用pixi.min.js
<script src="路径"></script>
2、加入script标签(将来在script标签中编码)
<script> </script>
3、创建应用窗口元素
var app = new PIXI.Application(宽,高);
4、在页面中添加应用窗口元素
document.body.appendChild( app.view );
5、根据需要创建元素(文本、图片)设置元素属性(颜色、位置)
6、在应用窗口中添加元素
app.stage.addChild( 元素名 );

[wm_warn]如果页面中由多个元素构成 5/6步,反复编写[/wm_warn]