Blitz 3d Drag and Drop
Übersicht

ZaRaKBetreff: Blitz 3d Drag and Drop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
ich versuche seit mehreren stunden selbstständig zu einer lösung zu kommen, allerdings bin ich kläglich gescheitert und weiss nich mehr weiter... ich möchte 3d items verschieben (zb aus einem inventar heraus auf einen anderen gegenstand ziehen), aber das ganze will nich so, wie ich möchte... Zitat: Graphics3D 640, 480 SetBuffer BackBuffer() Global camera=CreateCamera() PositionEntity camera, 0, 0, -10 Global box=LoadMesh( "box.b3d" ) ScaleEntity box, 0.05, 0.05, 0.05 EntityPickMode box,2 While Not KeyHit(1) mx=MouseX() my=MouseY() entity=CameraPick(camera,mx,my) If entity=0 Then EntityColor box,255,255,255 If entity<>0 Then EntityColor box,0,255,0 TurnEntity box, 0.5, 0.5, 0.5 If KeyDown(208) Then TurnEntity camera, 1, 0, 0 If KeyDown(200) Then TurnEntity camera, -1, 0, 0 If KeyDown(203) Then TurnEntity camera, 0, 1, 0 If KeyDown(205) Then TurnEntity camera, 0, -1, 0 If MouseHit(1) Then PositionEntity box, x, y, z (für diese werte hab ich schon etliches versucht, aber kam nie zu einer lösung (ich hab im nachhinein mit positionentity probiert um wenigstens hinzukriegen das das objekt sich nach einem klick am cursor befindet).. mousex und mousey erschien mir am logischsten, aber da hüpft das objekt nicht an die mx/my, sondern im raum an diese position, die verdammt weit weg is) UpdateWorld RenderWorld Text 0,15,"Maus X = " +mx Text 0,30,"Maus Y = " +my Text 0,60,"Box X = " +EntityX(box) Text 0,75,"Box Y = " +EntityY(box) Text 0,90,"Box Z = " +EntityZ(box) Flip Wend ich hoffe jemand von euch weiss rat :] schonma danke im vorraus |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
-.-
schonmal was von PickedX, PickedY und PickedZ gehört ?? Also damit müsstest du das GUT hinkriegen! |
||
Twitter
Download Jewel Snake! Windows|Android |
ZaRaK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Tankbuster hat Folgendes geschrieben: schonmal was von PickedX, PickedY und PickedZ gehört ?? ja, allerdings war mir die anwendung schleierhaft.. aber jetz funktionierts, vielen dank |
||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gleiches Problem->BlitzBase durchgelesen->mehrere male->Checks net... | ||
ZaRaK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: Graphics3D 640, 480
SetBuffer BackBuffer() Global camera=CreateCamera() PositionEntity camera, 0, 0, -10 Global box=LoadMesh( "box.b3d" ) PositionEntity box, -5,0,0 ScaleEntity box, 0.05, 0.05, 0.05 EntityPickMode box,2 While Not KeyHit(1) mx=MouseX() my=MouseY() entity=CameraPick(camera,mx,my) If entity=0 Then EntityColor box,255,255,255 If entity<>0 Then EntityColor box,0,255,0 TurnEntity box, 0.5, 0.5, 0.5 If MouseDown(1) Then PositionEntity box, PickedX(), PickedY(),0 UpdateWorld RenderWorld Text 0,15,"Maus X = " +mx Text 0,30,"Maus Y = " +my Text 0,120,"Picked X = " +PickedX() Text 0,135,"Picked Y = " +PickedY() Text 0,150,"Picked Z = " +PickedZ() If entity<>0 Then Text mx+15, my, +box Flip Wend so funktionierts jetz... allerdings hab ich nun 2 weitere probleme... 1. wenn ich die kamera dreh, bewegt sich das objekt nicht der camx/camy entlang (somit schieb ich das dann nach vorne/hinten, und nicht links/rechts) 2. wie kann ich jetzt mehrere objekte verwenden? mir steht ja irgendwie bloss 1 entity zur verfügung (entity=CameraPick(camera,mx,my))... sry wenn ich mich unklar ausdrück, aber bin im mom schwer verpeilt.. |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Entweder mit einem Array, was ich aber nicht empfehlen würde, oder mit TYPES!
Zitat: 1. wenn ich die kamera dreh, bewegt sich das objekt nicht der camx/camy entlang (somit schieb ich das dann nach vorne/hinten, und nicht links/rechts)
Das liegt daran, das du immer nur nach PickedX und PickedY fragst, aber nie nach PickedZ! Da würde es aber bei deinem Code das Problem geben, das der Würfel immer näher kommt! Aber das liegt nur daran, das du beim Würfel EntityPickMode eingestellt hast! Ich würde da ein Sprite oder eine Fläche in den Hintergrung setzten, auf der Du dann EntityPickMode einstellst!! |
||
Twitter
Download Jewel Snake! Windows|Android |
ZaRaK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
alles klar, werds mal versuchen, danke :] | ||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Auf meinen post hat wohl niemand geantwortet 0o
Nochmals: Ich will die X/Y Achse eines Objekts immer auf die Maus ausrichten. muss wohl mit Picked gehen, aber irgendwie brauch ich Hilfe. hab BlitzBase Artikel gelesen, gelesen, und nochmals gelesen, aber ich schaffs immer noch nicht 0o |
||
ZaRaK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
The_Nici hat Folgendes geschrieben: Auf meinen post hat wohl niemand geantwortet 0o
Nochmals: Ich will die X/Y Achse eines Objekts immer auf die Maus ausrichten. muss wohl mit Picked gehen, aber irgendwie brauch ich Hilfe. hab BlitzBase Artikel gelesen, gelesen, und nochmals gelesen, aber ich schaffs immer noch nicht 0o If MouseDown(1) Then PositionEntity MESH, PickedX(), PickedY(),0 damit hab ichs hingekriegt... |
||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei mir verschwindet das Objekt spuhrlos... | ||
ZaRaK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
The_Nici hat Folgendes geschrieben: Bei mir verschwindet das Objekt spuhrlos...
du musst PositionEntity verwenden, falls du MoveEntity benutzt hüpft das objekt extrem weit weg ^^ am besten postest du ma deinen kompletten code, dann könnte man das besser nachvollziehen |
||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
PositionEntity p\handr, PickedX(), PickedY(),0
If EntityX(p\handr) > EntityX(p\sphere)+2.7 Then PositionEntity p\handr, EntityX(p\handr)+2.5,EntityY(p\handr),0 If EntityY(p\handr) > EntityY(p\sphere)-2.7 Then PositionEntity p\handr, EntityX(p\handr),EntityY(p\sphere)-2.5,0 Noch nicht ganz fertig. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group