Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Lion
Založen: 23. 01. 2008 Příspěvky: 6
|
Zaslal: 7. červen 2009, 09:22:24 Předmět: DirectDraw 2D Scrolling [Skrolovanie 2D pozadia] |
|
|
Zdravim
Pouzivam DirectDraw na vykreslovanie jednoducheho levelu
Vsetko sa deje v 2D priestore.
Mam::
LPDIRECTDRAWSURFACE lpDDSPrimary; // Primary surface
LPDIRECTDRAWSURFACE lpDDSBack; // Back surface
LPDIRECTDRAWCLIPPER lpClipper; // Clipper
Primary sufrace ma 1024x768 pixelov, Back surface a Clipper su tak isto velke.
Problemom je ze mam vytvorene okno s rozmermi 640x480 px
a toto okno NEMOZEM! spravit vacsie (potrebujem 640x480 !!!)
Chcel by som spravit nieco ako toto:
== Ze z vacsieho surfacu vykreslim len cast [640x480px] do okna a
zvysok si pamatam. Pri stlaceni klavesov sa mi tento vyrez posunie a vykreslim inu cast levelu.
Otazka je ako to spravit ???
Nemam ziadne kamery ani nic podobne ako v 3D priestore, takze neviem co s tym... |
|
Návrat nahoru |
|
 |
Mem

Založen: 28. 07. 2007 Příspěvky: 1959 Bydliště: Olomouc
|
Zaslal: 7. červen 2009, 10:29:57 Předmět: |
|
|
Back a primary surface (které flipuješ) si udělej podle rozměrů okna (640x480). Pozadí budeš mít v samostatné (větší) bitmapě a budeš z ní pomocí Blt s parametry zdrojového a cílového obdélníku blitovat jen výřez, který potřebuješ. Pokud navíc aplikuješ na back surface ten clipper, tak ti to sám ořeže a nemusíš se o nic starat. To co ti asi uniká je to, že blitovat můžeš do libovolné bitmapy, tedy i do toho pozadí, a teprve z něj si pak vezmeš výřez a dáš ho do surface pro obrazovku. V závilosti na tom co s tím pozadím děláš možná budeš potřebovat:
A) originální obrázek pozadí
B) ten vždycky celý zkopíruješ a dokreslíš na něj všechny objekty
C) výřez z něho plácneš na back surface a flipneš na obrazovku
Pokud bys potřeboval větší výkon, tak body A a B změníš tak, že budeš aktualizovat vždy jen to co se změnilo (když se např. panáček posune, tak na místě kde byl dáš originál bitmapu a pak ho nakreslíš znovu, místo abys kopíroval celou bitmapu) atd.
Pokud máš zájem, můžeš si tady stáhnout zdrojáky mého starého adventure enginu pro Prdel Světa, je to VC++ s DirectDraw 7, skroluje tam pozadí levelů nebo taky inventář (PRSclasses.cpp, class Inventory) dole
 _________________
 |
|
Návrat nahoru |
|
 |
|
|
Nemůžete odesílat nové téma do tohoto fóra Nemůžete odpovídat na témata v tomto fóru Nemůžete upravovat své příspěvky v tomto fóru Nemůžete mazat své příspěvky v tomto fóru Nemůžete hlasovat v tomto fóru
|
Powered by phpBB © 2001, 2005 phpBB Group
Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna