Linepick...aber wie?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Mr Hopp

Betreff: Linepick...aber wie?

BeitragSa, Dez 16, 2006 1:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!

Ich beschäftige mich derzeitig mit Linepicks. Dabei habe ich einen Spieler (durch die Kammera simuliert), der durch ein Gebäude (Mesh) gehen soll. Trifft er nun auf Stufen, kann er diese hochgehen. Trifft er auf die Wand, soll er stehen bleiben. Der Code (sollte) wie folgt funktionieren:

Wenn der Spieler mit dem Gebäude kollidiert, wird ein Linepick durchgefügrt, welches prüft, ob auf einer bestimmten höhe immernoch ein Hinderniss ist. Ist dies nicht der Fall (kleine Stufe), soll der Player sie hinaufsteigen. So viel zur Theorie.... hier der Code:

Code: [AUSKLAPPEN]
Graphics3D 1024,768,32,1
SetBuffer BackBuffer()
AppTitle("Test")

Dim fps(3)

objekt=LoadMesh("Treppe.3ds")
PositionEntity objekt,0,0,0
EntityType objekt,1
EntityPickMode objekt,2

cam=CreateCamera()
PositionEntity cam,0,5,-6
EntityRadius cam,1,3
EntityType cam,2

Collisions 2,1,2,3

light=CreateLight()

Repeat
Cls

TranslateEntity cam,0,-1,0

If KeyDown(17) Then MoveEntity cam, 0, 0, 0.1
If KeyDown(31) Then MoveEntity cam, 0, 0, -0.1
If KeyDown(30) Then MoveEntity cam, -0.1, 0, 0
If KeyDown(32) Then MoveEntity cam, 0.1, 0, 0

RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),EntityYaw(cam)-MouseXSpeed(),0
   MoveMouse 512, 384

If EntityCollided(cam,1)<>0 And objekt<>LinePick(EntityX(cam),EntityY(cam),EntityZ(cam),0,-0.5,0,3) Then TranslateEntity cam,0,1,0

UpdateWorld
RenderWorld

Text 5,0,"FPS:"+FPS(1):FPS(2)=FPS(2)+1:If MilliSecs()>FPS(3)+999 Then FPS(1)=FPS(2):FPS(2)=0:FPS(3)=MilliSecs()
Text 5,20,EntityY(cam)

Flip
Until KeyHit(1)
End


Und hier gibt's Mesh: https://www.blitzforum.de/upload/file.php?id=797
Zitat:
Wie poste ich falsch?

Nachdem ich Google, die FAQ's und die Boardsuche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen, in den falschen Unterforen, mit kreativen Titeln und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann.

pixelshooter

BeitragSa, Dez 16, 2006 11:10
Antworten mit Zitat
Benutzer-Profile anzeigen
nimm doch statt die höhe zu ermitteln entitytype
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc
 

Mr Hopp

BeitragSa, Dez 16, 2006 20:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Was meinst du damit?? Ich wüsste nicht, dass ich die Höhe irgendwo (außer einmal indirekt) prüfen würde Laughing
Zitat:
Wie poste ich falsch?

Nachdem ich Google, die FAQ's und die Boardsuche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen, in den falschen Unterforen, mit kreativen Titeln und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann.

pixelshooter

BeitragSa, Dez 16, 2006 21:04
Antworten mit Zitat
Benutzer-Profile anzeigen
naja, wenn du meinst...ich tät entitytype nehmen
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc
 

Mr Hopp

BeitragSa, Dez 16, 2006 21:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Ähm... nochmal: Danke für deine Hilfe, aber ich werde aus deinen Super-Kurz-Antworten net schlau...was meinst du denn damit??
Zitat:
Wie poste ich falsch?

Nachdem ich Google, die FAQ's und die Boardsuche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen, in den falschen Unterforen, mit kreativen Titeln und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann.
 

Dreamora

BeitragSa, Dez 16, 2006 23:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Das du die Funktion nutzt um den EntityType (also den Picktype) des Objektes rauszubekommen und dementsprechend handelst. Das geht viel schneller.

Der Name der Funktion wäre GetEntityType (http://www.blitzbase.de/befehle3d/getentitytype.htm)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Mr Hopp

BeitragSo, Dez 17, 2006 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ähm ich weiß immer nochnicht so wirklich, was ihr meint. Nur so viel: ich habe schon einen Code, der das ganze mittels eines vorgeschobenen entitys prüft, allerdings ist der Code zu umständlich. Und auch nochmal zur Anmerkung: Treppe und Boden sind EIN EINZIGER Mesh.
Zitat:
Wie poste ich falsch?

Nachdem ich Google, die FAQ's und die Boardsuche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen, in den falschen Unterforen, mit kreativen Titeln und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann.

Fuchsi

BeitragSo, Dez 17, 2006 21:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du Treppen steigen willst, brauchst du nur den Y-Radius deiner Spielfigur höher stellen (probieren) und sie wird einfach über die Stufen rutschen.

Markus2

BeitragMo, Dez 18, 2006 13:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Hatten wir dir das nicht schon mal erklärt ?
 

Mr Hopp

BeitragMo, Dez 18, 2006 15:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja aber es hat sich leider noch nicht geklärt und ich wollte ein neues Thema eröffnen, da das alte eh Off-Topic war Laughing Jetz zum Line-Pick an sich: Hat sich irgendjemand mal konkret mit meinem Code beschäftigt??? Mir würde es ja schon reichen, den korrekten Code zu sehen. (Ich weiß, das wird ungerne gemacht, aber manchmal brauche ich das einfach... ich lese mir den Code dann komplett durch und erforsche seine Funktionsweiße, also nicht denken, dass ich hier einfach nur Code anfordere, den ich nur übernehme Wink ).

Thx schonmal für alle bisherigen und eventuell noch folgenden Bemühungen Smile
Zitat:
Wie poste ich falsch?

Nachdem ich Google, die FAQ's und die Boardsuche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen, in den falschen Unterforen, mit kreativen Titeln und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann.
 

Dreamora

BeitragMo, Dez 18, 2006 15:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Da du auf die Idee gekommen bist, alles als 1 Mesh zu machen, bleibt dir nur EntityRadius für X anders als für Y zu setzen, so das du Treppen steigen kannst. Dann brauchst du eigentlich auch kein LinePick, da reicht die normale Kollision mit entsprechendem Setup (Kollisionsreaktion 3 am ehesten)

Wenn du Treppensteigen direkt via LinePick willst so gibt es dazu einen entsprechenden Thread, da diese frage erst kürzlich gestellt wurde, wie man eine Treppe mit Picking dedektieren kann.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Mr Hopp

BeitragSo, Apr 22, 2007 12:20
Antworten mit Zitat
Benutzer-Profile anzeigen
sry dass ich so spät nochma poste aber ich hab heut nochmal mit dem Code rumprobiert.... es hat schon gereicht die Gravitation auf 0.1 runterzusetzen Laughing
Zitat:
Wie poste ich falsch?

Nachdem ich Google, die FAQ's und die Boardsuche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen, in den falschen Unterforen, mit kreativen Titeln und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group