Nur das zeichnen, was auf dem Bildschirm ist?
Übersicht

CO2ehemals "SirMO"Betreff: Nur das zeichnen, was auf dem Bildschirm ist? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
Der Titel beschreibt das Problem, was ich momentan habe schon sehr gut: Wie finde ich heraus, was ich malen muss, wenn ich nur das malen will, was wirklich angezeigt wird? Also bei Tiles kein Problem: So viele zeichnen, bis sie "aus dem Bildschirm" gehen und fertig, aber wie ist das bei Objekten, beispielsweise Waffen oder Autos? Wie finde ich da (möglichst schnell) heraus, welche gezeichnet werden müssen und welche nicht? mfG, CO2 |
||
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 |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Koordinaten mit Höhe/Breite verrechnen und mit Überschneidung des Bildschirms vergleichen. | ||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
ZEVS |
![]() Antworten mit Zitat ![]() |
---|---|---|
In einem zweidimensionalem Array of TLists einfach von bestimmten Kartenbereichen jedes Objekt speichern, das darin vorkommt. Damit hast du eine Vorauswahl, wenn auch recht kompliziert.
ZEVS |
||
![]() |
klin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn dein Fenster z.B. 800x600 groß ist, dann überprüfst du einfach die X und Y Koordinaten deines Objekts. Geht es über 800 / 600, dann einfach nicht zeichnen (bei Rotationen musst du noch ein wenig berechnen).
Geht es unter 0, dann musst du noch die Breite/Höhe zu den Koordinaten addieren. Beispiel: Code: [AUSKLAPPEN] X: -10 Y: -15
Bild: Code: [AUSKLAPPEN] W: 5 H: 20
Code: [AUSKLAPPEN] X+5 = -5
Y+20 = +5 Da Y über 0 ist, kann das Objekt gezeichnet werden (auch hier muss man vill. bei Rotationen etwas rechnen). Außerdem muss noch beachtet werden, ob das Bild "midhandle" geladen wurde. Somit wird W und H /2 geteilt. Ist einfach etwas rechnen. Klin |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group