Karte in 3D-Umgebung
Übersicht

![]() |
NicdelBetreff: Karte in 3D-Umgebung |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo alle zusammen,
ich habe folgendes Problem: Ich habe eine 3D-Umgebung programmiert, in der man herumfliegen kann. Nun möchte ich aber, dass man auf einer Karte am Bildschirmrand genau sieht, wo man ist (Karte = Heightmap). Wie geht das? MfG Nicdel |
||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
heightmap als bild laden (LoadImage) und dann nach dem RenderWorld und vorm Flip mit DrawImage zeichnen lassen... | ||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke...
Aber wie soll ich die Position auf dem Bild anzeigen? Also bis jetzt sieht's so aus: ![]() |
||
- Zuletzt bearbeitet von Nicdel am So, Jun 15, 2008 16:54, insgesamt einmal bearbeitet
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
EntityX(), EntityZ(), Plot/WritePixel | ||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Na ja, der Punkt ist manchmal etwas außerhalb der Karte... | ||
![]() |
CypressArt |
![]() Antworten mit Zitat ![]() |
---|---|---|
so wird ein kleiner roter punkt angezeigt:
Code: [AUSKLAPPEN] ; KLeine Karte anzeigen
Color 0,0,0 Rect 0,15,256,256,1 DrawImage map_kroki,0,15 Color 255,255,255 ;Text 0,280,"X:"+Int(x#)+" Y:"+Int(terra_y#)+" Z:"+Int(z#) Color 255,0,0 Oval(x#/20-1,15+Abs(z#/20)-1,3,3,1) wobei x# und z# die koordinaten der aktuellen cameraposition oder Pivot sind |
||
(no comment) -> Google Search Bot!! |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Funktioniert leider auch nicht ganz.
Ich hab mal ein paar Infos: - Kartengröße: 512x512 - wird aber skaliert: Code: [AUSKLAPPEN] terrain=LoadTerrain("hm\hm1.bmp") ScaleEntity terrain,50,290,50 - Die Karte im Spiel ist nur 256x256 groß: Code: [AUSKLAPPEN] hmi = LoadImage("hm\hm1.bmp") ScaleImage hmi, 0.5, 0.5 |
||
Matthias |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hay.
Also Mußt du die EntitX bzw Z Koordinaten durch die scalierung rechnen. Dann wäre das als wenn du ein 512x512 Map hättest. Es ist aber nicht 512x512 sondernt 256x256 also must du das dann nochmal durch 2Teilen Also X#=EntityX(Camera,1)/100 Y#=EntityZ(Camera,1)/100 |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Problem gelöst mit
Code: [AUSKLAPPEN] Oval((EntityX(cam)/50-1) * 0.5,15+(Abs(EntityZ(cam)/50)-1) * 0.5,3,3,1)
Danke für alle Antworten |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn wir schon dabei sind würde ich gerne noch wissen, wie man Kolissionen zwischen Kamera und Terrain feststellt.
MfG Nicdel |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Am Besten dafür ist Code: [AUSKLAPPEN] TerrainY
Du schaust einfach, ob EntityY(Kamera) kleiner als TerrainY(..) ist, und wenn, dann wird die Kamera wieder mit PositionEntity Kamera,EntityX(Kamera),TerrainY(.....),EntityZ(Kamera) auf Höhe der Terrains platziert. Dazu ist aber noch eine Gravitation nötig, die die Kamera dauerhaft nach unten zieht. |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielen Dank. Aber wieso Gravitation? | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group