AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Strategiespiel-Ansicht: Objekte auf Spielbrett erstellen?
Thema durchsuchen
Ansicht
Themen-Optionen

Strategiespiel-Ansicht: Objekte auf Spielbrett erstellen?

Ein Thema von Chefx · begonnen am 14. Feb 2010 · letzter Beitrag vom 22. Feb 2010
Antwort Antwort
Chefx

Registriert seit: 13. Jun 2009
Ort: Radebeul
241 Beiträge
 
Turbo Delphi für Win32
 
#1

Strategiespiel-Ansicht: Objekte auf Spielbrett erstellen?

  Alt 14. Feb 2010, 21:23
Hallo DP,

Ich erkläre erst mal das Problem und wollte euch fragen wie ihr das umsetzten würde oder wie man das berechnen kann?
Bei Google hab ich nix gefunden, weil ich nicht weiß wie man das am besten "Umschreiben" soll.

Ich will in mein Strategiespiel Gebäude usw. bauen ,was man halt in ein Strategiespiel machen kann .
Das Problem ist das man mit dem Cursor auf ein 2D Oberfläche sich bewegt und das die Maus ja nicht in das Bild wandert(Cursor hat ja X,Y Koordinierten und nicht X,Y,Z).
Was auch nicht geht ist ja wenn ich die Pixel direkt zur Bewegung nutze weil ich ja nicht unbedingt von oben schaue sondern schräg auf das Spielbrett schau.

Was habt ihr für Ideen wie man das Berechnen könnte?

Ich danke im voraus für eure Antworten


MfG

Chefx
ein Sprichwort für Programmierer:
"Viele wege fürn zur EXE, aber ob sie funktioniert ist die andere Frage."
schau mal bei www.xlite.de.tc vorbei
  Mit Zitat antworten Zitat
Benutzerbild von Lumpiluk
Lumpiluk

Registriert seit: 25. Dez 2008
110 Beiträge
 
#2

Re: Strategiespiel-Ansicht: Objekte auf Spielbrett erstellen

  Alt 15. Feb 2010, 00:12
Also in OpenGL gibt es die Methode, die Objekte, die angeklickbar sein sollen, einfach in einem unsichtbaren Frame in unterschiedlichen Farben zu rendern. So kann man jedem Objekt einen Index zuweisen und den als bestimmten Farbwert benutzen und muss schließlich nur überprüfen, welche Farbe sich unter der Maus befindet.
Vielleicht ließe sich das in deinem Spiel irgendwie umsetzen...
  Mit Zitat antworten Zitat
Panthrax

Registriert seit: 18. Feb 2005
286 Beiträge
 
Delphi 2010 Enterprise
 
#3

Re: Strategiespiel-Ansicht: Objekte auf Spielbrett erstellen

  Alt 15. Feb 2010, 02:18
Da wirst Du dich wohl ein bisschen mit Vektormathematik beschäftigen müssen...
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Strategiespiel-Ansicht: Objekte auf Spielbrett erstellen

  Alt 15. Feb 2010, 04:56
Der übliche Weg bei 3D Krams ist es, einen Strahl an der Mausposition in Kamerarichtung in die (fertig transformierte) Szene zu schicken, und zu prüfen mit welchem Dreieck (und damit mit welchem Objekt) sich der Strahl zuerst schneidet. Die genannte Farbindizierung wäre ein ebenfalls öfter anzutreffender Weg.

Die wesentlichen Fragen sind hier wohl: Auf was für eine Grafik API setzt du auf? In welcher Art und Weise liegt deine Szene vor? Wie sind "Gebäude" definiert (Bitmaps mit Alpha, Meshes, Voxel)? Davon (mindestens) wird wohl abhängen was du a) machen kannst und b) das performanteste ist.

Edit: Sekunde! Das Problem ist scheinbar nicht, wie man Dinge in der Szene auswählt, sondern wie du herausbekommst auf welchem Feld deines Welt-Rasters sich die Maus befindet oder? Was hast du für ein Raster? Gibt da unterschiedliche Strategien für verschiedene Raster, und es wäre auch wichtig ob der Boden komplett eben ist, oder ob du Hügel/Täler dabei hast, die die Regelmäßigkeit in 2D zerstören.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Chefx

Registriert seit: 13. Jun 2009
Ort: Radebeul
241 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Strategiespiel-Ansicht: Objekte auf Spielbrett erstellen

  Alt 15. Feb 2010, 17:16
Zitat von Medium:
Edit: Sekunde! Das Problem ist scheinbar nicht, wie man Dinge in der Szene auswählt, sondern wie du herausbekommst auf welchem Feld deines Welt-Rasters sich die Maus befindet oder? Was hast du für ein Raster? Gibt da unterschiedliche Strategien für verschiedene Raster, und es wäre auch wichtig ob der Boden komplett eben ist, oder ob du Hügel/Täler dabei hast, die die Regelmäßigkeit in 2D zerstören.
Japp , genau das meine ich
Ich nutze OpenGL.
Die Objektselektion hab ich mit den Tutorial gemacht:http://wiki.delphigl.com/index.php/T...bjektselektion
Das ging dank dessen ja ganz einfach

Erstmal würde ich das auf einer ganz glatten Oberfläche machen (siehe Bild1 im Anhang) also ohne Hügel und Bergen.
Wenn es mit der einfachen Fläche geht kann ich das dann auch mit Bergen und Hügeln.

Im Bild zieht man auch das es um den Cursor geht ,also dass das Objekt immer schön lieb den Cursor folgt auf der Spieloberfläche.
und das ist halt mein Problem.
1. Lösungsansatz wäre die Berechnung des Winkeles Zwischen Senkrechte Linie und Cursor-Objekt-Linie (Bild2) also von der senkrechten(Wo die Kamera ist) zur Linie zwischen Kameraursprung durch den Cursor.
Die Höhe der Kamera hätte man ja und dann das ganze mit COS,SIN oder TAN ausrechnen.

Aber wie bekommt man das raus ?
Der Perspecktivenwinkel würde bei mir 45° sein.
Soll ich die Pixel in Grad umrechnen?

MfG
Chefx
Angehängte Grafiken
Dateityp: bmp bild1_893.bmp (1,36 MB, 23x aufgerufen)
Dateityp: bmp bild2_400.bmp (619,7 KB, 18x aufgerufen)
ein Sprichwort für Programmierer:
"Viele wege fürn zur EXE, aber ob sie funktioniert ist die andere Frage."
schau mal bei www.xlite.de.tc vorbei
  Mit Zitat antworten Zitat
Panthrax

Registriert seit: 18. Feb 2005
286 Beiträge
 
Delphi 2010 Enterprise
 
#6

Re: Strategiespiel-Ansicht: Objekte auf Spielbrett erstellen

  Alt 15. Feb 2010, 21:13
Da ist ja schon ein bisschen was zusammengekommen. Nun braucht es aber wirklich die richtigen Mittel: Vektoren, Strahlensatz, Trogonometrie. Vielleicht gibt einem OpenGL auch diese Mittel an die Hand, da kenn' ich mich nicht aus. Ohne dieses Verständnis "rechnet" man sich aber irgendwann tot.

Bewegt sich der Zeiger bspw. auf der Bildschirmebene, lautet der Vektor (Blickpunkt, Zeigerpunkt) und es muss geschaut werden, welche Ebene bzw. Fläche dieser Vektor (als erstes) durchsticht. Gehört diese Fläche dann zu einem anklickbaren Objekt...

Richtungsvektor Selektionsvektor := Ortsvektor Blickpunkt - Ortsvektor Zeigepunkt;
// entspricht z.B. der grauen Linie im Bild 2

Jetzt braucht man (1) entweder einen Ortsvektor eines Punktes der Ebene und den Normalvektor der Ebene oder (2) einen Ortvektor eines Punktes der Ebene und die Spannvektoren. Hinzu kommen die Grenzen der Ebene, um daraus eine Fläche abzuleiten. Hier soll bspw. gelten: Der Ortvektor liegt genau in der Mitte und die Spannvektoren sind senkrecht zueinander und sind genau so lang, dass sie vom Endpunkt des Ortsvektors bis zur Kante der Fläche reichen. (Hier weden also nur Rechtecke definiert.)
// entspricht z.B. einer der hellroten Linien im Bild 2 (also einer Kante bei 2 Dimensionen)

Nun kann man versuchen den Schnittpunkt zu bestimmen [1]:

Ortsvektor Blickpunkt B + R * Richtungsvektor Selektionsvektor S = Ortsvektor Ebene + X * Spannvektor 1 Ebene + Y * Spannvektor 2 Ebene;

(R, X, Y sind Skalare)

Für die Lösung gilt dann:
(allgemein
Im Punkt P := B + R * S durchsticht der Selektionsvektor die Ebene.
Ist R > 0 liegt der Punkt vor dem Betrachter ("auf dem Bildschirm").
(für die o.g. Definitionen gilt weiter
Sind |X| <= 1 und |Y| <= 1 durchsticht der Selektionsvektor die Fläche.

[1] Hinweise: Steht der Selektionsvektor senkrecht zum Normalvektor der Ebene (d.h. der Selektionsvektor verläuft parallel zur Ebene; möglicherweise in ihr), dann hat das Gleichungssystem keine Lösung.

Man sucht die Fläche für die R minimal ist (d.h. keine verdeckte Fläche).

Hat man einmal die Fläche bestimmt, guckt man, zu welcher Struktur (Objekt) diese gehört.

Übrigens heißt es: ... mit dem Tutorial ... , dass es um den Cursor geht ... Perspektive ... um nur einige Grausamkeiten zu nennen...
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
  Mit Zitat antworten Zitat
Chefx

Registriert seit: 13. Jun 2009
Ort: Radebeul
241 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Strategiespiel-Ansicht: Objekte auf Spielbrett erstellen

  Alt 22. Feb 2010, 21:08
erst mal danke an alle für eure die Ideen
hatte noch keine Zeit dazu

Ich werde es mal versuchen zu programmieren
ein Sprichwort für Programmierer:
"Viele wege fürn zur EXE, aber ob sie funktioniert ist die andere Frage."
schau mal bei www.xlite.de.tc vorbei
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:37 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