Dobrej pokec   Lišanská šlapka   MSDN   VB na Microsoft.cz   NCHAT Nový design
   Portál  O firmě  Profil  Reference  Produkty  Odkazy  Diskuse  Tisková verze 



  Novinky e-mailem
Pokud chcete být informováni o změnách ,přihlašte se k odběru novinek!
  
  
  Nejčtenější články
 Seznam všech českých hubů abecedně. (32112)
 Seznam hubů nad 100 uživatelů (20823)
 Konfigurovatelné rozbalovací menu (17438)
 Jak na makra (14328)
 Rozbalovací menu v JavaScriptu (2.) (12646)
  Nejstahovanější soubory
 Action Meter (1846)
 Slovní Fotbal (777)
 IE Boss Guard (484)
 zdroják slovní fotbal (383)
 Folder Watcher (370)
  Anketa

  Nabídka portálu

 Adobe Premiere
    Jak se dá udělat
 Alternativní prohlížeče
    FireFox
 ASP
    Tipy a triky
 Direct Connect
    Huby
    Scripty pro HUB
    Tipy a triky CZDC++
 Game Maker
    Tipy a triky
 Hry
    Akční
    Logické
 HTML
    Scripting (VBS,JS)
    Tipy a triky
 Internet
    Užitečné triky
 Microsoft Office
    Tipy, triky, návody
    Užitečná makra
    VBA Tipy a triky
 MS SQL Server
    Nastavení
    Seriály
    Tipy a triky
 Multimedia
    Návody
 Oracle
    PL/SQL
 PHP
    Jak na to
    Tipy a triky
 Užitečné odkazy
    Grafické programy
    Programátorské
 Visual Basic
    DirectX
    Formuláře
    Jak se dá udělat ...
    Užitečné funkce
    Win32Api
    Zdroje
 Visual Basic .NET
    Užitečné funkce
 Vtípky
    Vtipy a anekdnoty
 Vypalování
    DVD Shrink
    Tipy a triky
 Windows
    Jak se dá ...
    Tipy a triky pro XP
    Triky pro IE


Nabídka portálu se při zobrazení článku přesouvá na konec pravého sloupce nabídek.

 Programování pod DirectX ve VB (1.)

Autor: Kočí Marek
Zdroj: 
Vytvořeno: 10.1.2003
Publikováno: 10.1.2003
Čtenářů: 3349
Unikátních: 3267


První díl seriálu s příklady použíti knihovny DirectX pro Visual Basic pro práci s grafikou a se zvuky. V tomto úvodním díle ukázka zjištění rozlišení obrazovky.

Chceme-li programovat ve VB hru, musíme mít typovou knihovnu pro podporu DirectX ve Visual Basicu. Založme tedy nový projekt Standard Exe a v Referencích (Project / Referencis .../) vyberte položku DirectX 7 for Visual Basic Type Library. Tím máme zaručenou podporu DirectX a můžeme začít programovat.

Pokud v referencích uvedená položka chybí, nezbude nic jiného, než si jí stáhnout někde z internetu

Pro úplnost uvádím, že DirectX verze 7 je již starší, proto jsem ho použil v ukázkovém příkladu. Pro další (vyšší) verze je nutné přepsat moduly s funkcemi a deklaracemi DirectX rozhraní.

A nyní vzhůru k programování. Nejprve otestujeme podporu rozlišení, které chceme ve hře použít.

Na formulář vložte dvě tlačítka (Command1 a Command2)
a jeden Label (Label1)

Vložte tento kód a můžete testovat.

Option Explicit

Dim tFormTop
Dim tFormLeft
Dim tFormWidth
Dim tFormHeight
Dim ScreenCurW
Dim ScreenCurH
Dim ScreenCurBPP


Private Sub Command1_Click()
  Testing
End Sub

Private Sub Form_Load()
  Me.Caption = "Test podpory rozliseni"
  Command1.Caption = "&Test"
  
  With Command2
    .Caption = "&Start"
    .Enabled = False
  End With
  
  Label1.Caption = "Otestujte podporu"
    With Me
        tFormTop = (Screen.Height  2) - (.Height  2)
        tFormLeft = (Screen.Width  2) - (.Width  2)
        tFormWidth = .Width
        tFormHeight = .Height
        Form_Resize
    End With
End Sub

Private Sub Form_Resize()
  With Me
    .Top = tFormTop
    .Left = tFormLeft
    .Width = tFormWidth
    .Height = tFormHeight
  End With
End Sub

Private Function TestRes() As Boolean
  Dim dxTest As New DirectX7
  Dim ddTest As DirectDraw7

  On Error GoTo errResTest
  Set ddTest = dxTest.DirectDrawCreate("")
  ddTest.SetCooperativeLevel Me.hWnd, _
                             DDSCL_EXCLUSIVE Or _
                             DDSCL_FULLSCREEN Or _
                             DDSCL_ALLOWMODEX
  ddTest.SetDisplayMode ScreenCurW, ScreenCurH, _
                        ScreenCurBPP, 0, DDSDM_DEFAULT
  ddTest.RestoreDisplayMode
  ddTest.SetCooperativeLevel Me.hWnd, DDSCL_NORMAL
  Set ddTest = Nothing
  Set dxTest = Nothing
  Form_Resize
  TestRes = True
  Exit Function
errResTest:
    Form_Resize
    TestRes = False
    DoEvents
End Function

Private Function Testing()
  ScreenCurW = 800  'Rozlišení vodorovně (640,800,...)
  ScreenCurH = 600  'Rozlišení svisle    (480,600,...)
  ScreenCurBPP = 32 '16,8
  If TestRes Then
    Command2.Enabled = True
    Label1.Caption = "OK."
  End If
End Function

Příšte: Jak načíst obrázky a zvuky a jejich zobrazení, přehrání.




Příspěvky ke článku:



© Swit.cz, Marek Kočí 2003