コード例 #1
0
export default async context => {
  //http://pixijs.io/examples/#/basics/basic.js
  const app = ExpoPixi.application({
    context,
  });

  app.stop();

  /// TODO: json loader - spritesheet
  PIXI.loader.add('spritesheet', 'required/assets/mc.json').load(onAssetsLoaded);

  function onAssetsLoaded() {
    // create an array to store the textures
    var explosionTextures = [],
      i;

    for (i = 0; i < 26; i++) {
      /// TODO: Texture from frame
      var texture = PIXI.Texture.fromFrame('Explosion_Sequence_A ' + (i + 1) + '.png');
      explosionTextures.push(texture);
    }

    for (i = 0; i < 50; i++) {
      // create an explosion AnimatedSprite
      var explosion = new PIXI.extras.AnimatedSprite(explosionTextures);

      explosion.x = Math.random() * app.renderer.width;
      explosion.y = Math.random() * app.renderer.height;
      explosion.anchor.set(0.5);
      explosion.rotation = Math.random() * Math.PI;
      explosion.scale.set(0.75 + Math.random() * 0.5);
      explosion.gotoAndPlay(Math.random() * 27);
      app.stage.addChild(explosion);
    }

    // start animating
    app.start();
  }
};
コード例 #2
0
export default async context => {
  //http://pixijs.io/examples/#/basics/basic.js
  const app = ExpoPixi.application({
    context,
  });

  var bol = false;

  // create a texture from an image path

  PIXI.loader.add('flowerTop', 'required/assets/flowerTop.png');
  PIXI.loader.load(function(loader, resources) {
    texture = resources.flowerTop.texture;
    init();
  });
  var texture;

  function init() {
    // create rotated textures
    var textures = [texture];
    var D8 = PIXI.GroupD8;
    for (var rotate = 1; rotate < 16; rotate++) {
      var h = D8.isSwapWidthHeight(rotate) ? texture.frame.width : texture.frame.height;
      var w = D8.isSwapWidthHeight(rotate) ? texture.frame.height : texture.frame.width;

      var frame = texture.frame;
      var crop = new PIXI.Rectangle(texture.frame.x, texture.frame.y, w, h);
      var trim = crop;
      if (rotate % 2 == 0) {
        var rotatedTexture = new PIXI.Texture(texture.baseTexture, frame, crop, trim, rotate);
      } else {
        //HACK to avoid exception
        //PIXI doesnt like diamond-shaped UVs, because they are different in canvas and webgl
        var rotatedTexture = new PIXI.Texture(texture.baseTexture, frame, crop, trim, rotate - 1);
        rotatedTexture.rotate++;
      }
      textures.push(rotatedTexture);
    }

    var offsetX = (app.renderer.width / 16) | 0;
    var offsetY = (app.renderer.height / 8) | 0;
    var gridW = (app.renderer.width / 4) | 0;
    var gridH = (app.renderer.height / 5) | 0;

    //normal rotations and mirrors
    for (var i = 0; i < 16; i++) {
      // create a new Sprite using rotated texture
      var dude = new PIXI.Sprite(textures[i < 8 ? i * 2 : (i - 8) * 2 + 1]);
      dude.scale.x = 0.5;
      dude.scale.y = 0.5;
      // show it in grid
      dude.x = offsetX + gridW * (i % 4);
      dude.y = offsetY + gridH * ((i / 4) | 0);
      app.stage.addChild(dude);
      var text = new PIXI.Text('rotate = ' + dude.texture.rotate, {
        fontFamily: 'Courier New',
        fontSize: '12px',
        fill: 'white',
        align: 'left',
      });
      text.x = dude.x;
      text.y = dude.y - 20;
      app.stage.addChild(text);
    }
  }
};