Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Slö uppdatering med Managed DD och C#

Postades av 2005-05-08 12:39:16 - Marcus Agbrant, i forum managed directX, Tråden har 2 Kommentarer och lästs av 2190 personer

Sitter och pillar med DirectDraw och C# för första gången. Efter att ha tittat på dom trevliga filmerna på MSDN TV så ville jag försöka blitta ut lite tiles. Skapade en extra surface som jag laddade in en bitmap med en tilesheet på. Sen använde jag två for-loopar, med Draw i ,på backbuffern för att rita ut tiles. Efter det flippade jag (nja... inte jag själv då utan i koden).

Allt körs från en loop som snurrar på så fort det går.

Detta resulterade i en uppdateringsfrekvens på kanske en bild var fjärde sekund.

Nedan följer delar av koden:

Initieringskoden:

protected void InitializeObjects()
                {        
                        running = true;
                        pos = new Point(100,100);

                        ddDev = new DirectDraw.Device();
                        ddDev.SetCooperativeLevel(this,DirectDraw.CooperativeLevelFlags.FullscreenExclusive);

                        SurfaceDescription Desc = new SurfaceDescription();
                        Desc.SurfaceCaps.PrimarySurface = true;
                        Desc.SurfaceCaps.Complex = true;
                        Desc.SurfaceCaps.Flip = true;
                        Desc.BackBufferCount = 1;
                        
                        primary = new Surface(Desc, ddDev);

                        SurfaceCaps caps = new SurfaceCaps();
                        caps.BackBuffer = true;

                        offscreen = primary.GetAttachedSurface(caps);

                        diDev = new Microsoft.DirectX.DirectInput.Device(SystemGuid.Keyboard);
                        DirectInput.CooperativeLevelFlags flags;
                        flags = DirectInput.CooperativeLevelFlags.NonExclusive;
                        flags |= DirectInput.CooperativeLevelFlags.Foreground;
                        flags |= DirectInput.CooperativeLevelFlags.NoWindowsKey;
                        diDev.SetCooperativeLevel(this,flags);

                        Bitmap bmp = new Bitmap(Application.StartupPath + "\\map.bmp");

                        SurfaceDescription sDe = new SurfaceDescription();
                      
                        sDe.SurfaceCaps.OffScreenPlain = true;
                        sDe.Width = 64;
                        sDe.Height = 64;
                        sTS = new Surface(bmp,sDe,ddDev);
                }


Renderingsmetoden:

   protected void Render()
                {
                        offscreen.ColorFill(0xffffff);
                        for(int iOuterLoop = 0; iOuterLoop < 800; iOuterLoop = iOuterLoop + 32)
                        {
                                rD.X = iOuterLoop;
                                for(int iInnerLoop = 0; iInnerLoop < 600; iInnerLoop = iInnerLoop + 32)
                                {
                                        rD.Y = iInnerLoop;
                                        offscreen.Draw(rD, sTS, rS, df, de);
                                }
                        }
                       primary.Flip(offscreen, FlipFlags.Wait);
                }


Svara

Sv: Slö uppdatering med Managed DD och C#

Postades av 2005-05-08 13:38:15 - Johan Lindfors

Har provat din kod, men inte alls fått det slöa uppträdandet, vad skickar du in för DrawFlags och DrawEffects då, för de syns inte i den bifogade koden!


Svara

Sv: Slö uppdatering med Managed DD och C#

Postades av 2005-05-09 20:41:22 - Marcus Agbrant

Visade sig att koden var helt rätt och datorn som var dum.


Svara

Nyligen

  • 17:07 Snabb och trevlig webbplats utan l
  • 17:00 Bra spelsajt med bonusar
  • 15:51 Slappna av
  • 15:17 Onlineunderhållning på fritiden
  • 11:13 Online Kasino
  • 17:57 Vart är SEO på väg till 2030?
  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 662
27 955
271 720
6 153
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies