hilfe zu blitz3d entity eigenschaften

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

BurningSoul

Betreff: hilfe zu blitz3d entity eigenschaften

BeitragMi, Dez 31, 2003 7:17
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo leute - ich hab da mal na allgemeine frage dazu,
wie ich es in blitz3d schaffen kann , objekten werte zuzuweisen .
(ich spreche von entities)

mir ist ziemilch schnell aufgefallnen, das man objekten keine benutzerdefinierteb werte zuweisen kann ,
also nach dem motto

player.health = 25 ... usw , wenn player der entity ist

danach hab ich dann festgestellt ,
das man das anstellen kann , indem man typen definiert .

so habe ich mir dann einen typ definiert ,
der die vesrchieden werte über ein objekt ,
zb ein spieler ,oder ein monster beinhaltet,
so zb die bewegungsgeschwindigkeit , diel lebenspunkte, usw.
in meinem fall heisst dieser gameobj

zusätzlich bekommt dieser type dann noch einen verweis auf das objekt , auf das es sich bezieht ,
zb:

Type GameOb ;Game Object
Field entity,health,enemy.gameob
End Type

entity ist dann die figur selber,
health die lebenspunkte ,
enemy.gameobj ist für monster der momentane gegner , den es zu
killen verucht

jetzt habe ich allerdings das problem, das ich ,
wenn ich zb in einer Kollisoinsabfrage , oder bei einem radius pick
ein anderes objekt erfasse , nur den entity bekomme ,
nicht aber das gameobjekt (gameobj) , das mit diesem Verbunden ist.

Um aber zb die Lebenspunkte bei kollisoin mit einem projektil zu verringern, müsste ich in der kollisionsabfrage funktion für das
projektil nicht nur den entity (also das model des schusses)
bekommen, sondern über das entity irgendwie auch wieder auf das
ihm zugeordnete gameobj (gameobjekt aus dem type)
schliessen können .
zb, um herauszufinden, wieviele lebenspunkte man bei einem treffer mit diesem projektil verliert - denn ich wollte nicht einfach nur einen
pauschalwert für alle schüsse setzen ,so nach dem motto
für jeden schuss minus 5 lebenspunkte ,
sondern in dem projektil selber informationen über die schadensmenge,
denjenigen ,der den schuss abgefeuert hat ,usw speichern

Ich weiss, ich drücke mich mangels besseren wissens etwas unverständlich aus ,
ich habe das bisher so gemacht ,das für jedes neu kreierte model
gelichzeitig auch so ein gameobj generiert wird ,
das dann als entity dieses objekt beinhaltet.
Nur klappt das halt nur einseitig, ich kann zwar über dieses gameobj
das entity beinflussen, komme aber nicht mehr vom entity auf das
gameobj , womit ich ,wenn ich nur das entity kenne,
seine werte nicht verändern kann (also zb die lebenspunkte !

Gibt es da eine lösung ,
oder was kann ich machen , um da dran zu kommen ??

Danke im Vorraus Leute, ich hoffe ,mir kann jemand helfen,
ich hab nämlich schon gut 12 arbeitsstunden in diesem Spiel,
und es wäre schade ,wenn die vesschwendet wären ,und ich
nur ein simples 08/15 spiel zustande bringe damit !

Also hoffe ich mal auf baldige hilfe ,
(nach möglichkeit einfach formulieren ,denn ich bin relativ neu mit blitz3d)

Arcanes

BeitragMi, Dez 31, 2003 9:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Also da würden mir spontan zwei Möglichkeiten zu einfallen (wobei ich grad gar nicht weis, wie ich das immer regel - obwohl ich sowas eigentlich sehr oft code *argh* Rolling Eyes - naja, ist ja auch noch sehr früh am Morgen!! *gg*)

Methode 1
In einer Funktion werden sämtliche gameObj nach einem passendem Entity durchsucht:
Code: [AUSKLAPPEN]
Function getObject.gameObj(entity)
for n.gameObj = each gameObj
if n\entity = entity then return n
next
return null
end function


Methode 2
Beim erstellen eines gameObj das objectHandle als entityName übergeben. Anschliessend kann man dann über den entityName wieder das Objekt ansprechen. Smile
Code: [AUSKLAPPEN]
nameEntity gameObj\entity, handle(gameObj\entity)
n.gameObj = object.gameObj(entityName(entity))



PS: Hab's aber beides grad nur aussem Kopf aufgeschrieben und nicht überprüft!! Rolling Eyes
tHey pUt mE iN a rOuNd rOom tO diE
User posted image
http://www.myownmalice.de.vu
 

BurningSoul

Betreff: Ok, ich glaub das krieg ich hin

BeitragMi, Dez 31, 2003 15:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank für den Tip ,
das mit den Namen .... wär ich glaube ich nicht so schnell drauf gekommen ....
methode 1 funzt zwar auch , eignet sich aber mit sicherheit nicht inna massenschlacht ,wo jede frame dutzende von monstern durchlaufen werden wollen.
Aber methode 2 ist dafür wohl bestens ,
da nicht gesucht werden muss!
Werd mich gleich mal drangeben Smile

echt cool, das es so'n forum hier gibt Razz

Arcanes

BeitragMi, Dez 31, 2003 15:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitte bitte!

Massenschlachten klingt sehr interessant!! an was für einem Projekt arbeitest Du?? Very Happy
tHey pUt mE iN a rOuNd rOom tO diE
User posted image
http://www.myownmalice.de.vu
 

BurningSoul

BeitragMi, Dez 31, 2003 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
nun, ich mache mein erstes projekt mit bb3d überhaupt ...

ich weiss es noch nicht soo genau ,

es wird auf jeden fall ein egoshooter ,
bei dem man verschiedene Spielertypen steuern kann,
allerdings nicht so einfach wie sniper , und gunner,
sondern man wird ,wenn alles klappt ,
ein düsenjäger , ein alien aus dem gleichnamigen film (sofern ich nen editor finde ,mit dem ich quake 1 model dateien samt animation und skin konvertieren kann nach 3ds für blitz)
ein bomber , ein predator ,
einen flugzeugträger ,und was meinem kopf noch so alles entspringt ,sein kann .

Gleichzeitig wird dies aber auch ein strategiespiel sein, in dem man gebäude errichten ,und Einheiten bauen kann , die einem dann heflen ...
zu guter letzt wird der sache dann noch nen multiplayer modus verpasst ,
und fertig ist der genre mix.

Ich hab mir das so gedacht, das es verschiedene modusse geben soll ,
zb deathmatch , strategie (also mit einheiten bauen) , botmatch usw....

sinn ist ,das man sich irgendeine art von einheit aussuchen kann , und der gegenspieler oder bot auch , und man dann loslegen kann .
und durch ein handicap system sorg ich dann noch dafür , das in diesem modus auch der panzer ne chance gegen den flugzeugträger hat
(übringens sind bei mir alle schiffe immer hovercrafts , damit sie auch an land zu den anderen spielern können *g)

ich weiss ,klingt sehr konfus ,
aber in quake eins hat das alles gefunzt ,
war nen echt geiler mod, den ich da geschrieben hatte!)
Nur zu schade ,das er mir kaputt gegangen ist Sad
(platte draufgegangen ,hab jetzt nur noch ne sehr alte verson.

Naja , aber das dauert eh noch nen jahr ,eh ich das alles hab .... im mom tüftle ich noch daran ,
wie ich das genau hinbekommen soll ...

hab jetzt mal ne function geschrieben :

Function getobject.gameob(entity)
ti=EntityName(entity)
Return Object.gameob(ti)
End Function

diese soll mir dann halt über das feld name$ ,
in dem jedes erzeugte Objekt seinen type handle speichert

; (Hier wird der handle gespeichert Smile

head\name$ = Handle(head) ; identifiers for the find entity call !
NameEntity head\entity,head\name$


nur hab ich jetzt das problem , das ich ,
wenn ich das ganze in einer kollisionsabfrage abrufe, in der ich den anderen entity kenne ,
und ich nun das dem anderen entiy zugeordnete type objekt finden will, ich das error ,
no entity found bekomme - code ist :

For head.shot=Each shot

numcols = CountCollisions (head\entity)

If numcols > 1 Then

For num = 1 To numcols
ent = CollisionEntity (head\entity,num)

other.gameob = GetObject (ent)

If other\classname$ = "world" Then
killme = 1
testvar = 10;
End If
Next

(shot is für alle projectile , soll uns hier aber nicht interessieren ,die kollision ist auf jedem fall mit nem objekt !)
world ist das objekt ,was dem entity zugeordnet ist ,in den das terrain geladen wurde Smile

.... aber ich arbeite ja noch dran Smile
wenn du zeit hast, oder jemand sonst,
kannste mir ja vielleicht schreiben ,
wo der fehler liegt ... vielleicht hab ich es bis dahin aber auch schon ,wer weiss Smile[/list]

bruZard

BeitragMi, Dez 31, 2003 17:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Schonmal auf den Gedanken gekommen dass Du ein kleineres Projekt angehen solltest um die vielen kleinen Seitenhiebe und Ungereimtheiten von BB3D kennenzulernen? Ein Kind schreibt auch nicht, mit einem Wortschatz von 100, ein Referat über Antropologie.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image
 

BurningSoul

BeitragMi, Dez 31, 2003 17:16
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, da hast Du vollkomme recht ...
ich sagte ja auch, das das erst in einem jahr soweit sein wird ....

im mom mache ich reine basissachen,
dh, ich erarbeite die kollisonsabfrage ,
erstelle gegner (bis jetzt nur ein flugzeug ,das auch schon das fliegen ,
steuern, gegner finden usw drauf hat )

Ich mach ja nicht alles aufeinmal, das was ich sagte ist das endziel quasi ...
ich mach das schön stück für stück Smile

und das mit den massenschlachten meine ich so :
ich habe den einen gegner über eine erstell funktion erstellt -
es macht also absolut keinen unterschied,
ob ich einen erstelle ,was zu testzwecken sinvoller ist ,
oder diese funktion in einer schleife aufrufe , also zb 500 gegner erstelle .
Nur denke ich jetzt schon an die performance -
würde ich zb mit der von arvanes beschreiebenen methode nr 1 arbeiten,
würde ich etliche loops mehr drin haben, als einem spiel das flüssig laufen soll , gut tuen würde.

Aber im grunde hast Du recht, das project wäre etwas viel für mich ,sollte ich es aufeinmal schreiben .
Ich mache das so :
ich schreibe , probiere aus , und lerne dabei ,
und so kommen dann auch die fewatures in das spiel.

Und wenn ihr euch durch fragerei hin und wieder von mir nicht nerven lasst, dann klappt das auch *fg

sobald ich genug kann ,werde ich natürlich auch anderen 'noobs' helfen,
versteht sich Smile

übringens das problem von eben hat sich schon gelöst ,
war ne kleinigkeit ,
das name feld für den world type war nicht richtig gesetzt worden,
da ich dort handle falsch aufgerufen hatte ...

ich sags a : man beisst sich durch Smile

sooo ... und nun noch nen schönen tag an euch alle ,
ich mach mich offline Laughing

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group