SFML community forums

Help => General => Topic started by: Glinvan on March 25, 2018, 10:27:33 pm

Title: Match-3 token swap
Post by: Glinvan on March 25, 2018, 10:27:33 pm
Hello. I'm new to programming and especially to SFML. I currently study c++ at my college and i wanted to make a match-3 game like bejeweled or huniepop. The point is that i have no idea how to do that so i tried to looking for something on the internet, so i found this:
 https://www.youtube.com/watch?v=YNXrFOynalE.
 Now i'm trying to understand this, and i'm not doing very good job at it.
if (click==1)
    {
  // mouse click
      x0=pos.x/ts+1;
      y0=pos.y/ts+1;
    }
   if (click==2)
    {
      x=pos.x/ts+1;
      y=pos.y/ts+1;
      if (abs(x-x0)+abs(y-y0)==1)
        {swap(grid[y0][x0],grid[y][x]); isSwap=1; click=0;}
      else click=1;
    }
I suppose this function must select an element on first click and swap it with the different element on the second click, but i can't understand how does it swap them. Window size is 740x480, size of a tile on the playing field (ts) is 54x54 and size of an element is 48x48. There's also Vector2i offset(48,24) and pos = Mouse::getPosition(app)-offset;
Title: Re: Match-3 token swap
Post by: Glinvan on March 28, 2018, 12:19:08 am
Ok, i decided to rewrite this code by myself, maybe that will help me understand it better. I don't understand what is this offset used for. It's declared like this: Vector2i offset(48,24); and it's used in this: gems.move(offset.x-ts,offset.y-ts);