Problem beim Picken mehrerer Objekte (= Types)

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Black Spider

Betreff: Problem beim Picken mehrerer Objekte (= Types)

BeitragDo, Apr 06, 2006 16:49
Antworten mit Zitat
Benutzer-Profile anzeigen
So... also, Problem ist folgendes.
Meine Hühner (noch sind es Cubes) fliegen durch die gegend.
Man kann sie mit dem Gewehr abschiessen,
das Ganze funktioniert wunderbar mit Camerapick.
Man kann allerdings auch eine Rakete abfeuern,
und die soll -o wunder- auch mehrere Hühner treffen.
Da schien mir Linepick die beste Lösung,
doch wenn ich die Rakete in die Hühnerschar feuer,
dann verschwindet nur ein Huhn, obwohl Linepick eigentlich alle picken müsste.
Weiss einer wieso?
Code: [AUSKLAPPEN]
picked = LinePick(EntityX(rak\obj)-30,EntityY(rak\obj)-30,EntityZ(rak\obj)-30,EntityX(rak\obj)+30,EntityY(rak\obj)+30,EntityZ(rak\obj)+30,90)

;--- und im Update der Vögel dann wieder: ---
If picked = g\obj Then
FreeEntity g\obj
Delete g
DoScore(+10)
End If


??? [/code]
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif

5k41

BeitragDo, Apr 06, 2006 17:10
Antworten mit Zitat
Benutzer-Profile anzeigen
weil picked nur einen wert von einem Huhn annehmen kann Very Happy müsstest vielleicht einfach in der for-each schleife das linepick über jedes huhn einmal laufen lassen und gucken ob das huhn im strahl ist :
Code: [AUSKLAPPEN]

 For g.huhn=Each huhn
  if linepick(blablabal)=g\obj then delete g.huhn
 next

gibt bestimmt ne bessere lösung und weiss auch nicht ob das wirklich funktioniert... war nur sone idee
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Apr 06, 2006 18:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Eventuell währe es besser dafür ql:EntityDistance zu nehmen. Den Explosionsort der Rakete dann mit jedem Huhn prüfen ob es innerhalb einer bestimmten Grenze liegt und wenn ja, weg mit dem Huhn.

tft

BeitragSo, Apr 09, 2006 14:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo...

sollen denn die Hüner im Umkreis bei einem Treffer gleich mit Explodieren oder soll die Rakette alle Hüner killen die sich direkt hintereinander befinden?
TFT
https://www.sourcemagic.ch
Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!!

Black Spider

BeitragSo, Apr 09, 2006 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
öhm, die Rakete soll alle Hühner im Umkreis plattmachen.
Die Hühner sind verstreut und nicht direkt hinter- oder nebeneinander.

Das Problem ist, das die Rakete ein Type ist, und ich kann ja net im Huhntype update nach der Position der Rakete fragen,
das ist ja n anderer Type...

oder geht das doch ?
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif

tft

BeitragMo, Apr 10, 2006 9:00
Antworten mit Zitat
Benutzer-Profile anzeigen
hi ...

du machst eine normale collisions erkennung. Rakete trifft Hun. Dannach suchst du ab der Detonations position mit EntityDistance()< Detonationsradius nach Hünern im umkreis. Frage... ist das eigentlich ein 2D oder 3D Game.
TFT
https://www.sourcemagic.ch
Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!!

Black Spider

BeitragMo, Apr 10, 2006 11:29
Antworten mit Zitat
Benutzer-Profile anzeigen
ist 3D,
aber das Problem ist, dass die Rakete ja nicht unbedingt ein Huhn trifft.
Sie Explodiert nach einiger Zeit, und dafür ist sie ja auch da,
um die Hühner platt zu machen,
die zu weit weg sind fürs Gewehr,
also kann ich die Rakete ja net direkt auf ein Huhn schiessen.
Aber ich glaub ich mach da jetzt was mit nem Pivot.
also, ungefähr so (kann ma einer schnell drübergucken und mir sagen ob es bekloppt ist?):
Code: [AUSKLAPPEN]

Global blowPiv = CreatePivot()
Global blowPivZeit = 0

If rak\zeit <= 0 Or Countcollisions(rak\obj)>= 1 Then
;bla bla bla, Partikelexplosion usw...

PositionEntity blowPiv,EntityX(rak\obj),EntityY(rak\obj),EntityZ(rak\obj)
blowPivZeit = 10
End If

;--- im Huhnupdate ---
If EntityDistance(g\obj,blowPiv) < 5000 Then
Geroestet_Runterfallen(g\obj)
DoScore(+10)
End If

;--- in einer Funktion die den BlowPiv updated ---
If blowPivZeit > 0 Then blowPivZeit = BlowPivZeit - 1
If blowPivZeit <= 0 Then
PositionEntity blowPiv,0,-500000,0 ;damit kein Huhn in seine Reichweite kommt
blowPivZeit = 0
End IF


???
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group