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


Om sprite

Postades av 2003-01-14 14:37:34 - Benni Svensson, i forum spel/grafik, Tråden har 8 Kommentarer och lästs av 1507 personer

Jag försöker att lära/förstå det här med sprite.
Som underlag så har jag tagit ner en turial ifrån www.advantage.co.nz/ur/directx7.htm där man bl a laddar upp en sprite run.bmp.
Tittar man på den spriten i photoshop t ex så är det en "stor" fil som innehåller en massa bilder (rörelse) på en gubbe. Det finns inga avgränsningar, alla bilder(rörelsena) är olika stora. Den ligger i 3 rader och är olika bilder(rörelse) på varje rad.
Fråga 1, jag kan inte förstå hur man kan utskilja dom enskillda bilderna.(lite kod kommer nedanför)

För att testa, så försökte jag att ladda en annan fil, med ung samma storlek, men denna gången är bilderna(rörelsena) lika stora. Jag får OVERFLOW.

De kodrader som jag tror är aktuella är dessa:
<code>
'i declarations arean
'hold the sprites
Dim spnx%(1, 70), spny%(1, 70), spnw%(1, 70)
Dim spnh%(1, 70), spnox%(1, 70), spnoy%(1, 70)

'i load data()
Dim ddckey As DDCOLORKEY
Dim ff As Integer
ff = FreeFile

'let's set the surface description
ddsd_run.lFlags = DDSD_CAPS
ddsd_run.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN
Set DDS_run = dd.CreateSurfaceFromFile(App.Path & "\run.bmp", ddsd_run)
' Set DDS_run = dd.CreateSurfaceFromFile(App.Path & "\Bild\RobotN.bmp", ddsd_run)
ddckey.low = RGB(255, 255, 255) 'white
ddckey.high = RGB(255, 255, 255)
DDS_run.SetColorKey DDCKEY_SRCBLT, ddckey
Dim a%
'load up the sprite for run
Open App.Path & "\run.spr" For Random As ff Len = 2
' Open App.Path & "\Bild\RobotN.bmp" For Random As ff Len = 2 'Robot.bmp
For a% = 0 To LOF(ff) \ 6
Get #ff, a% * 6 + 1, spnox%(0, a% + 1)
Get #ff, a% * 6 + 2, spnoy%(0, a% + 1)
Get #ff, a% * 6 + 3, spnx%(0, a% + 1)
Get #ff, a% * 6 + 4, spny%(0, a% + 1)
Get #ff, a% * 6 + 5, spnw%(0, a% + 1)
Get #ff, a% * 6 + 6, spnh%(0, a% + 1)
Next
Close #ff


'Now let's set the surface description
ddsd_other.lFlags = DDSD_CAPS
ddsd_other.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN

'now create the other off-screen surface
Set DDS_other = dd.CreateSurfaceFromFile(App.Path & "\other.bmp", ddsd_other)
DDS_other.SetColorKey DDCKEY_SRCBLT, ddckey

'load up the sprite for the other surface
Open App.Path & "\run.spr" For Random As ff Len = 2
For a% = 0 To LOF(ff) \ 6
Get #ff, a% * 6 + 1, spnox%(1, a% + 1)
Get #ff, a% * 6 + 2, spnoy%(1, a% + 1)
Get #ff, a% * 6 + 3, spnx%(1, a% + 1)
Get #ff, a% * 6 + 4, spny%(1, a% + 1)
Get #ff, a% * 6 + 5, spnw%(1, a% + 1)
Get #ff, a% * 6 + 6, spnh%(1, a% + 1)
Next
Close #ff
</code>
Kan någon tyda/förklara det här så är jag tacksam, dvs så att jag kan förstå hur han läser, och hur jag skall göra för att försöka med andra sprites.
Tack


Svara

Sv: Om sprite

Postades av 2003-01-14 22:50:24 - Andreas Hillqvist

Skulle hjälpa om du bifogar länken till turialen. Så man kan ladda ned filerna.

Tycker det är lite fegt att vara anonymis...


Svara

Sv: Om sprite

Postades av 2003-01-14 23:09:26 - Benni Svensson

Jag hadde lagt in länken men den ville inte visa sig.
www.advantage.co.nz/ur/directx7.htm
Vad menar du med anonym? Mitt visitkort finns ju.


Svara

Sv: Om sprite

Postades av 2003-01-15 00:03:58 - Andreas Hillqvist

Sorry. Hade nog inte laddat bilden för visitkortet hoss mig.

Det finns fyra filer. En två bitmapar och två spr filer. Bitmaparna laddas till en surface och sedan anger spr filerna var bilden fins och vilken offset den har.

Detta är för att slippa Ladda filer. Tar mer tid att läsa många små bilder än en stor. Dessutom är det mer overhead med flera bilder. Som du säer är provlemet att identifiera bildernas storlek, position och ev offsett.



Svara

Sv: Om sprite

Postades av 2003-01-15 03:04:11 - Benni Svensson

ok men då är frågan, med vad läser man en spr-fil?


Svara

Sv: Om sprite

Postades av 2003-01-15 11:57:13 - Niklas Jansson

Troligtvis en hexeditor, alternativt med ett eget program.
Räkna ut hur många koordinater det behövs för att bestämma vilka sprites du behöver, dividera antalet byte på filen med det, så får du fram en ungefärlig koordinatstorlek (troligtvis 4 per punkt, 2 för x, 2 för y). Läs sedan filen binary och läs så stora segment (integer=2, long=4) som den frågar efter.

Grundidén i alla fall.

/Niklas Jansson


Svara

Sv: Om sprite

Postades av 2003-01-18 07:12:04 - Christer Svanberg

Ögnade genom sidan lite, bara.

Det är väl här som cell-storleken avgörs, verkar det som:

<code>
'work out the cell
Dim r2 As RECT
r2.Top = spny(0, cell)
r2.Left = spnx(0, cell)
r2.Right = spnx(0, cell) + spnw(0, cell)
r2.Bottom = spny(0, cell) + spnh(0, cell)
</code>

Rent generellt så är väl en Sprite, egentligen bara
en dataType, med egna Properties, i grunden.

/ChristerGbg


Svara

Sv: Om sprite

Postades av 2003-01-18 16:22:02 - Benni Svensson

Jag hittade ett program som löser alla problemen.
Nej det är ingen egen datatyp utan i spr-filen så skrivs info om alla bilderna i spriten.
Det är höjd och bred på varje bild. Höjd och hur lång spriten är. Hur många "columner och rader som spriten består utav.
När sedan spriten är laddad, så kan man få tag på enskillda bilder och göra sekvenser av dem, dvs animeringen.
Tack för eran uppmärksamhet.


Svara

Sv: Om sprite

Postades av 2003-01-19 00:25:22 - Christer Svanberg

Kul att du äntligen "hittade ett program som löser alla problemen",
så att vi "andra" kan fortsätta att irra omkring i "dimman", eller du
kanske kunde dela med dig av "kakan" som du hittat, till oss, oxå? :-/

/ChristerGbg


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

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 570 764
27 959
271 761
664
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