Problem mit CameraPick im Ego-Shooter

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

TheByte

Betreff: Problem mit CameraPick im Ego-Shooter

BeitragSo, Dez 23, 2007 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo an alle, die das hier lesen

ich bin neu hier im Forum und hab mir gedacht, dass mir jemand bei meinem
problem helfen kann, das wie folgt lautet:

in meinem ersten großen projekt (ein ego-shooter) möchte ich feinde o.ä.
abschiessen und dabei verschiedene scores vergeben. klappt auch ganz gut
wenn ich einen feind anschiesse. aber wenn ich irgendwo anders hinschiesse, passiert genau das selbe (score geht auch hoch).

wo liegt das problem?

ich verwende dafür CameraPick, könnte ich dafür auch LinePick verwenden?
falls ja, wie? Question

danke schon mal im voraus
mfg, TheByte
aktuelles Projekt:
Nichts machen
Fortschritt: 50%
 

Dreamora

BeitragSo, Dez 23, 2007 19:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst, wenn du etwas triffst, halt schauen ob die Entity ein gegner ist.
Wie du das machst ist dir überlassen.

Die simpelste Variante ist Entity Namen zu verwenden und die dann zu überprüfen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

TheByte

BeitragSo, Dez 23, 2007 21:11
Antworten mit Zitat
Benutzer-Profile anzeigen
is jetzt ne ganz ganz blöde frage Rolling Eyes , aber wie gibt man einer entity nen namen?
aktuelles Projekt:
Nichts machen
Fortschritt: 50%

Foppele

BeitragSo, Dez 23, 2007 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
NameEntity?

TheByte

BeitragMo, Dez 24, 2007 20:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab das jetzt mit EntityName und NameEntity probiert. Aber das führt irgendwie nicht zu brauchbaren Ergebnissen Sad
D.h. schieße ich z.B. Feind 2 ab passiert genau dasselbe wie bei Feind 1 obwohl das gar nicht so sein dürfte.
Kann mir jemand einen Beispielcode für mehrere Objekte geben, denn in der Onlinehilfe sind nur Codes für ein Objekt.
Ich würde mir den Code natürlich anschauen und dann auf mein Problem anwenden und nicht 1:1 kopieren Very Happy .
Oder kann ich das mit anderen Befehlen bewerkstelligen? (Beispielcode wär dann ganz nett Wink )
aktuelles Projekt:
Nichts machen
Fortschritt: 50%

Foppele

BeitragMo, Dez 24, 2007 21:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht weisst du das schon aber mehrere gleichartige Objekte kannst du mit Types verwalten.

peacemaker

BeitragMo, Dez 24, 2007 21:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich kann dir hier keinen fertigen Code geben, aber hier mal so nGrundgedanke:

Code: [AUSKLAPPEN]

Type Gegner
 Field Entity;
End type

local TGegner.Gegner

; hier dann Gegner setzen, d.H. deren Entity in TGegner\Entity speichern und sie mit EntityPickmode setzen
; danach noch TGegner\Entity mit NameEntity mit Namen verbinen
; hauptschleife
Repeat
 CameraPick (camera, mousex(),mousey());
 ;... das andere Zeugs hier
 ; hier gegner prüfen:
 For TGegner.Gegner = each Gegner
  If PickedEntity () = TGeger\Entity
  ; Gegner getroffen!
  ZieheDemGegnerDieEntsprechendenLebenspunkteAb();
  Endif
 next



MfG
~Tehadon~
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
 

Dreamora

BeitragDi, Dez 25, 2007 11:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst bei verschiedenartigen Gegnern auch verschiedenartige Namen verwenden.
So als genialer Geistesblitz: Gegner1, Gegner2, ....
Dann kannst du den String sogar zerlegen danach wenn du den namen hast zb mit Index$ = right(name$, len(name$)-6)

dann hättest du die nummer rechts dran.

und jetzt der minimalistenclou schlechthin: du machst nen globales array und da speicherst du in types die gegnereigenschaften wie viele punkte sie brauchen zb (davon ausgehend dass sie nur 1 treffer brauchen alle) und kannst beliebig viele gegner ganz billig verwalten.

wenn die gegner mehr als 1 treffer ertragen können sollen, machs noch billiger.

Mach deinen gegnertyp zb TGegner
Dann speicher den Handle davon einfach in den Entity namen (handle(gegner:TGegner))
und beim picken kannst du einfach wieder den gegner rausholen gegner = object.TGegner(entityname(pickedentity()))

wenn gegner <> null muss es ein gegner und keine wand gewesen sein und du kannst damit rumhantieren

Das listengeloope ist ein tooler ansatz für die ersten 30 tage mit blitz, danach sollte man sich jedoch effizientere arten überlegen wenn es welche gibt
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

TheByte

BeitragDi, Dez 25, 2007 16:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Peacemaker1 hat Folgendes geschrieben:

; hier dann Gegner setzen, d.H. deren Entity in TGegner\Entity speichern und sie mit EntityPickmode setzen


@Peacemaker1
Da ich noch nie mit types gearbeitet hab (ich bin ein Unwissender... Crying or Very sad ) möchte ich gern wissen, wie du das meinst (evtl. kannst du es mir ja erklären Wink ).
aktuelles Projekt:
Nichts machen
Fortschritt: 50%

peacemaker

BeitragDi, Dez 25, 2007 20:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann wirds Zeit dich damit zu beschäftigen Wink
Lies es immerwieder durch. Schau dir die Beispiele an. Man begrifts mit der Zeit.

http://blitzbase.de/tutorials/shadow_1.htm

Sorry, hab nich viel Zeit hier nTut über Types zu machen Wink

MfG
~Tehadon~
www.tehadon.de
http://www.blitzforum.de/worklogs/14/

The_Nici

BeitragDi, Dez 25, 2007 21:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Ab dem Post in dem Thread sind Types ziemlich toll erklährt. Smile

TheByte

BeitragMi, Dez 26, 2007 13:51
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, so langsam kapier ich's Very Happy
danke für eure hilfe Wink und wenn's dann doch noch was geben sollte, ich weiß ja an wen ich mich wenden kann Cool

@The_Nici
Dein Beispiel mit den Karteikarten ist wirklich Exclamation gut
aktuelles Projekt:
Nichts machen
Fortschritt: 50%

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group