Aviseringar
Rensa alla

Hjälp med javascript


applekakanshaj2:

Är det för att om man inte skriver var i början så sparas det inte mer än en uppdatering?

Poängen med att ha det i slutet är för att då kommer den fortfarande ha det gamla x-värdet i nästa uppdatering medan mouse.x har det nya.

Om man inte skriver var blir variabeln global, och kan därmed användas även utanför funktionen. Om man skriver var tidigare så blir det en lokal variabel, som bara kan användas innanför update() (ditt nuvarande scope, se länk).

Variabeln är väl dock redan deklarerad, och x/lastx hör i så fall till mouse.


   
SvaraCitera
Ämnesstartare

Ruttenfisk:

Till exempel kan du lägga till mouse.lastx = mouse.x precis i slutet av update().

Det fungerade bra. men då så rör sig ju musen fortfarande. Går det inte att invertera mouse.x så att + 1 blir - 1? och sen så rör man bara bakgrunden med musen


   
SvaraCitera

applekakanshaj2:

Det fungerade bra. men då så rör sig ju musen fortfarande. Går det inte att invertera mouse.x så att + 1 blir - 1? och sen så rör man bara bakgrunden med musen

Om du kör mouse.lastx - mouse.x så blir det väl som du vill? Om mouse.x skulle öka med 5 skulle det ge -5


   
SvaraCitera
Ämnesstartare

Ruttenfisk:

Om du kör mouse.lastx - mouse.x så blir det väl som du vill? Om mouse.x skulle öka med 5 skulle det ge -5

Det var en bra lösning, borde funka bra, testar i morgon. Sist körde jag
if (mouse.lastx < mouse.x) {background.x -= 20, men kör din, eller en variant på den imorn.

om man vill få det att sluta funka när man är på väg att titta utanför bilden, ska man göra så att 

if (background.x < 0) {background.x === 0}

och lika på andra sidan, men det blir olika för olika datorer, eftersom pixlarna är olika stora från dator till dator... eller funkar det på det sättet?


   
SvaraCitera

applekakanshaj2:

Det var en bra lösning, borde funka bra, testar i morgon. Sist körde jag
if (mouse.lastx < mouse.x) {background.x -= 20, men kör din, eller en variant på den imorn.

om man vill få det att sluta funka när man är på väg att titta utanför bilden, ska man göra så att 

if (background.x < 0) {background.x === 0}

och lika på andra sidan, men det blir olika för olika datorer, eftersom pixlarna är olika stora från dator till dator... eller funkar det på det sättet?

if (background.x > 0) {background.x = 0} i så fall, === sätter inget värde utan används bara för att jämföra olika saker (främst i if-satser). 

Det beror främst på upplösningen, hur många pixlar skärmen har. För att få storleken på fönstret i pixlar kan man använda window.innerWidth och window.innerHeight.

Exempel: if (background.x < window.innerWidth - background.sizex) background.x = window.innerWidth - background.sizex;


   
SvaraCitera
Ämnesstartare

Ruttenfisk:

Är nöjd med resultatet här, inga buggar! (asså är inte klar med spelet, men bakgrundsanimationen...)

var backgroundCord = {x: 0, y: -160}

function update()
{
clearScreen();

var background = picture(backgroundCord.x, backgroundCord.y, " ", 1920, 1080)

  if (mouse.x > mouse.lastx)
  {
    backgroundCord.x += -21
  }
  if (mouse.x < mouse.lastx)
  {
    backgroundCord.x += 21
  }
  if (backgroundCord.x > 0)
  {
    backgroundCord.x = 0
  }
  if (backgroundCord.x < -1920 + totalWidth)
  {
    backgroundCord.x = -1920 + totalWidth
}

mouse.lastx = mouse.x
}


   
SvaraCitera