3 registered members (AndrewAMD, Quad, M_D),
1,217
guests, and 1
spider. |
Key:
Admin,
Global Mod,
Mod
|
|
|
wie finde ich den index eines arrays von panels ?
#413276
12/11/12 14:30
12/11/12 14:30
|
Joined: Apr 2005
Posts: 274 austria
Ascalon
OP
Member
|
OP
Member
Joined: Apr 2005
Posts: 274
austria
|
ich habe ein array von panels zb PANEL* panTest[10];
in diesem Panel gibt es einen Button und beim click auf diesen Button startet die dazugehörige Funktion, zb.: function testfunktion(var _buttonNumber, PANEL* _panel) {...}
wie finde ich aber den Indexwert des jeweiligen Panels raus, wenn ich den button gedrückt habe ?
Last edited by Ascalon; 12/11/12 14:32.
|
|
|
Re: wie finde ich den index eines arrays von panels ?
[Re: Ascalon]
#413279
12/11/12 14:48
12/11/12 14:48
|
Joined: Jun 2009
Posts: 2,210 Bavaria, Germany
Kartoffel
Expert
|
Expert
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
|
gib' jedem panel in dem array beim initialisieren eine eindeutige id, die gleichzeitig der indexwert ist. Dafür kannst du skills verwenden:
panTest[0].skill_x = 0;
panTest[1].skill_x = 1;
// usw.
in der button funktion benutzt du dann das:
void btn_function(var _buttonNumber, PANEL* _panel)
{
_panel.skill_x <- indexwert des panels, dessen button geklickt wurde
}
MfG, Kartoffel
POTATO-MAN saves the day! - Random
|
|
|
Re: wie finde ich den index eines arrays von panels ?
[Re: Kartoffel]
#413286
12/11/12 15:55
12/11/12 15:55
|
Joined: Jan 2002
Posts: 4,225 Germany / Essen
Uhrwerk
Expert
|
Expert
Joined: Jan 2002
Posts: 4,225
Germany / Essen
|
Oder du durchsuchst das array nach dem richtigen Panel.
int get_panel_index(PANEL* _panel)
{
int i;
for (i = 0; i < 10; i++)
if (panTest[i] == _panel)
return i;
return -1;
}
Kartoffels Ansatz ist aber schneller. Meiner macht dann Sinn, wenn sich die Indizes im Laufe des Spiels ändern sollten.
Always learn from history, to be sure you make the same mistakes again...
|
|
|
Re: wie finde ich den index eines arrays von panels ?
[Re: Kartoffel]
#413302
12/11/12 19:01
12/11/12 19:01
|
Joined: May 2010
Posts: 117 Germany , Dortmund
Bone
Member
|
Member
Joined: May 2010
Posts: 117
Germany , Dortmund
|
Das mit dem Panel Skills ist ja super. Steht das x für eine Zahl? Und falls ja, wo ist die Grenze?
|
|
|
Re: wie finde ich den index eines arrays von panels ?
[Re: Uhrwerk]
#413317
12/12/12 02:25
12/12/12 02:25
|
Joined: May 2010
Posts: 117 Germany , Dortmund
Bone
Member
|
Member
Joined: May 2010
Posts: 117
Germany , Dortmund
|
Danke für den Link. Wie ich das nur übersehen konnte .... Hier ein kleines Beispiel für den Fall, dass jemand mal mehr Platz braucht
function skillsForPanel(PANEL* pan, var num){
pan.skill_x = sys_malloc(num * sizeof(void*));
}
function main(){
PANEL* pan = pan_create("size_x = 10; size_y = 10;", 1);
// 5 ist die Anzahl der "Skills"
skillsForPanel(pan, 5);
((var*)pan.skill_x)[0] = 2;
((var*)pan.skill_x)[1] = 6;
printf("%i", (int)((var*)pan.skill_x)[0]);
}
|
|
|
|