1. 帧频函数执行原理:

帧频函数每秒调用 60 次, 每次执行一帧动画.
如果想在游戏中控制帧频函数的执行频率,不想执行这么快,那么可以通过变量计数的方式,来实现对频率的控制
代码如下:

  1. // 计数变量
  2. var a = 0;
  3. app.ticker.add(function animate() {
  4. if(a == 60){
  5. //相关代码
  6. a = 0;
  7. }
  8. a++;
  9. });

2. 案例目标

  1. var app = new PIXI.Application(400, 400);
  2. document.body.appendChild(app.view);
  3. var bg = new PIXI.Sprite.fromImage("res/bg_02.png");
  4. app.stage.addChild(bg);
  5. var plane = new PIXI.Sprite.fromImage("res/plane_blue_01.png");
  6. plane.anchor.set(0.5,0.5);
  7. plane.x = 200;
  8. plane.y = 300;
  9. app.stage.addChild(plane);
  10. //飞机plane的鼠标跟随
  11. bg.interactive = true;
  12. bg.on("mousemove",movePlane);
  13. function movePlane(event) {
  14. var pos = event.data.getLocalPosition(app.stage);
  15. plane.x = pos.x;
  16. plane.y = pos.y;
  17. }
  18. //存储子弹的数组
  19. var arr = [];
  20. app.ticker.add(animate);
  21. function animate() {
  22. addBullet();//创建子弹
  23. moveBullet();//移动子弹
  24. }
  25. //创建子弹
  26. var time = 0;
  27. function addBullet() {
  28. if(time == 10) {
  29. var bullet = PIXI.Sprite.fromImage("res/plane/bullet_01.png");
  30. bullet.anchor.set(0.5,0.5);
  31. bullet.x = plane.x;
  32. bullet.y = plane.y;
  33. app.stage.addChild(bullet);
  34. //将子弹存入arr数组
  35. arr.push(bullet);
  36. time = 0;
  37. }
  38. time++;
  39. }
  40. //移动子弹
  41. function moveBullet(){
  42. //移动arr数组中的子弹
  43. for(var i=0;i<arr.length;i++){
  44. arr[i].y -= 8;
  45. }
  46. //如果子弹的超出边界,将子弹删除
  47. for(var i=arr.length-1;i>=0;i--){
  48. if(arr[i].y < -100) {
  49. app.stage.removeChild(arr[i]);
  50. arr.splice(i,1);
  51. }
  52. }
  53. }

3. 颜色换算

颜色 是使用 十六进制数表示
十六进制的数有效范围是 0~9,A~F
颜色的组成是 RGB , R-RED, G-GREEN , B-BLUE
表示颜色时,使用一个字节表示一个原色
一个颜色由三个字节组成
image.png