Permalänk

fånigt problem med bit blt

Hej.

En vacker dag fick jag för mig att göra ett spännade rpg spel i visual basic och en kompis tippsade mig om att använda bit blt han refererade även till http://www.rookscape.com/vbgaming/GBeebe/bitblt.php

Problemet är att pictureboxen måste vara synlig i formuläret, annars kopierar den pixlarna som är där pictureboxen "borde" vara.

Här kan ni ladda hem mitt lilla program

http://www.shell.linux.se/tjoff/Project1.exe

Den här koden har jag lagt in i en module: Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, _ ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, _ ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, _ ByVal ySrc As Long, ByVal dwRop As Long) As Long Public Const SRCCOPY = &HCC0020 Public Const SRCPAINT = &HEE0086 Public Const SRCAND = &H8800C6 Public RetVal As Long Här är ett utklipp från subrutinen form_keycode: Public Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 39 Then X = X + 1 RetVal = BitBlt(ruta.hDC, 0, 0, 32, 32, karta.hDC, X * 32, Y * 32, SRCCOPY) RetVal = BitBlt(ruta.hDC, 0, 0, 24, 32, alexMask.hDC, a * 24, 32, SRCAND) RetVal = BitBlt(ruta.hDC, 0, 0, 24, 32, alexSprite.hDC, a * 24, 32, SRCPAINT) 'ruta.PaintPicture alex, 0, 0, 24, 32, a * 24, 32, 24, 32 ruta.Left = 32 * X a = a + 1 If a = 3 Then a = 0 End If

Permalänk

Ahh, tror jag vet va de är, testa att sätta AutoRedraw till True på pictureboxen.

Permalänk

Ojdå, hur kunde jag missa en sån viktig, liten grej.
Tack.

Permalänk
Medlem

En annan sak som man brukar glömma är att allt ska ha samma ScaleMode. Har för mig att BitBlt kräver pixel.

Permalänk

En sak som jag inte förstår är varför ScaleMode inte är pixel från början.

"twips" - vad fan är det?

Visa signatur

Microsoft Longhorn operating system is going to be Windows Vista. As in “a view into the distance” which surely refers to the prolonged development timeline of the OS

Permalänk

Twips är en bråkdel av en pixel. Förstår inte riktigt vad man ska ha det till eftersom de flesta skärmar jag känner till inte kan rita ut skillnaden mellan 1 och 5 twips, en pixel kan väl bara ha en färg? Antingen så är det något dundersmart som är så knepigt och finurligt uttänkt att jag inte förstår vad det är bra för eller så är det bara önödigt trams.
Det är ju faktiskt lite irriterande att twips är inställt automatiskt, men vad kan man förvänta sig, det är ju microsoft.

Jag blev så nyfiken att jag bara var tvungen att söka lite om twips på google.

"Twips are screen-independent units to ensure that the proportion of screen elements are the same on all display systems. A twip is defined as being 1/1440 of an inch."

Till skillnad från pixlar som är "skärmberoende"