JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=85182c6306238777bb2f60ae45747b75Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Bessere Darstellung
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Beni5
Super JLI'ler


Alter: 36
Anmeldedatum: 12.11.2003
Beiträge: 310
Wohnort: Switzerland
Medaillen: Keine

BeitragVerfasst am: 11.02.2004, 17:47    Titel: Bessere Darstellung Antworten mit Zitat

Zuerst mal tut es mir leid das ich so oft meine Probleme poste, aber ich kann euch beruhigen das warscheinlich ist das letzte grosse Problem.
Die Blauem zahlen sind die Werte , also welches bild dort angezeigt wird, 1 ist zum Beispiel Gras und 2 Wasser.

Nun zum problem:

Ich zeichne meine Tiles (immer nur die , die man sieht) auf ein Surface das 40 Pixel höher und breiter als der Screen ist. Nun zeichne ich von diesem Surface den Ausschnitt den man sieht in den Backbuffer, wie man auf Bild 1 sehen kann.


Das rote ist das was in den Backbuffer kommt.

Nun wenn man nach unten scrollt geht auch der Aussschnitt schön weiter, wie man auf dem 2. Bild sehen kann.




Nach dem dritten Bild also wenn man ganz unten angekommen ist fängt das Problem an, nämlich muss ich den Ausschnitt in einem Ruck wieder nach links oben befördern und allen Tiles die man sieht nen anderen Wert geben, damit sich die position ausgleicht
das sieht man auf Bild 4.


So und das problem ist das es einen ziemlichen Ruck gibt und das sieht nicht sehr angenehm aus wenn man ne weile nach rechts oder so geht. Auf schnelleren Pc's merkt man's zwar nicht aber wenn eine andere Anwendung offen ist dann stockts, zudem geht die berechnung ziemlich auf die cpu leistung!
Ich wäre sehr dankbar falls jemand Ahnung hat wie man das darstellen könnte und mir helfen könnte!

Danke im voraus!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
xardias
JLI Master


Alter: 38
Anmeldedatum: 28.12.2003
Beiträge: 804
Wohnort: Palo Alto, CA
Medaillen: Keine

BeitragVerfasst am: 11.02.2004, 19:15    Titel: Antworten mit Zitat

ich würde das ganze ganz anders angehen.
ich würde in einem array die gesamte karte gespeichert haben.
dann würde ich beim zeichnen zuerst ausrechnen, in welcher zeile/reihe er anfangen soll und dann einfach mit genau diesem array index anfangen zu zeichnen.
und falls man über die grenze hinnaus kommt einfach nen standard tile zeichnen oder so
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beni5
Super JLI'ler


Alter: 36
Anmeldedatum: 12.11.2003
Beiträge: 310
Wohnort: Switzerland
Medaillen: Keine

BeitragVerfasst am: 11.02.2004, 19:41    Titel: Antworten mit Zitat

Ja das mach ich ja auch so. Ich hab jetzt alles mal umgestellt und direkt in den Backbuffer gezeichnet. Die Tiles am Rand blitte ich genau passend hinein. Aber ich muss immer noch so einen Ruck machen. Anders ist es irgendwie garnicht möglich???
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 11.02.2004, 19:54    Titel: Antworten mit Zitat

Was genau meinst du mit einem Ruck ? einfach mal 40 Pixel verschieben ? Wenn das so ist brauchst du noch einen kleinen Clippingalgo dann geht das auch ohne Ruck.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beni5
Super JLI'ler


Alter: 36
Anmeldedatum: 12.11.2003
Beiträge: 310
Wohnort: Switzerland
Medaillen: Keine

BeitragVerfasst am: 11.02.2004, 20:45    Titel: Antworten mit Zitat

ja eigentlich nicht 40 Pixel verschieben sondern die Werte aller Tiles verschieben. Clippingalgo? Und wie mach ich sowas?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 11.02.2004, 20:59    Titel: Antworten mit Zitat

Die Werte aller Tiles verschieben? Meinst du etwa so?

Code:

map[0] = map[1]
map[1] = map[2]
.
.
.

_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 11.02.2004, 21:18    Titel: Antworten mit Zitat

Hier ne alte Clippingroutine von mir:
Code:

bool Clippen(RECT &rc, int &x, int &y, int scrW, int scrH) {
    bool value=true;
    int bx=rc.right-rc.left;
    int by=rc.bottom-rc.top;
    if ((x+bx>0) && (y+by>0) && (x<scrW) && (y<scrH)) {
        if(x<0) {
            rc.left+=abs(x);
            x=0;
        }
        if(y<0) {
            rc.top+=abs(y);
            y=0;
        }
        if(x+bx>=scrW)
            rc.right-=bx+(x-scrW);
        if(y+by>=scrH)
            rc.bottom-=by+(y-scrH);
    } else value=false;
    return value;
}

_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beni5
Super JLI'ler


Alter: 36
Anmeldedatum: 12.11.2003
Beiträge: 310
Wohnort: Switzerland
Medaillen: Keine

BeitragVerfasst am: 11.02.2004, 21:28    Titel: Antworten mit Zitat

achso , so ne clippingroutine hab ich schon, die wird einfach immer im scenenaufbau durchgeführt. Aber wegen dem muss man ja trotzdem alles verschieben.

Das mit dem TileWert verschieben sieht etwa so aus: MAP[x+stepx][y+stepy] , step wird immer erhöht wenn man zum beispiel 40 pixel nach rechts läuft.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 11.02.2004, 21:45    Titel: Antworten mit Zitat

Nein, du musst nix verschieben - du änderst einfach den Arrayindex, ab dem die Renderfunktion anfängt, die Tiles zu zeichnen Wink
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beni5
Super JLI'ler


Alter: 36
Anmeldedatum: 12.11.2003
Beiträge: 310
Wohnort: Switzerland
Medaillen: Keine

BeitragVerfasst am: 11.02.2004, 22:00    Titel: Antworten mit Zitat

Meinst du die Arraywerte einfach nur ändern? Dann wirkt das wie 40 pixel schritte. Da die Quadrate immer am gleichen Ort auf dem Bildschirm bleiben...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 12.02.2004, 21:45    Titel: Antworten mit Zitat

Nein, nicht die Arraywerte ändern. Nur den Indexwert ändern, an dem du mit zeichnen beginnst Wink
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beni5
Super JLI'ler


Alter: 36
Anmeldedatum: 12.11.2003
Beiträge: 310
Wohnort: Switzerland
Medaillen: Keine

BeitragVerfasst am: 12.02.2004, 23:12    Titel: Antworten mit Zitat

Indexwert? Sorry ich weiss nicht was das ist/was du damit meinst Sad
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 12.02.2004, 23:54    Titel: Antworten mit Zitat

lol, das würden dann ja auch 40 Pixel Schritte bedeuten.

@Beni5: Er meint damit das Element im Array welches zuerst gezeichnet wird

Array[i] <- das i ist der Index
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beni5
Super JLI'ler


Alter: 36
Anmeldedatum: 12.11.2003
Beiträge: 310
Wohnort: Switzerland
Medaillen: Keine

BeitragVerfasst am: 13.02.2004, 00:17    Titel: Antworten mit Zitat

öhm und was bringt das wenn ich den ändere? lol? Dann ändert sich einfach die position aber das gibt keinen 1pixel verschiebungs effekt...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 13.02.2004, 01:41    Titel: Antworten mit Zitat

Du könntest den Inedx oder die Array ja änern wenn eine extra definierte Scrollvariable den Wert 40 überschreitet oder -40 unterschreitet (ScrollX und ScrollY) und beim Zeichnen addierst du diesen Wert einfach zu deiner transformation hinzu. So hättest du auch einen Scrolleffekt und sogar auf per Pixel Basis.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum