0
Ich arbeite gerade an einem Projekt und es enthält eine Option für eine zu zeichnende Linie. Aber ich kann normalerweise nicht maximale Länge der Linie einstellen. Wie kann ich das machen? HierWie stelle ich die maximale Länge einer Zeichenlinie ein? (Corona SDK)
ist der Code, der Abstandsformel (wie ich glaube):
local function distanceBetween(e, prev)
local distanceBetween = 0
local dist_x = e.x - prevX ; local dist_y = e.y - prevY;
local distanceBetween = math.sqrt((dist_x*dist_x) + (dist_y*dist_y))
return distanceBetween
end
Und hier ist eine Zeile Code:
local lines = {}
local myLines = {}
local prevX,prevY
local i = 1
--prevX = x1, prevY = y1, e.x = x2, e.y = y2
local function drawLine(e)
distanceBetween = false
if(e.phase == "began") then
myLines[i] = {}
prevX = e.x
prevY = e.y
elseif(e.phase == "moved")then
if prevX then
myLines[i][#myLines[i] + 1] = display.newLine(prevX,prevY,e.x,e.y)
myLines[i][#myLines[i]]:setColor(255,255,0)
myLines[i][#myLines[i]].width = 5
myLines[i][#myLines[i]].alpha=1
myLines[i][#myLines[i]].myName = "Line"
dist_x = e.x - prevX
dist_y = e.y - prevY
physics.addBody(myLines[i][#myLines[i]], "static", { density = 1, friction = 0.5, bounce = 1.6, shape = {0, 0, dist_x, dist_y, 0, 0} })
lineGroup:insert(myLines[i][#myLines[i]])
distanceBetween = true
if (distanceBetween > 50) then
drawLine("ended")
end
end -- this is how i think line should be maximized
prevX = e.x
prevY = e.y
elseif(e.phase == "ended")then
prevX = nil
prevY = nil
i = i + 1
removeLine(myLines[#myLines-1])
end
end
Runtime:addEventListener("touch",drawLine);
Hey Mann, danke! Eigentlich denke ich genau, wie man gerade Linien statt gekrümmte zeichnet ... Könntest du bitte dabei helfen? das wäre wirklich toll! – barmyman
Und Ihr Code gibt mir seltsame Fehler: versuchen, Arithmetik auf lokalen 'x2' (ein Nullwert) – barmyman
Oh, schien es zu beheben, indem x1, x2, y1, y2 = 0 als lokale, aber ist das richtig? und jetzt habe ich diesen fehler: versuchen sie, upvalue 'distanceBetween' (ein nummer wert) aufrichtig hoffe ich werde ihnen helfen! – barmyman