Visual Basic - Problemas con Pixels vs Twips en VBasic

Life is soft - evento anual de software empresarial
 
Vista:

Problemas con Pixels vs Twips en VBasic

Publicado por X-Paw-M (1 intervención) el 12/02/2003 01:52:08
Estoy intentando desarroyar un Tetris en VBasic para lo cual he hecho una Sub que dibuja un cuadro en pantalla y le da efectos gráficos (volumen) el código es el siguiente:

Sub Dibuja(ByVal X As Integer, ByVal Y As Integer)

With Bloques
'Bloques es un Type que contiene Tamaño del cuadro
'% de los adornos o efecto volumen en el cuadro dibujado
'y color RGB del cuadro

Tetris.Line (X, Y)-(X + .Tamaño, Y + .Tamaño), RGB(.R, .G, .B), BF
'con esto hago un cuadro en las coordenadas pasadas
'del tamaño Bloques.Tamaño

If .Adornos > 0 Then

Dim Z As Byte

For Z = 0 To (.Adornos * .Tamaño / 100)
'Este bucle genera los "adornos"
Tetris.Line (X + Z, Y + Z)-(X - Z + .Tamaño, Y + Z), ToWhite(.R, .G, .B, 25)
Tetris.Line (X + Z, Y - Z + .Tamaño)-(X - Z + .Tamaño, Y - Z + .Tamaño), ToBlack(.R, .G, .B, 25)
Tetris.Line (X + Z, Y + Z)-(X + Z, Y - Z + .Tamaño), ToWhite(.R, .G, .B, 35)
Tetris.Line (X - Z + .Tamaño, Y + Z)-(X - Z + .Tamaño, Y - Z + .Tamaño), ToBlack(.R, .G, .B, 35)
Next Z

End If

End With

End Sub

Los problemas que se me plantean son los siguientes, cuando defino Bloques.Tamaño como 15 (por ejemplo) en pantalla se dibuja un cuadro de 13x13 pixels ¿por que? (el ScaleMode del Form Tetris es "3 - Pixel"), si lo que le pido al formulario es:

Line(X,Y)-(X+Bloques.Tamaño,Y+Bloques.Tamaño)

Debería ser un cuadro de 15x15 a mi entender, otro misterio que me está quebrando la cabeza es que al usar la Sub Dibuja (del Módulo Cuadro) en un bucle del tipo:

For X=0 to Tamaño*22 step Tamaño
Cuadro.Dibuja(X,0)
Next X

Se me superpone la primera columna de cada cuadro sobre la anterior y por mucho que le doy vueltas, no me explico por que, si alguien está interesado en echarme un cable, puedo pasarle el código fuente para que haga pruebas en su casa.

Gracias por vuestra atención.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder