Jag har en "liten" nöt för nån av er Javascriptare att knäcka. Det är så att jag skulle vilja ha en funktion som förflyttar ett lager från ett ställe till ett annat i en sådan takt så att man ser vad som händer (det skall alltså inte bara "hoppa" till det stället, det skall synas).
Funtionen skall helst bara ta ett argument, och det är vart den ska. Sedan har jag lite speciella önskningar när det gäller hur lagret skall röra sig.
För att ni skall förstå så kan jag ge ett exemepel:
Det skall lixom fungera som en "tråd". Lagret "hänger" på denna vågrätta tråd och skall förflyttas fram och tillbaka på den.
Låt säga att lagret skall från en position långt till vänster och till en posistion som ligger åt höger. Då skall det först röra sig lite för mycket till höger, sedan röra sig tillbaka åt vänster men också denna gången lite för mycket. Nästa steg blir sedan att lägga sig på plats på den rätta positionen.
En annan sak som jag har funderat på och som skulle vara rolig är om detta också kunde ske med viss slumpmässighet. Så att antalet "missar" varierar samt längden på dem. Så att "fjonget" som jag hoppas åstakomma är mer realistiskt.
Är det någon som fattar vad jag menar och skulle kunna försöka sig på en sådan här funktion?
Om det inte finns någon som orkar så kan ni väl ge ideér om hur den rent teoretiskt skulle kunna se ut. Jag är inte så haj på Javascript men jag kanske skulle kunna fixa det med lite hjälp. Hur funkar en sådan sak som att flytta ett lager från en position till en annan med "fördröjning" så att man verkligen ser att det flyttar sig. Och hur skulle man kunna åstakomma slumpmässigheten.
Försökte själv med att fixa till koden så att den tog koordinaten vart lagret skulle som argument istället som för som det var innan.
Sedan satte jag också en variabel "fart" så att man skulle kunna fixa farten på ett enkelt sätt. Men just det att lagret nu går åt två håll gjorde det lite svårt. Eftersom man flyttar lagret 20 steg så "hänger" sig funktionerna (funktionen anropar ju sig själv) så att lagret hoppar fram och tillbaka en del.
Detta löste jag genom att i if satsen ha detta: "x + fart < slut". Det funkar ju. Men det är ingen bra lösning, och varför? Jo det där +fart (20 i detta fallet) gör att det blir olika placering hela tiden eftersom 20 är så "brett".
Är det någon som fattar vad jag menar? Om inte, så testa koden nedan, utan " +fart" alltså bara "x < slut" så får ni se hur funktionen "hänger" sig (samma med den andra if satsen, ta bort " - fart"). Nån som har en idé om hur man skall lösa det? Känner att denna koden inte är speciellt snyggt skriven, finns säkert något enkelt sätt att fixa det, men med min tomma hjärna så fungerar det lixom inte för mig
Här kommer iaf den koden som jag kommit fram till hittils (men den är som sagt inte helt bra):