Pick
Übersicht

![]() |
N0XBetreff: Pick |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi!
Ich möchte Types picken. Wenn ich aber die Maus auf ein Type ziehe, werden alle markiert. Wie kann ich diese einzeln markieren? Hier mein Ansatz: Code: [AUSKLAPPEN] Type enemy
Field x#,y#,z# Field yaw Field mesh Field timer,st_timer,richtung,stopp Field health% Field exxp% End Type ;----------------------------------------------------------------------------------------------| ;Haupt-Teil Graphics3D 1024,768,32,2 SetBuffer BackBuffer() timer = CreateTimer(60) ;----------------------------------------------------------------------------------------------| ;3D Ressourcen Global piv = CreatePivot() Global cam = CreateCamera(piv) Global gegner = LoadAnimMesh("models\dwarf2.b3d") ;----------------------------------------------------------------------------------------------| ;Gegner For i = 0 To 39 e.enemy = New enemy e\x# = Rnd(-1000,1000) e\y# = 0 e\z# = Rnd(100,300) e\yaw = Rnd(-90,90) e\mesh = CopyEntity(gegner) e\exxp% = 120 EntityPickMode(e\mesh,2) Next ;----------------------------------------------------------------------------------------------| ;Haupt-Schleife While Not KeyHit(1) WaitTimer(timer) Cls initPick() RenderWorld() UpdateWorld() Flip 0 Wend End ;----------------------------------------------------------------------------------------------| Function initPick() For e.enemy = Each enemy mxx = MouseX() myy = MouseY() entity = CameraPick(cam,mxx,myy) If entity = 0 Then EntityColor e\mesh, 255, 255, 255 If entity<>0 Then EntityColor e\mesh, 0, 255, 0 Next End Function Mfg, N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Deine InitPick-Funktion muss etwas anders aussehen, CameraPick![]() BlitzBasic: [AUSKLAPPEN] Function initPick() |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Cool, danke! ![]() Wie kann ich jetzt das zuletzt gepickte Objekt grün lassen, und wenn man auf freie Fläche klickt wird es wieder normalfarben? //EDIT: Hat sich wieder von selbst geklärt! ![]() |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe jetzt noch eine Maus-Abfrage mit in die Funktion gestellt.
Warum funktioniert diese, mit [[MouseHit()]] nur bei dem ersten Objekt? Und warum funktioniert es mit [[MouseDown()]]? ![]() Mfg, N0X Code: [AUSKLAPPEN] Function initPick()
mxx = MouseX() myy = MouseY() entity = CameraPick(cam,mxx,myy) For e.enemy = Each enemy If MouseHit(1) Then If entity = e\mesh e\picked = 1 EntityColor e\mesh,0,255,0 Else e\picked = 0 EntityColor e\mesh,255,255,255 EndIf EndIf Next End Function Code: [AUSKLAPPEN] Function initPick()
mxx = MouseX() myy = MouseY() entity = CameraPick(cam,mxx,myy) For e.enemy = Each enemy If MouseDown(1) Then If entity = e\mesh e\picked = 1 EntityColor e\mesh,0,255,0 Else e\picked = 0 EntityColor e\mesh,255,255,255 EndIf EndIf Next End Function |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Lies im FAQ nach... Nachdem Mousehit() aufgerufen wurde, gibt es danach immer nur noch 0 Zurück: Am Anfang der Hauptschleife in einer Variable speichern. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gut, Danke! ![]() |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
So, meine Pickfunktion wird nun leider sehr langsam sobald ich mehr als 20 Gegner habe.
Kann man die irgendwie noch optimieren? Code: [AUSKLAPPEN] Function initPick()
mh = MouseHit(1) mxx = MouseX() myy = MouseY() entity = CameraPick(cam,mxx,myy) For e.enemy = Each enemy If mh Then If entity = e\mesh e\picked = 1 EntityColor e\mesh,0,255,0 Else e\picked = 0 EntityColor e\mesh,255,255,255 EndIf EndIf Next End Function //EDIT: Hm, liegt nicht an der Funktion, wahrscheinlich zu High-Poly Modelle. ![]() |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group