Den Wert von einem Field im Type ändern

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

ZaRaK

Betreff: Den Wert von einem Field im Type ändern

BeitragSo, Nov 11, 2012 16:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
mit dem unten angegebenen Code erstelle ich ein Feld mit 5x5 Cubes.
Jeder Cube hat zu Anfang den Wert 1.
Nun möchte ich, dass bei einem klick auf den entsprechenden Cube, der Wert von diesem von 1 auf 0 geändert wird.

BlitzBasic: [AUSKLAPPEN]
Type Erde
Field x#
Field z#
Field wert#
Field mesh
End Type

grosse=5

For x=1 To grosse
For z=1 To grosse
Map.Erde = New Erde
Map\Mesh = CreateCube()
ScaleEntity Map\Mesh,.5,.5,.5
PositionEntity Map\Mesh,x,0,z
EntityPickMode Map\Mesh,2
Map\Wert = 1
Next
Next

While Not KeyHit(1)

mx# = MouseX()
my# = MouseY()
mentity = CameraPick(cam,mx#,my#)
entity=PickedEntity()

If MouseDown(1)
EntityColor mentity,0,200,0
EndIf


Also anstatt EntityColor muss hier dann irgendwie Map\Wert=0 gesetzt werden.
Hab schon einiges rum probiert. Allerdings wird immer nur der Wert des zuletzt platzierten entitys geändert.
Wie ist das umsetzbar, dass jeder Cube separat anwählbar ist?

Schonmal vielen Dank im Voraus!
 

PacMani

BeitragSo, Nov 11, 2012 17:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst alle erstellen Types durchlaufen und herausfinden, ob auf dessen Mesh geklickt (dieses gepickt) wurde.

Durchlaufen geht ungefähr wie
BlitzBasic: [AUSKLAPPEN]
Local wuerfel.Erde
For wuerfel = Each Erde
If wuerfel\mesh = gepicktesEntity Then
wuerfel\dings = 0
End If
Next
 

ZaRaK

BeitragSo, Nov 11, 2012 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah super. Funktioniert einwandfrei. Danke!
 

Freak123

BeitragSo, Nov 18, 2012 15:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Als Alternative könntest du auch das Handle des Types mit NameEntity zum Objekt speichern.
Code: [AUSKLAPPEN]
mesh = CreateCube()
obj.TYPENAME = New TYPENAME
NameEntity mesh,Handle(obj)


Den type kriegst du dann so:
Code: [AUSKLAPPEN]
obj.TYPENAME = Object.TYPENAME(EntityName(pickedmesh))


Dafür war es zwar eigentlich nicht konzipiert, aber ich denke, dass das schneller ist als jedesmal eine Schleife durchzulaufen.

lg Freak123

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group