美文网首页
剑气纵横-autojs动画

剑气纵横-autojs动画

作者: 牙叔教程 | 来源:发表于2021-10-02 23:29 被阅读0次

牙叔教程 简单易懂


剑气动画.gif
"ui";
engines.all().map((ScriptEngine) => {
  if (engines.myEngine().toString() !== ScriptEngine.toString()) {
    ScriptEngine.forceStop();
  }
});
importClass("android.animation.ValueAnimator");
importClass("android.content.Context");
importClass("android.graphics.Matrix");
importClass("android.graphics.PorterDuffXfermode");
importClass("android.graphics.PorterDuff");
importClass("android.graphics.Color");
importClass("android.util.AttributeSet");
importClass("android.view.View");
importClass("android.view.animation.RotateAnimation");
ui.layout(
  <vertical>
    <canvas id="board"></canvas>
  </vertical>
);

// 设置画笔参数
let paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setStyle(Paint.Style.FILL);
color = colors.parseColor("#ffffff");
paint.setColor(color);

// 设置动画参数
let anim = ValueAnimator.ofFloat(0, -360);
anim.repeatCount = android.view.animation.Animation.INFINITE;
anim.setDuration(1000);
anim.setInterpolator(null);
anim.start();
let camera = android.graphics.Camera();
let rotateMatrix = Matrix();
let xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_OUT);
/* -------------------------------------------------------------------------- */
ui.post(function () {
  let width = ui.board.getWidth();
  let height = ui.board.getHeight();
  // log(width.toFloat());
  ui.board.on("draw", function (canvas) {
    canvas.drawColor(Color.BLACK);
    color = "#ff0000";
    drawSword(canvas, 35, -45, 0, width, height, color);
    color = "#00ff00";
    drawSword(canvas, 50, 10, 120, width, height, color);
    color = "#0000ff";
    drawSword(canvas, 35, 55, 240, width, height, color);
  });
});

function drawSword(canvas, rotateX, rotateY, startValue, width, height, color) {
  let colorNum = colors.parseColor(color);
  paint.setColor(colorNum);
  let layerId = canvas.saveLayer(0, 0, width, height, null, android.graphics.Canvas.ALL_SAVE_FLAG);
  rotateMatrix.reset();
  camera.save();
  /* ----------------相机旋转---------------------------------------------------------- */
  camera.rotateX(rotateX);
  camera.rotateY(rotateY);
  camera.rotateZ(anim.animatedValue + startValue);
  camera.getMatrix(rotateMatrix);
  camera.restore();
  /* -------------------------------------------------------------------------- */

  let halfW = width / 2;
  let halfH = height / 2;
  let radius = Math.min(width, height) / 4;
  rotateMatrix.preTranslate(-halfW, -halfH);
  rotateMatrix.postTranslate(halfW, halfH);
  canvas.concat(rotateMatrix);
  canvas.drawCircle(halfW, halfH, radius, paint);
  paint.xfermode = xfermode;
  canvas.drawCircle(halfW, halfH - 0.05 * radius, radius * 1.01, paint);
  canvas.restoreToCount(layerId);
  paint.xfermode = null;
}

参考

Android 炫酷自定义 View - 剑气加载

名人名言

思路是最重要的, 其他的百度, bing, stackoverflow, 安卓文档, autojs文档, 最后才是群里问问
--- 牙叔教程

声明

部分内容来自网络
本教程仅用于学习, 禁止用于其他用途

相关文章

  • 剑气纵横-autojs动画

    牙叔教程 简单易懂 参考 Android 炫酷自定义 View - 剑气加载[https://mp.weixin....

  • 剑气纵横啸雄心

    公益在线(公益记者冯永军)河北讯:拿到怀来公安自己编写的书《桑干啸剑》,心中久违的那份昂扬瞬间喷发出来:那是危险时...

  • 剑气纵横三万里

    「」文/板砖 意象对话心理学有一种分析人物的方法,就是把人物拆散,每个人有很多不同的侧面,...

  • 剑气纵横山影乱

    中国大地,曾是剑气纵横的舞台。 逐鹿中原的战争,长剑飞舞,山河血红。 艺术的世界中,三尺长剑独领风骚,江湖儿女为家...

  • 我爱武侠小说

    “剑气纵横三万里,一剑光寒十九洲”,武侠小说中有剑气纵横,豪情万丈;“侠之大者,为国为民”,武侠小说中也有保国护民...

  • 【短篇小说】(一)剑气纵横

    (一) 他终于还是离开了门派。 料理完师父的后事,他终究是要走。 也许,他原本便不属于这里。 月朗...

  • 利剑

    雪藏霜刃骏归山,泱泱大国虎狼环。剑气纵横越珠峰,不斩蛮夷誓不还!

  • 秋来也

    寒风新雨染山林,红炉煮酒拭青锋,剑气纵横荡云霄,雪岭云杉挂彩虹。

  • 解放双手神器-autojs

    什么是autojs?能干什么? 首先来说什么是autojs呢?autojs是Android平台上支持Node.js...

  • 剑心

    一剑挥去尽皆惧 剑气纵横八万里 剑意心中谁人惧 至今独孤求一败

网友评论

      本文标题:剑气纵横-autojs动画

      本文链接:https://www.haomeiwen.com/subject/twfvnltx.html