Flächenmäßiger Pick

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Nerle

Betreff: Flächenmäßiger Pick

BeitragDi, Sep 11, 2007 1:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich suche Rat Smile

Gibt es eine Möglichkeit eine Art LinePick oder PickEntity in beliebiger Fläche Y durchzuführen, anstatt nur Punktmäßig?

Mittels einen Zielkreuzes möchte ich bestimmen, wohin und wie weit die Figur schießt (Top-Down-View); Das Zielkreuz wird dabei, da ja Sicht von oben herab, nur zweidimensional (x/z) über die Szenerie bewegt.
Löst sich ein Schuss, soll das Erste Objekt in der Schussbahn getroffen werden, oder mehrere zumindest der Reihenfolge von der Spielfigur aus nach regstrierbar sein. So weit so gut.

Allerdings soll es egal sein, ob sich gegnerische Objekte nun auf derselben Höhe wie die Spielfigur befinden, oder höher, tiefer etc. D.h. der benötigte "LinePick" müsste quasi so aussehen (hier rot; 1 und 2 sind ZielObjekte, die quasi von demselben einzigen Schuss treffbar wären):

user posted image

Wie läßt sich das denn realisieren?

EntityPick scheidet ja, glaube ich, schonmal aus, da es als eine "Punkt-Linie" arbeitet.
"LinePick" hingegen läßt zwar den Radius der Picklinie einstellen, dies aber immer nur "gleichmäßig" zu allen Seiten. D.h. die LinePick-Linie würde sich auch nach X bzw. links und rechts entsprechend ausweiten, um in die Höhe Y wachsen zu können. Das soll sie aber nicht, x-mäßig soll sie schon punktgenau zielen.
Y-mäßig jedoch, in die Höhe/Tiefe, soll sie alles mitnehmen, was zwischen Levelboden und Top-Down-Camera rumschwirrt.
Wie kann man so etwas umsetzen Question
 

Dreamora

BeitragDi, Sep 11, 2007 1:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Fläche geht garnicht, könntest nur die beiden seiten geraden nehmen und horizontale linien zwischen ihnen nehmen zum picken.

Allerdings würde ich mir da eher dann überlegen wofür du es brauchst und schauen ob du es nicht sinnvoller lösen kannst (entities in types speichern und alle X, Y, Z koordinaten ansehen oder das ganze in räumliche sektoren unterteilen *OctTree zb* oder etwas derartiges)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

0penguin0

BeitragDi, Sep 11, 2007 9:30
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich kenn mich in blitz3d nicht so gut aus, aber du könntest doch das zielobjekt 1 nach unten verlängern, sodass es auf der gleichen ebene liegt wie die spielfigur, oder?

ich meine das etwa so:
user posted image
i never finish anyth

Markus2

BeitragDi, Sep 11, 2007 12:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Eigentlich reicht es die Entfernung vom Zielkreuz zu den zielen in
der Ebene zu berechnen .

dx=Entitxx(e)-KreuzX
dz=Entitxz(e)-Kreuzz
ent=sqr(dx*dx + dz*dz)

if ent<irgendwas then ziel=e
Linepick dann vom Spieler zum Ziel
 

Nerle

BeitragDi, Sep 11, 2007 18:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, da ich ja noch Anfänger bin, würde ich mich jetzt mal für eine ganz gegenständliche Lösung entscheiden:

Aus der Top-Down-View kann man das Zielkreuz (hier als roter Punkt dargestellt) x/z-mäßig über den Screen bewegen.
user posted image



Löst man dann einen Schuss, erschaffe ich einfach mal einen Cube, pointe ihn in Richtung Zielkreuz (Breite und Länge beliebig, Y-Höhe so hoch, dass er jedes Objekt mitnehmen kann) und möchte einfach diesen als Projektil benutzen.
user posted image

Jetzt soll sich also dieser rote Cube in Richtung Zielkreuz bewegen. Und jetzt meine totale Anfängerfrage: Wie kriege ich das hin?
Ich kenne die x/y/z-Koordinaten des Zielkreues. Aber wie setze ich diese ein, damit der Cube nun die direkte Linie zum Zeilkreuz fliegt - egal wo bzw. in welchem Winkel sich das Zielkreuz von der Spielfigur aus gesehen befindet?

MoveEntity läßt den Cube ja nicht die ganze Strecke bis zum Ziel abfahren, sondern "versetzt" ihn dann schlagartig an diese Koordinaten. Und das will ich ja nicht.
Entweder stehe ich gerade voll auf dem Schlauch, und der passende Befehl fällt mir gerade nicht ein... ?

Markus2

BeitragDi, Sep 11, 2007 18:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Wofür hat dein Schöpfer dir Beine gemacht ?
Teil doch einfach die Entfernung durch die Schrittweite
und wenn du diese Anzahl erreicht hast biste am Ziel .

>MoveEntity läßt den Cube ja nicht die ganze Strecke bis zum Ziel abfahren,
>sondern "versetzt" ihn dann schlagartig an diese Koordinaten.
 

Nerle

BeitragDi, Sep 11, 2007 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry, aber das sagt mir jetzt leider nicht genug. Kannst Du es mir bitte etwas konkreter erklären?
Wink

Markus2

BeitragMi, Sep 12, 2007 18:13
Antworten mit Zitat
Benutzer-Profile anzeigen
MoveEntity ist doch das was du brauchst .
Wenn du den Cube schon ausgerichtet hast kannst du
ihn entlang der Z Achse verschieben .
MoveEntity e,0,0,5

Schlagartig was du meinst wäre PositionEntity .

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group