felipess escreveu
Luciano entendi a idéia só para complementar... (desculpa minha falta de habilidade.. )
1º Você falou para percorrer o array no método update, então dentro dos laços para percorrer o array eu coloco essa condição que você citou? seria isso?
2º Esse rectangle delimitador você está usando nessa condição considerando que eu já tenha instanciado ele em cada imagem com o tamanho da imagem em si.. ou não seria preciso instanciar ele já criaria considerando o tamanho da imagem?
3º Não entendo o porque de usar o delegate? outra coisa o delegate pelo pouco que li.. é como se fosse uma interface de classe sendo que para métodos?
4º Como estou tentando fazer um código sem muito acoplamento, acredito que a não ficaria legal mandar o objeto que foi clicado para a classe Game e sim chamar o método que fará a mudança nesse objeto quando ele for clicado, entao esssa condição que você colocou poderia ficar assim:
if (tela[i, j]).Rectangle.Contains(Mouse.GetState().X, Mouse.GetState().Y) == true)
{
tela[i,j].MudarTextura();
}
?? nesse caso não seria preciso ngm assinar esse evento ne isso?
vlw Luciano... mt obg mesmoo!!!
|
1º pergunta:
Sim, poderia fazer assim também.
2º pergunta:
Instancia os retângulos previamente, e depois que a imagem for instanciada, você atribui os valores para que o retângulo envolva a imagem.
Para efeito de ganho de desempenho, se todas as imagens do array bidimensional tiverem sempre o mesmo tamanho, nem precisa ter 1 retangulo relacionado para cada imagem interna ao tabuleiro. Só basta guardar a posição de cada imagem e ter apenas 1 retangulo instanciado.
3º pergunta:
Pode ser encarado assim também. Delegate tb tem aquela idéia de ponteiro para métodos...
4º pergunta:
Se você quer apenas mudar a imagem quando for clicada, você nem precisa fazer manipulações com eventos. Basta criar um simples método para fazer isso tal como você fez nesse seu 4º ponto.
Entretanto, se você quer receber notificações fora do tabuleiro, informando se houve troca de imagem de algum determinado elemento de seu tabuleiro, talvez, nesse caso seja interessante utilizar eventos.