Großes Bild anzeigen Problem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

CO2

ehemals "SirMO"

Betreff: Großes Bild anzeigen Problem

BeitragDi, Jul 06, 2010 15:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Ich habe ein Bild gemalt (5000 * 5000 Pixel) und ich möchte, dass nicht das ganze bild auf einmal gezeigt wird, sondern nur ein ausschnitt, aber dass man trotzdem scrollen kann (mit w, s, a, d), gibt es da einen befehl?

thx schonmal im vorraus.
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Progger93

BeitragDi, Jul 06, 2010 15:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst das Bild an der Position x,y einzeichnen und x bzw. y bei dem Druck auf w/a/s/d verändern.
MfG Pascal
Win 7|T7250@2.0Ghz|3GB RAM|M8600GT

Xeres

Moderator

BeitragDi, Jul 06, 2010 15:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Du verschiebst das Bild im Hintergrund (änderst die Koordinaten auf denen das Bild gezeichnet wird).
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

darth

BeitragDi, Jul 06, 2010 15:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

schau dir mal den Befehl DrawBlockRect an. Damit kannst du einen Bildausschnitt zeichnen. Wenn du jetzt noch eine Positionsvariable mitführst, kannst du die verändern und von da aus ein konstantes Rechteck zeichnen.

BlitzBasic: [AUSKLAPPEN]
Graphics 800, 600, 0, 2
SetBuffer BackBuffer()

Local img=LoadImage("asdf.png")

Local posX=0
Local posY=0

While Not KeyHit(1)
posX=posX+KeyHit(205)-KeyHit(203)
posY=posY-KeyHit(200)+KeyHit(208)

DrawBlockRect img, 0, 0, posX, posY, GraphicsWidth(), GraphicsHeight()

Flip
Wend
End


So in etwa. Ich bin mir bei den Vorzeichen der Veränderungen von posX und posY nicht ganz sicher, müsste man kurz ausprobieren. Ausserdem solltest du wohl noch Schranken einfügen, ich weiss nicht genau wie der Befehl funktioniert, wenn man versucht ein rect zu zeichnen, das nicht komplett im Bild ist.

Naja, etwas Arbeit und das Ganze sollte funktionieren.

MfG,
Darth
Diese Signatur ist leer.
 

CO2

ehemals "SirMO"

BeitragDi, Jul 06, 2010 15:46
Antworten mit Zitat
Benutzer-Profile anzeigen
ok vielen dank genau nach sowas hab ich gesucht

Edit:

kann ich dann auch etwas auserhalb des angezeigten ausschnittes positionieren also z.b.: ein kleineres bild?
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

ozzi789

BeitragDi, Jul 06, 2010 18:44
Antworten mit Zitat
Benutzer-Profile anzeigen
ja kannst du.
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

CO2

ehemals "SirMO"

BeitragDi, Jul 06, 2010 20:35
Antworten mit Zitat
Benutzer-Profile anzeigen
und wie?
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

mpmxyz

BeitragDi, Jul 06, 2010 20:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Indem du es dort zeichnest? (DrawImage? DrawImageRect? DrawBlock? DrawBlockRect?)
(Nicht böse nehmen, aber ich kann das Problem nicht ganz nachvollziehen.)
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer
 

CO2

ehemals "SirMO"

BeitragDi, Jul 06, 2010 20:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich möchte ne Minimap machen, die dann in einem kleinen ausschnitt am bildschirmrand angezeigt wird. Aber es gibt symbole, die sich nicht von anfang an auf der karte befinden (ziele, etc.), welche sich auch bewegen können. Und deshalb brauche ich das mit den zwei oder mehr aufeinander gemalten bildern. Die sollen aber direkt nachdem das ganze bild geladen ist auf dem bild gezeichnet werden.
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

mpmxyz

BeitragDi, Jul 06, 2010 20:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Da kannst du einfach nach dem Zeichnen der Karte die Symbole darüberzeichnen.
Mit Viewport kannst du dabei festlegen, dass nur in dem Bereich der Karte gezeichnet wird und kein Symbol über den Rand hinaus geht. (Zurücksetzen des Viewports nach Vollendung der Minikarte nicht vergessen!)
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

Xeres

Moderator

BeitragDi, Jul 06, 2010 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Koordinaten der Ziele für die Minimap umrechnen und da einzeichnen.
Wenn sich die Objekte nach dem Start nicht mehr bewegen könntest du sie auch 1x in das Bild einzeichnen SetBuffer, ImageBuffer.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

CO2

ehemals "SirMO"

BeitragDi, Jul 06, 2010 21:02
Antworten mit Zitat
Benutzer-Profile anzeigen
ok thx
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group