Mensajes: 5278 Ubicación: Al otro lado de la pantalla
Domingo, 30 Octobre 2016, 10:53
Shordi:
Citar:
Por lo que veo no es que se pierda es que toma como referencia el borde de la ventana, no del formulario...
Vaya.
Citar:
Salvo necesidad imperiosa, creo que es primitivo y poco eficaz especificar a capón ubicaciones y tamaños. Nunca sabes qué definición va a tener el usuario en su máquina ni qué tamaño de escritorio ni nada. cambia esas dos instrucciones por un expand=true y punto.
Para los ejemplos que estoy haciendo necesito que el formulario se ajuste al tamaño del DrawingArea.
No puede cambiar de tamaño un poco mas el DrawingArea con expand. Depende de esto el tamaño de las celdas, el trazado.
Te diré que es un tablero. Todo por ahora es dibujado.
Ejemplo de tablero de 360 x 360: Las x's tambien son dibujadas, no es una imagen.
El tipo de marca depende si es ordenador o si es jugador humano.
Tengo que adaptar como debe quedar las marcas si el tablero es mayor, si es menor. Escalar el dibujo: Ejemplo 720 x 720
En este caso tienen un grosor fijo de trazado que no he adaptado a un tamaño de celda mayor.
Puedo cambiar el tamaño de las celdas, etc,etc.. Ejemplo 18 x 18 celdas en un tablero de 720 x 720.
Como ves el tamaño y la separación de la x depende del tamaño de la celda, que a su vez depende del tamaño del DrawingArea ( Tablero ).
Se debe establecer unos limites, etc, etc.
Como es un código que tiene un tiempo, tengo que modificarlo. Que seguro que con una división se hace mejor.
En este caso es el método que dibuja las X's de la clase Celda.
Public Sub DibujarXs()
Dim lugarx, lugary As Integer
Dim separacionesquinas As Integer = 10
Paint.LineWidth = 5
'Se comienza "siempre" a dibujar por la esquina superior izquierda. Nunca olvidar eso
'Se van a dibujar dos diagonales
'La separacion de las esquinas es una separación para que no comience justo en la esquina
'ni tampoco que llegue al final de la otra esquina
'Tambien aclarar que es un cuadrado más que un rectángulo. En este caso sus dimensiones son iguales
'por cada lado
'Primera coordenada
lugarx = Me.x * Me.ancho
lugary = Me.y * Me.alto
'Colocar en el lugar y trazar la primera diagonal
Paint.MoveTo(lugarx + separacionesquinas, lugary + separacionesquinas)
Paint.LineTo(lugarx + Me.ancho - separacionesquinas, lugary + Me.alto - separacionesquinas)
'Segunda coordenada
lugarx = Me.x * Me.ancho
lugary = Me.y * Me.alto
'Colocar en el lugar y trazar la segunda diagonal
Paint.MoveTo(lugarx + separacionesquinas, lugary + Me.alto - separacionesquinas) '
Paint.LineTo(lugarx + Me.ancho - separacionesquinas, lugary + separacionesquinas)
'Coloreamos de rojo
Paint.Brush = Paint.Color(Color.Red)
Paint.Stroke
End
Es una especie de comienzo de prototipo de tablero para el juego de los barquitos.
Este es el principio de la clase Celda:
Saludos