Selecionar apenas um retângulo de cada vez em um loop com o Corona SDK

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Selecionar apenas um retângulo de cada vez em um loop com o Corona SDK

Jadson Medeiros
Estou usando o Corona SDK 2018.3319 no Windows para criar um aplicativo de cartas e tenho o seguinte código:

local widget = require("widget")

scrollView = widget.newScrollView(
    {
      top = display.contentHeight - display.contentHeight * 55 / 100,
      left = 0,
      width = display.contentWidth,
      height = display.contentHeight * 55 / 100,
      scrollWidth = 600,
      horizontalScrollDisabled = true,
      scrollHeight = 1300,
      listener = scrollListener
    }
  ) 

local cards = {{name = "card1.png",x=8, y=8,w=70,h=90, sel=false},
               {name = "card2.png",x=84, y=8,w=70,h=90, sel=false},
               {name = "card3.png",x=160, y=8,w=70,h=90, sel=false},
               {name = "card4.png",x=236, y=8,w=70,h=90, sel=false},
               {name = "card5.png",x=8, y=106,w=70,h=90, sel=false},
               {name = "card6.png",x=84, y=106,w=70,h=90, sel=false},
               {name = "card7.png",x=160, y=106,w=70,h=90, sel=false},
               {name = "card8.png",x=236, y=106,w=70,h=90, sel=false},
               {name = "card9.png",x=8, y=204,w=70,h=90, sel=false},
               {name = "card10.png",x=84, y=204,w=70,h=90, sel=false},
               {name = "card11.png",x=160, y=204,w=70,h=90, sel=false},
               {name = "card12.png",x=236, y=204,w=70,h=90, sel=false},
               {name = "card13.png",x=8, y=302,w=70,h=90, sel=false},
               {name = "card14.png",x=84, y=302,w=70,h=90, sel=false},
               {name = "card15.png",x=160, y=302,w=70,h=90, sel=false},
               {name = "card16.png",x=236, y=302,w=70,h=90, sel=false},
               {name = "card17.png",x=8, y=400,w=70,h=90, sel=false},
               {name = "card18.png",x=84, y=400,w=70,h=90, sel=false},
               {name = "card19.png",x=160, y=400,w=70,h=90, sel=false},
               {name = "card20.png",x=236, y=400,w=70,h=90, sel=false},
               {name = "card21.png",x=8, y=498,w=70,h=90, sel=false},
               {name = "card22.png",x=84, y=498,w=70,h=90, sel=false},
               {name = "card23.png",x=160, y=498,w=70,h=90, sel=false},
               {name = "card24.png",x=236, y=498,w=70,h=90, sel=false},
               {name = "card25.png",x=8, y=596,w=70,h=90, sel=false},
               {name = "card26.png",x=84, y=596,w=70,h=90, sel=false},
               {name = "card27.png",x=160, y=596,w=70,h=90, sel=false},
               {name = "card28.png",x=236, y=596,w=70,h=90, sel=false},
               {name = "card29.png",x=8, y=694,w=70,h=90, sel=false},
               {name = "card30.png",x=84, y=694,w=70,h=90, sel=false},
               {name = "card31.png",x=160, y=694,w=70,h=90, sel=false},
               {name = "card32.png",x=236, y=694,w=70,h=90, sel=false},
               {name = "card33.png",x=8, y=796,w=70,h=90, sel=false},
               {name = "card34.png",x=84, y=796,w=70,h=90, sel=false},
               {name = "card35.png",x=160, y=796,w=70,h=90, sel=false},
               {name = "card36.png",x=236, y=796,w=70,h=90, sel=false},
               {name = "card37.png",x=8, y=894,w=70,h=90, sel=false},
               {name = "card38.png",x=84, y=894,w=70,h=90, sel=false},
               {name = "card39.png",x=160, y=894,w=70,h=90, sel=false},
               {name = "card40.png",x=236, y=894,w=70,h=90, sel=false},
               {name = "card41.png",x=8, y=992,w=70,h=90, sel=false},
               {name = "card42.png",x=84, y=992,w=70,h=90, sel=false},
               {name = "card43.png",x=160, y=992,w=70,h=90, sel=false},
               {name = "card44.png",x=236, y=992,w=70,h=90, sel=false},
               {name = "card45.png",x=8, y=1090,w=70,h=90, sel=false},
               {name = "card46.png",x=84, y=1090,w=70,h=90, sel=false},
               {name = "card47.png",x=160, y=1090,w=70,h=90, sel=false},
               {name = "card48.png",x=236, y=1090,w=70,h=90, sel=false},
               {name = "card49.png",x=8, y=1188,w=70,h=90, sel=false},
               {name = "card50.png",x=84, y=1188,w=70,h=90, sel=false},
               {name = "card51.png",x=160, y=1188,w=70,h=90, sel=false},
               {name = "card52.png",x=236, y=1188,w=70,h=90, sel=false},
               {name = "card53.png",x=8, y=1286,w=70,h=90, sel=false},
               {name = "card54.png",x=84, y=1286,w=70,h=90, sel=false},
               {name = "card55.png",x=160, y=1286,w=70,h=90, sel=false},
               {name = "card56.png",x=236, y=1286,w=70,h=90, sel=false},
               {name = "card57.png",x=8, y=1384,w=70,h=90, sel=false},
               {name = "card58.png",x=84, y=1384,w=70,h=90, sel=false},
               {name = "card59.png",x=160, y=1384,w=70,h=90, sel=false},
               {name = "card60.png",x=236, y=1384,w=70,h=90, sel=false},
               {name = "card61.png",x=8, y=1482,w=70,h=90, sel=false},
               {name = "card62.png",x=84, y=1482,w=70,h=90, sel=false},
               {name = "card63.png",x=160, y=1482,w=70,h=90, sel=false},
               {name = "card64.png",x=236, y=1482,w=70,h=90, sel=false},
               {name = "card65.png",x=8, y=1580,w=70,h=90, sel=false},
               {name = "card66.png",x=84, y=1580,w=70,h=90, sel=false},
               {name = "card67.png",x=160, y=1580,w=70,h=90, sel=false},
               {name = "card68.png",x=236, y=1580,w=70,h=90, sel=false},
               {name = "card69.png",x=8, y=1678,w=70,h=90, sel=false},
               {name = "card70.png",x=84, y=1678,w=70,h=90, sel=false},
               {name = "card71.png",x=160, y=1678,w=70,h=90, sel=false},
               {name = "card72.png",x=236, y=1678,w=70,h=90, sel=false},
               {name = "card73.png",x=8, y=1776,w=70,h=90, sel=false},
               {name = "card74.png",x=84, y=1776,w=70,h=90, sel=false},
               {name = "card75.png",x=160, y=1776,w=70,h=90, sel=false},
               {name = "card76.png",x=236, y=1776,w=70,h=90, sel=false},
               {name = "card77.png",x=8, y=1874,w=70,h=90, sel=false},
               {name = "card78.png",x=84, y=1874,w=70,h=90, sel=false},
               {name = "card79.png",x=160, y=1874,w=70,h=90, sel=false},
               {name = "card80.png",x=236, y=1874,w=70,h=90, sel=false},
               {name = "card81.png",x=8, y=1972,w=70,h=90, sel=false},
               {name = "card82.png",x=84, y=1972,w=70,h=90, sel=false},
               {name = "card83.png",x=160, y=1972,w=70,h=90, sel=false},
               {name = "card84.png",x=236, y=1972,w=70,h=90, sel=false},
               {name = "card85.png",x=8, y=2070,w=70,h=90, sel=false},
               {name = "card86.png",x=84, y=2070,w=70,h=90, sel=false}} 

local cardTouched = 0

local function touched(event)

  for i = 1,#cards do
    local card = event.target 
      if cards[i].sel == false and cardTouched  == 1 then
        card.alpha = .5
        cardTouched = cardTouched - 1
        cards[i].sel = true

      elseif cards[i].sel == false and cardTouched  == 0 then
        card.alpha = 1
        cardTouched = cardTouched + 1
        cards[i].sel = false

      end
    end
  end



for index = 1, 86 do
  local card = display.newRect(cards[index].x,cards[index].y,cards[index].w,cards[index].h)
  card.anchorX = 0
  card.anchorY = 0
  card:setFillColor(1,0,0)
  scrollView:insert(card)
  card:addEventListener("tap",touched)
end
Estou criando 86 cartas e gostaria que, ao tocar em uma delas, trocasse a  opacidade para 0.5, mas uma de cada vez, e não fosse possível selecionar duas ou mais de cada vez, apenas uma por toque. mas não estou conseguindo fazer a lógica dentro do loop.



--
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Acesse esse grupo em https://groups.google.com/group/lua-br.
Para mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Selecionar apenas um retângulo de cada vez em um loop com o Corona SDK

Michel Braz de Morais
Não manjo de Corona,

Mas vendo sua logica parece estar quase certa...
uma sutil mudança:

local function touched(event)
  local card = event.target 
  if card.sel == false then
    card.alpha = .5
    card.sel = true
  else
    card.alpha = 1
    card.sel = false
  end
end

Acredito que event ja tenha referencia para a carta que esta sendo tocada....
um palpite...



Boa sorte :)






Em qui, 28 de jun de 2018 às 11:06, Jadson Medeiros <[hidden email]> escreveu:
Estou usando o Corona SDK 2018.3319 no Windows para criar um aplicativo de cartas e tenho o seguinte código:

local widget = require("widget")

scrollView = widget.newScrollView(
    {
      top = display.contentHeight - display.contentHeight * 55 / 100,
      left = 0,
      width = display.contentWidth,
      height = display.contentHeight * 55 / 100,
      scrollWidth = 600,
      horizontalScrollDisabled = true,
      scrollHeight = 1300,
      listener = scrollListener
    }
  ) 

local cards = {{name = "card1.png",x=8, y=8,w=70,h=90, sel=false},
               {name = "card2.png",x=84, y=8,w=70,h=90, sel=false},
               {name = "card3.png",x=160, y=8,w=70,h=90, sel=false},
               {name = "card4.png",x=236, y=8,w=70,h=90, sel=false},
               {name = "card5.png",x=8, y=106,w=70,h=90, sel=false},
               {name = "card6.png",x=84, y=106,w=70,h=90, sel=false},
               {name = "card7.png",x=160, y=106,w=70,h=90, sel=false},
               {name = "card8.png",x=236, y=106,w=70,h=90, sel=false},
               {name = "card9.png",x=8, y=204,w=70,h=90, sel=false},
               {name = "card10.png",x=84, y=204,w=70,h=90, sel=false},
               {name = "card11.png",x=160, y=204,w=70,h=90, sel=false},
               {name = "card12.png",x=236, y=204,w=70,h=90, sel=false},
               {name = "card13.png",x=8, y=302,

--
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Acesse esse grupo em https://groups.google.com/group/lua-br.
Para mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Selecionar apenas um retângulo de cada vez em um loop com o Corona SDK

Jadson Medeiros
Obg pela ajuda Michel, mas não deu certo... :/

Em quinta-feira, 28 de junho de 2018 19:31:13 UTC-3, Michel Morais escreveu:
Não manjo de Corona,

Mas vendo sua logica parece estar quase certa...
uma sutil mudança:

local function touched(event)
  local card = event.target 
  if card.sel == false then
    card.alpha = .5
    card.sel = true
  else
    card.alpha = 1
    card.sel = false
  end
end

Acredito que event ja tenha referencia para a carta que esta sendo tocada....
um palpite...



Boa sorte :)






Em qui, 28 de jun de 2018 às 11:06, Jadson Medeiros <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="yVDFhLglCAAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">maca...@...> escreveu:
Estou usando o Corona SDK 2018.3319 no Windows para criar um aplicativo de cartas e tenho o seguinte código:

local widget = require("widget")

scrollView = widget.newScrollView(
    {
      top = display.contentHeight - display.contentHeight * 55 / 100,
      left = 0,
      width = display.contentWidth,
      height = display.contentHeight * 55 / 100,
      scrollWidth = 600,
      horizontalScrollDisabled = true,
      scrollHeight = 1300,
      listener = scrollListener
    }
  ) 

local cards = {{name = "card1.png",x=8, y=8,w=70,h=90, sel=false},
               {name = "card2.png",x=84, y=8,w=70,h=90, sel=false},
               {name = "card3.png",x=160, y=8,w=70,h=90, sel=false},
               {name = "card4.png",x=236, y=8,w=70,h=90, sel=false},
               {name = "card5.png",x=8, y=106,w=70,h=90, sel=false},
               {name = "card6.png",x=84, y=106,w=70,h=90, sel=false},
               {name = "card7.png",x=160, y=106,w=70,h=90, sel=false},
               {name = "card8.png",x=236, y=106,w=70,h=90, sel=false},
               {name = "card9.png",x=8, y=204,w=70,h=90, sel=false},
               {name = "card10.png",x=84, y=204,w=70,h=90, sel=false},
               {name = "card11.png",x=160, y=204,w=70,h=90, sel=false},
               {name = "card12.png",x=236, y=204,w=70,h=90, sel=false},
               {name = "card13.png",x=8, y=302,

--
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Acesse esse grupo em https://groups.google.com/group/lua-br.
Para mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Selecionar apenas um retângulo de cada vez em um loop com o Corona SDK

Jadson Medeiros
In reply to this post by Jadson Medeiros

Obg pela ajuda Michel, mas não deu certo... :/

Em quinta-feira, 28 de junho de 2018 11:06:41 UTC-3, Jadson Medeiros escreveu:
Estou usando o Corona SDK 2018.3319 no Windows para criar um aplicativo de cartas e tenho o seguinte código:

local widget = require("widget")

scrollView = widget.newScrollView(
    {
      top = display.contentHeight - display.contentHeight * 55 / 100,
      left = 0,
      width = display.contentWidth,
      height = display.contentHeight * 55 / 100,
      scrollWidth = 600,
      horizontalScrollDisabled = true,
      scrollHeight = 1300,
      listener = scrollListener
    }
  ) 

local cards = {{name = "card1.png",x=8, y=8,w=70,h=90, sel=false},
               {name = "card2.png",x=84, y=8,w=70,h=90, sel=false},
               {name = "card3.png",x=160, y=8,w=70,h=90, sel=false},
               {name = "card4.png",x=236, y=8,w=70,h=90, sel=false},
               {name = "card5.png",x=8, y=106,w=70,h=90, sel=false},
               {name = "card6.png",x=84, y=106,w=70,h=90, sel=false},
               {name = "card7.png",x=160, y=106,w=70,h=90, sel=false},
               {name = "card8.png",x=236, y=106,w=70,h=90, sel=false},
               {name = "card9.png",x=8, y=204,w=70,h=90, sel=false},
               {name = "card10.png",x=84, y=204,w=70,h=90, sel=false},
               {name = "card11.png",x=160, y=204,w=70,h=90, sel=false},
               {name = "card12.png",x=236, y=204,w=70,h=90, sel=false},
               {name = "card13.png",x=8, y=302,w=70,h=90, sel=false},
               {name = "card14.png",x=84, y=302,w=70,h=90, sel=false},
               {name = "card15.png",x=160, y=302,w=70,h=90, sel=false},
               {name = "card16.png",x=236, y=302,w=70,h=90, sel=false},
               {name = "card17.png",x=8, y=400,w=70,h=90, sel=false},
               {name = "card18.png",x=84, y=400,w=70,h=90, sel=false},
               {name = "card19.png",x=160, y=400,w=70,h=90, sel=false},
               {name = "card20.png",x=236, y=400,w=70,h=90, sel=false},
               {name = "card21.png",x=8, y=498,w=70,h=90, sel=false},
               {name = "card22.png",x=84, y=498,w=70,h=90, sel=false},
               {name = "card23.png",x=160, y=498,w=70,h=90, sel=false},
               {name = "card24.png",x=236, y=498,w=70,h=90, sel=false},
               {name = "card25.png",x=8, y=596,w=70,h=90, sel=false},
               {name = "card26.png",x=84, y=596,w=70,h=90, sel=false},
               {name = "card27.png",x=160, y=596,w=70,h=90, sel=false},
               {name = "card28.png",x=236, y=596,w=70,h=90, sel=false},
               {name = "card29.png",x=8, y=694,w=70,h=90, sel=false},
               {name = "card30.png",x=84, y=694,w=70,h=90, sel=false},
               {name = "card31.png",x=160, y=694,w=70,h=90, sel=false},
               {name = "card32.png",x=236, y=694,w=70,h=