probleme mit CameraPick()
Übersicht

fliegeBetreff: probleme mit CameraPick() |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie oben schon beschrieben habe ich ein Problem mit der CameraPick - Funktion. Und zwar ist mein Mesh, das gepickt werden soll in einem Type gespeichert und der Pickmode richtig gesetzt. Trotzdem wenn ich CameraPick an den Mauskoordinaten mache ist es egal ob ich über dem Mesh bin oder sonst wo, er liefert immer null.
Vielleicht kennt jemand eine Lösung für dieses Problem, freue mich natürlich über jegliche Hilfe. Fliege |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du hast das mesh nicht eventuell mit scaleentity "aufgeblasen"? | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
fliege |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also ich habe folgendes gemacht:
Code: [AUSKLAPPEN] window.t_window = New t_window
window\name$ = Sys_ParseParameter(parameters$,2,1) window\mesh = CreateSprite(guicam) EntityPickMode window\mesh, 1 window\x# = Float(Sys_ParseParameter(parameters$,1,2))*ggratio# window\y# = Float(Sys_ParseParameter(parameters$,1,3))*ggratio# window\width# = Float(Sys_ParseParameter(parameters$,1,4))*ggratio# window\height# = Float(Sys_ParseParameter(parameters$,1,5))*ggratio# window\alpha = 100 window\shown = 0 PositionEntity window\mesh,((window\x)*2)-gwidth+window\width,-((window\y)*2)+gheight-window\height,gwidth ScaleSprite window\mesh, window\width*ggratio#, window\height*ggratio# EntityAlpha window\mesh, Float(window\alpha)/100.0 HideEntity window\mesh Und da funktionierts nicht - soll ich mal den PickMode hinter das scalen versetzen. Fliege |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich denke, ein korrektes konfigurieren des Pickmode würde schon ausreichen.
Du benutzt Sphere pickmode, setzt aber nirgends entityradius, womit das nicht wirklich klappen kann. Vielleicht wolltest du ja eigentlich den Pickmode ,2? |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
fliege |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Okay, habe PickMode auf 2 gesetzt, brachte aber noch immer nichts. So habe ich die Deklaration des Pickmodes nach unten gesetzt, kurz vor ende der Funktion. Das Problem besteht jedoch weiterhin ![]() Fliege |
||
fliege |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich weis das ich für diesen Post in die Hölle komme, aber:
Kennt sich denn keiner damit aus? Versuch ich das als einziger, oder will mir nur keiner Antworten ![]() Ich habe jetzt folgenden Code, funktioniert aber noch immer nicht Code: [AUSKLAPPEN] window.t_window = New t_window
window\name$ = Sys_ParseParameter(parameters$,2,1) window\mesh = CreateSprite(guicam) window\x# = Float(Sys_ParseParameter(parameters$,1,2))*ggratio# window\y# = Float(Sys_ParseParameter(parameters$,1,3))*ggratio# window\width# = Float(Sys_ParseParameter(parameters$,1,4))*ggratio# window\height# = Float(Sys_ParseParameter(parameters$,1,5))*ggratio# window\alpha = 100 window\shown = 0 PositionEntity window\mesh,((window\x)*2)-gwidth+window\width,-((window\y)*2)+gheight-window\height,gwidth ScaleSprite window\mesh, window\width*ggratio#, window\height*ggratio# EntityAlpha window\mesh, Float(window\alpha)/100.0 EntityPickMode window\mesh, 2 HideEntity window\mesh |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
HideEntity deaktiviert jegliche überprüfung (pick, kolli, alles)
Solange das da ist, existiert das objekt für B3D nicht bei Tests. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn das immer noch nicht die lösung des Problems war dann setz dich doch mal mit hectic in verbindung... der hat mir das auch schon richtig erklärun und vorallem auch selbst benutzt ![]() MfG |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
fliege |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hm, entweder empfängt hectic meine PM's nicht oder er irgnoriert mich beinhart ^^ - 5k41, kannst du mir nicht helfen?
Fliege |
||
c64 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hast du einen Cameravieport gesetzt ? Wenn ja , dann ziehe die Startposition von deiner PickPosition ab !!
Code: [AUSKLAPPEN] Cameraviewport VW_PX,VW_PY,VW_SX,VW_SY pckd=camerapick (CAM,PCK_X-VW_PX,PCK_Y-VW_PY) |
||
fliege |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab ich auch nicht getan - kann es daran liegen, das ich zwei cameras verwende?
Fliege |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
es liegt daran, dass du mit hideentity die entity deaktiviert hast. Dann existiert sie für B3D nicht mehr, bis du sie wieder aktivierst.
Wie oben schon erwähnt. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
fliege |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sorry, hab vergessen zu erwähnen das ich sie mit einer anderen Funktion wieder anzeigen lasse ![]() Wenn ihr es braucht kann ich auch mal den ganzen code zusammenzippen und uppen. Fliege |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wäre eine Idee oder ein kurzes beispiel, dass das Problem möglichst entsprechend deinem Code aufzeigt.
An obigem Code kann es eigentlich nicht liegen. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
fliege |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Gut, hier mal der Link:
https://www.blitzforum.de/upload/file.php?id=39 Aber bitte nicht lachen, es steckt noch alles in einer Testphase (will schauen ob ich das alles so machen will) Fliege |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
So, also eines vorweg. Ich habe sowas nur in einer ähnlichen Form gemacht. Da ich bereits zweimal angesprochen wurde, will ich mal versuchen mein Vorgehen mal zu äussern.
Ich habe mir Textmeshes erzeugt um daraus ein Menü zu basteln. Die Textmeshe bekommen beim erzeugen, per ql:NameEntity, einen Namen. Ausserdem sind sie genauso groß wie die Schrift in diesem ist (wichtig zum picken). An der Maus, die auch aus einem derartigem Mesh besteht, habe ich ein Cube mit Alpha 0 als Parent der Maus gepackt. Aus dem Cube geht dann ein LinePick hervor. Wenn ich jetzt also die Maus bewege, kann ich die Namen der Entitys der Textmeshes herrausfinden. Um Auswahlen zu treffen, werden Abfragen ähnlich wie If name="option" Then option() gemacht. Das ganze funktioniert wunderbar und ist auch recht leicht zu handhaben. Hier der Picker: Code: [AUSKLAPPEN] ;Picker erstellen
Global picker=CreateCube() ScaleEntity picker,.1,.1,.1 RotateEntity picker,180,0,0 EntityColor picker,255,0,0 EntityPickMode picker,2,0 EntityAlpha picker,0 Hier das Textmesh als endliche Zahl in Dims: Code: [AUSKLAPPEN] Function zeichne(m%,t$,x#,y#,z%,s#,c%)
... ... ;Neu-Vorbereitung FreeEntity mesh(m) mesh(m)=CreateMesh() face(m)=CreateSurface(mesh(m),brush258) EntityPickMode mesh(m),2,0 EntityOrder mesh(m),-2-m EntityFX mesh(m),1 ;Zeichen suchen For q=1 To Len(t) mitte$=Lower(Mid$(t,q,1)) If mitte="0" x1=1:y1=1:x2=10:y2=12:f=0 If mitte="1" x1=10:y1=1:x2=19:y2=12:f=0 If mitte="2" x1=19:y1=1:x2=28:y2=12:f=0 ... ... If mitte="$" x1=32:y1=71:x2=44:y2=52:f=0;Mauspointer v0=AddVertex(face(m),x0,-f+Abs(y1-y2)/2,0,x1,y1) v1=AddVertex(face(m),x0+Abs(x1-x2),-f+Abs(y1-y2)/2,0,x2,y1) v2=AddVertex(face(m),x0+Abs(x1-x2),-f,0,x2,y2) v3=AddVertex(face(m),x0,-f,0,x1,y2) AddTriangle(face(m),v0,v1,v2) AddTriangle(face(m),v0,v2,v3) x0=x0+Abs(x1-x2)-2.5 Next ;Standard-Bearbeitung PositionEntity mesh(m),x,y,z RotateEntity mesh(m),180,0,0 ScaleEntity mesh(m),s,s*2,s ScaleMesh mesh(m),.25,.25,1 UpdateNormals mesh(m) NameEntity mesh(m),t ShowEntity mesh(m) ;Zentrierung festlegen wenn angegeben wurde If c=1 MoveEntity mesh(m),-MeshWidth(mesh(m))*s/2,0,0 If c=2 MoveEntity mesh(m),-MeshWidth(mesh(m))*2,0,0 ;Funktionende End Function Im Menü dann das Auswahlsverfahren: Code: [AUSKLAPPEN] ;Auswahl-Mesh-Picker
picked=EntityPick(picker,1) If picked pitext$=EntityName$(picked) Else pitext$="" If pitext="start" EntityColor mesh(4),120,120,180 Else EntityColor mesh(4),255,255,255 If pitext="options" EntityColor mesh(5),120,120,180 Else EntityColor mesh(5),255,255,255 If pitext="credits" EntityColor mesh(6),120,120,180 Else EntityColor mesh(6),255,255,255 ... ... ;Pick-Execute If MouseHit(1) ;Maus-Klick-Navigation If pitext="start" unhide(2) If pitext="options" unhide(3) If pitext="credits" unhide(4) ... ... End If Die Funktion 'unhide(x)' macht Textmeshes sichtbar oder unsichtbar und diehnt dazu sich in weiteren Untermenüs fortzubewegen. Da das ganze noch mit Dims geregelt ist, kann man das so machen. Ist noch in Vorbereitung und wird später auch mit Types gemacht. Dann müsste man auch nicht Textentitys Hiden oder Showen... Hoffe das es dir etwas hilft. Vielleicht hast du das eine oder das andere übersehen und kommst nicht weiter. Ich habe leider kaum Zeit mich mit dem langem Code von dir zu beschäftigen. Stehe grad extrem im Umzugsstress... ![]() |
||
- Zuletzt bearbeitet von hectic am Fr, Jul 06, 2007 20:18, insgesamt einmal bearbeitet
fliege |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Habs jetzt mal selbst probiert und bin dabei drauf gekommen, das das bei mir nicht mit sprites geht...Also wenn ihr das mal selbst versucht, erstellt euch gleich per Addvertex eine Fläche und hofft, das es stimmt ![]() Fliege |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group