Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #14  
Antiguo 10-02-2006
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 22
Héctor Randolph Va por buen camino
Espero no haberte confundido demasiado, la manera que a mi se me ocurrió para representar el tablero fue por medio de una matriz de NxN, en cada entrada puedes colocar un número digamos 0,1,2, etc. Estos números corresponden a un índice en la lista de imagenes que previamente tienes cargadas.

La matriz tiene esta apariencia.

0 1 0 0
0 0 0 0
0 0 2 0
0 0 0 0

De tal manera que en donde aparezca un número 0 se dibujara el fondo del mar y con los demás números se dibujarán otros objetos.

El código que te muestro a continuación transforma los valores de la matriz en coordenadas dentro del Canvas (lienzo) del control PaintBox.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
const
  ANCHO=32;  ALTO=32;
  MAR=0;  AVION=1;  EXPLOSION=2;
var
  i,j: Integer;
 Matriz: array [0..9, 0..9] of Integer;
begin
 for j:=0 to 9 do
   for i:=0 to 9 do
      Matriz[j,i]:=MAR; // Rellenar la matriz completa de ceros
 // Colocamos dos objetos en la matriz tan solo como ejemplo
 Matriz[8,8]:=AVION; // Colocar un objeto en la posición (8,8)
 Matriz[4,4]:=EXPLOSION; // Colocar otro objeto en la posición (4,4)

 // Dibujamos la matriz en el PaintBox
 for j:=0 to 9 do
   for i:=0 to 9 do
   ImageList1.Draw(PaintBox1.Canvas,i*ANCHO,j*ALTO,Matriz[j,i]);
end;

El doble for recorre todas las entradas de la matriz y uso el método Draw(Canvas,X,Y,Indice) del ImageList para dibujar la imagen sobre el canvas del PaintBox, observa que el indice se obtiene de las entradas de la matriz.

Bueno, esta podría ser una forma de representarlo pero no es la única.

Saludos
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 18:50:36.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi