Dies ist leicht zu lösen mit einfachen Vergleichslogik, fügen Sie diese Funktion und verwenden Sie sie mit den Argumenten, die Sie gerne (Spieler x und y zum Beispiel), um ihre Werte zu begrenzen, bevor Sie auf den Player anwenden.
Diese Funktion akzeptiert drei Argumente - Zahlenwert, Untergrenze und Obergrenze. Und es gibt eine Zahl zurück, die garantiert ist, innerhalb von diese Grenzen zu sein.
ist dies die Funktion
function math.clamp(value, low, high)
if low and value <= low then
return low
elseif high and value >= high then
return high
end
return value
end
Verwendungsbeispiel
local actualSpeed = math.clamp(calculatedSpeed, 0, 200)
local temperature = math.clamp(temperature, -270)
player.x = math.clamp(player.x, 0, map.width)
cannon.rotation = math.clamp(cannon.rotation, -90, 90)
local age = math.clamp(age, 1, 120)
-- Six has higher probability than any other number
local luckyDice = math.clamp(math.random(1, 10), nil, 6)
source for further reading
EDIT:
local backGround = display.newRect(display.actualContentWidth/2,display.actualContentHeight/2,display.actualContentWidth,display.actualContentHeight)
backGround:setFillColor(0.5, 0.5, 0.5, 1.0)
local player = display.newCircle(100,100,50)
function math.clamp(value, low, high)
if low and value <= low then
return low
elseif high and value >= high then
return high
end
return value
end
function movePlayer(event)
if(event.phase == "moved") then
local xPosition = event.x
local yPosition = event.y
xPosition = math.clamp(xPosition, 0, 150)
yPosition = math.clamp(yPosition, 0, 150)
transition.to(player, {x=xPosition,y=yPosition,time = 30})
end
end
player.touch = movePlayer
player:addEventListener("touch", movePlayer)
backGround:addEventListener("touch", movePlayer)
Danke, das ist wahrscheinlich das, was ich brauche, aber für den Moment verstehe ich nicht ganz, wie ich es für meine Funktion movePlayer verwenden soll (ich habe gerade angefangen zu programmieren) – marques
Ich habe meine Antwort bearbeitet und einen Code hinzugefügt ist einfach zu verstehen und zu testen, es verwendet die genannte Lösung, wenn Sie noch Hilfe benötigen, sagen Sie uns. – DeyaEldeen