AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi 2D-Bitmap scrollen ???!!!
Thema durchsuchen
Ansicht
Themen-Optionen

2D-Bitmap scrollen ???!!!

Ein Thema von Luna · begonnen am 3. Jan 2005 · letzter Beitrag vom 6. Jan 2005
Antwort Antwort
Seite 1 von 2  1 2      
Luna

Registriert seit: 3. Jan 2005
2 Beiträge
 
#1

2D-Bitmap scrollen ???!!!

  Alt 3. Jan 2005, 03:44
Hallo Leute,
ich hab ein Problem und drehe langsam am Rad

Ich möchte ein Spiel programmieren, so ähnlich wie die PanzerGeneral-Serie oder Strategic Command. Dazu möchte ich eine Bitmap, die deutlich größer als ein Bildschirmauflösung von 1280x1024 ist, einfach durch Bewegen des Mauszeigers an den Rand des Bildschirms in die entsprechende Richtung scrollen. Und ich möchte halt nicht die TScrollbox benutzen, da dies viel umständlicher ist... mit den ScrollBars. Kann mir jemand dazu einen Tipp geben ?

Vielleicht gibt es ja eine ganz einfache Lösung, ich kenne mich in Delphi noch nicht so aus, habe aber jetzt eine 5.0 Version geschenkt bekommen. Vielen Dank im voraus, und ach ja frohes Neues

Luna
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#2

Re: 2D-Bitmap scrollen ???!!!

  Alt 3. Jan 2005, 03:47
hmm
Hast aber hohe Ansprüche

Jedenfalls ist der Weg den du dir da vorgenommen hast sehr steinig.
Und der erste wäre:

Die meisten bzw alle Spiele, die so aufgebaut sind, scrollen nicht das Riesenbitmap, sondern bauen nur das auf, was im sichtbaren bereich liegt und den musst du halt dann verschieben

//edit
Herzlich willkommen bei DP
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#3

Re: 2D-Bitmap scrollen ???!!!

  Alt 3. Jan 2005, 04:37
So ein riesiges Bitmap, das sich als Spielfeld eignen würde, braucht zudem auch massig Speicherplatz und kann wahrscheinlich gar nicht flüssig bewegt werden.
Besser ist es, das Spielfeld aus kleinen Flächen aufzubauen (z.B. Quadrate oder, so wie in Panzer General: Sechsecke), dass du dann z.B. eine Fläche für "Wiese" hast, und eine andere für "Wald", "Gebirge", etc. Dann zeigst du nur diejenigen Flächen an, die im Bildschirmausschnitt überhaupt sichtbar sind.
Es gibt auf jeden Fall keine "ganz einfache Lösung", und wenn du wirklich ganz unerfahren im Programmieren bist, such dir doch für den Anfang etwas leichteres aus.
  Mit Zitat antworten Zitat
Benutzerbild von MisterNiceGuy
MisterNiceGuy

Registriert seit: 1. Jul 2003
Ort: Mannheim
919 Beiträge
 
Delphi 7 Personal
 
#4

Re: 2D-Bitmap scrollen ???!!!

  Alt 3. Jan 2005, 09:00
...Aber falls du dein Spiel wirklich so aufbauen willst, leg deine Imagekomponente auf ein panel und verschiebe das Image, indem du dessen X und Y Position auf dem Panel festlegst.
Beim OnMouseMove des Panels legst du bestimmte Zonen fest und wenn sich die Maus auf einer der Zonen befindet, lässt du das Image auf dem Panel wandern
Jonas
Wenn mich jemand sucht, ich bin im Kühlschrank!

Informationen über das Duale Studium
www.jofre.de
  Mit Zitat antworten Zitat
Benutzerbild von Ben1
Ben1

Registriert seit: 11. Okt 2004
Ort: Rostock
36 Beiträge
 
Delphi 6 Personal
 
#5

Re: 2D-Bitmap scrollen ???!!!

  Alt 3. Jan 2005, 20:50
Zitat:
So ein riesiges Bitmap, das sich als Spielfeld eignen würde, braucht zudem auch massig Speicherplatz und kann wahrscheinlich gar nicht flüssig bewegt werden.
Eine These die bereits vor vielen Jahren durch Panzergeneral 3D wiederlegt wurde. Das Spiel verwendete eine riesige Bitmap mit einem handgemalten Hintergrund als Spielfeld.
Ist es den so schwierig einen bestimmten Bereich einer Bitmap über DirectX auf das Surface zu klatschen ?
Ben
---------------------------------------
Spielanleitung !? Wieso ? Wozu ?
Im Quelltext steht doch alles drin !
Zitat: Ich selbst (1998)
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#6

Re: 2D-Bitmap scrollen ???!!!

  Alt 3. Jan 2005, 21:42
Zitat von Ben1:
Eine These die bereits vor vielen Jahren durch Panzergeneral 3D wiederlegt wurde. Das Spiel verwendete eine riesige Bitmap mit einem handgemalten Hintergrund als Spielfeld.
Ist es den so schwierig einen bestimmten Bereich einer Bitmap über DirectX auf das Surface zu klatschen ?
Es ist ja etwas komplett anderes, ob ich eine große Textur von DirectX zeichnen lasse, oder in einem Steuerelement (z.B. TImage) der grafischen Windows-Oberfläche. Ersteres geht, zweiteres geht nicht so gut (weil es ruckelt).
Und man kann nicht DirectX einfach mal kurz dazu benutzen, das zu zeichnen. Um ein Bild mit DirectX zu zeichen, muss man erst die Verwaltungsschnittstelle IDirect3D9 erzeugen, dann muss man die Geräteschnittstelle IDirect3DDevice9 erzeugen, dann muss man ein RHW-Vertexformat und ein flexibles Vertexformat definieren, ein Rechteck aus zwei Dreiecken erzeugen, das Bild mit der Texturschnittstelle IDirect3DTexture9 laden, und dann durch Aufrufe von IDirect3DDevice9.BeginScene/SetRenderState/SetTexture/ SetMaterial/SetTransform/DrawPrimitiveUP/EndScene/Present das Bild schließlich rendern. Für absolute Anfänger ist das auch wegen den verwendeten Technologien (COM) sehr undurchsichtig.
  Mit Zitat antworten Zitat
Luna

Registriert seit: 3. Jan 2005
2 Beiträge
 
#7

Re: 2D-Bitmap scrollen ???!!!

  Alt 4. Jan 2005, 06:02
Vielen Dank Leute für die Antworten, wenn auch keine richtig hilfreich war
Aber ich denke ich habe das Problem jetzt im Griff mit image und paintbox

bis denne, Luna
  Mit Zitat antworten Zitat
Benutzerbild von Ben1
Ben1

Registriert seit: 11. Okt 2004
Ort: Rostock
36 Beiträge
 
Delphi 6 Personal
 
#8

Re: 2D-Bitmap scrollen ???!!!

  Alt 4. Jan 2005, 07:32
Zitat:
dann muss man ein RHW-Vertexformat und ein flexibles Vertexformat definieren, ein Rechteck aus zwei Dreiecken erzeugen, das Bild mit der Texturschnittstelle IDirect3DTexture9 laden, und dann durch Aufrufe von IDirect3DDevice9.BeginScene/SetRenderState/SetTexture/ SetMaterial/SetTransform/DrawPrimitiveUP/EndScene/Present das Bild schließlich rendern.
Nö, muß man nicht. Man kann genauso gut die Schnittstellen für DirectDraw (also den alten 2D Teil) benutzen, indem man statt DX 9 z.B. DX 7 nutzt. Aufgrund der strickten Abwärtskompatibilität von DX ist das möglich.
Ben
---------------------------------------
Spielanleitung !? Wieso ? Wozu ?
Im Quelltext steht doch alles drin !
Zitat: Ich selbst (1998)
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#9

Re: 2D-Bitmap scrollen ???!!!

  Alt 4. Jan 2005, 13:01
Zitat von Ben1:
Nö, muß man nicht. Man kann genauso gut die Schnittstellen für DirectDraw (also den alten 2D Teil) benutzen, indem man statt DX 9 z.B. DX 7 nutzt. Aufgrund der strickten Abwärtskompatibilität von DX ist das möglich.
Dabei verzichtet man auf alles gute, was DirectX ausmacht (Hardwarebeschleunigung).
  Mit Zitat antworten Zitat
Benutzerbild von Ben1
Ben1

Registriert seit: 11. Okt 2004
Ort: Rostock
36 Beiträge
 
Delphi 6 Personal
 
#10

Re: 2D-Bitmap scrollen ???!!!

  Alt 4. Jan 2005, 13:11
?
Wenn auf den Rechner DX 9 installiert ist, man aber z.B. DX 7 Funktionen benutzt, dann werden die trotzdem von DX 9 ausgeführt !
Außerdem, wat willste den bitteschön beim simplen zeichen einer Bitmap in 2D groß beschleunigen ?
Die Hardwarefunktionen der Grafikkarte sind doch auf 3D ausgelegt, die nützen da sowieso nichts.
Ben
---------------------------------------
Spielanleitung !? Wieso ? Wozu ?
Im Quelltext steht doch alles drin !
Zitat: Ich selbst (1998)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz