我正在用libGdx做第一场比赛。我必须做像this video
这样的线条绘制动画这是我的绘制代码
/*-----------------------------------------------------------------------------------*/
/* RETINA.JS
/*-----------------------------------------------------------------------------------*/
(function () {
var regex = /(media\/cache\/filter_[A-Z]+)/i //Added this
function t(e) {
this.path = e;
var t = this.path.split("."),
n = t.slice(0, t.length - 1).join("."),
r = t[t.length - 1];
this.at_2x_path = (n + '.' + r).replace(regex, '$1_retina') //Changed that
}
function n(e) {
this.el = e, this.path = new t(this.el.getAttribute("src"));
var n = this;
this.path.check_2x_variant(function (e) {
e && n.swap()
})
}
var e = typeof exports == "undefined" ? window : exports;
e.RetinaImagePath = t, t.confirmed_paths = [], t.prototype.is_external = function () {
return !!this.path.match(/^https?\:/i) && !this.path.match("//" + document.domain)
}, t.prototype.check_2x_variant = function (e) {
var n, r = this;
if (this.is_external()) return e(!1);
if (this.at_2x_path in t.confirmed_paths) return e(!0);
n = new XMLHttpRequest, n.open("HEAD", this.at_2x_path), n.onreadystatechange = function () {
return n.readyState != 4 ? e(!1) : n.status >= 200 && n.status <= 399 ? (t.confirmed_paths.push(r.at_2x_path), e(!0)) : e(!1)
}, n.send()
}, e.RetinaImage = n, n.prototype.swap = function (e) {
function n() {
t.el.complete ? (t.el.setAttribute("width", t.el.offsetWidth), t.el.setAttribute("height", t.el.offsetHeight), t.el.setAttribute("src", e)) : setTimeout(n, 5)
}
typeof e == "undefined" && (e = this.path.at_2x_path);
var t = this;
n()
}, e.devicePixelRatio > 1 && (window.onload = function () {
var e = document.getElementsByTagName("img"),
t = [],
r, i;
for (r = 0; r < e.length; r++) i = e[r], t.push(new n(i))
})
})();
我可以画2点之间的直线,但需要绘制动画。
任何帮助?
答案 0 :(得分:5)
根据您的代码,您只需要使坐标值动态化:
Vector2 startPt = null;
Vector2 endPt = null;
Vector2 movingPt = null;
void myInit()
{
startPt = new Vector2(10, 10);
endPt = new Vector2(100, 100);
movingPt = new Vector2(startPt.x, startPt.y);
}
void update( float delta )
{
// add your animation here, below is an example
float PixelsPerSecond = 100f;
float dt = delta * PixelsPerSecond;
if ( movingPt.x < endPt.x ) movingPt.x += dt;
else movingPt.x = endPt.x;
if ( movingPt.y < endPt.y ) movingPt.y += dt;
else movingPt.y = endPt.y;
}
void draw()
{
// add code here (or in a base class) to clear the screen (once) each loop
ShapeRenderer shapeRenderer=new ShapeRenderer();
shapeRenderer.setProjectionMatrix(cam.combined);
shapeRenderer.begin(ShapeRenderer.ShapeType.Line);
shapeRenderer.setColor(Color.BLACK);
shapeRenderer.line(startPt, movingPt);
shapeRenderer.end();
}