2 registered members (TedMar, AndrewAMD),
1,067
guests, and 0
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Panels ...... reine Logiksache
#353155
01/08/11 00:53
01/08/11 00:53
|
Joined: Feb 2010
Posts: 482 in deinem Kopf
Otter
OP
Senior Member
|
OP
Senior Member
Joined: Feb 2010
Posts: 482
in deinem Kopf
|
Hiiii Leute!Ist mir fast schon peinlich, dass ich in solch einer logikfrage hilfe brauche, aber mir will perdu keine klare lösung einfallen. Es geht darum verschiedene Itmes in beliebiger reihenfolge in 3 panels anzuzeigen. Die Panels - anfangs leer- füllen sich mit der anzahl gesammelter items von links nach rechts bis alle voll sind. Alle items darüber werden gespeichert und können später verwendet werden. Momentan hab ich für jedes item eine variable die sich auf max.3 erhöhen lässt. Das problem ist .... ist .... ähm. ICH WEIS AUCH NICHT. Ich bekomm kopfschmerzen wenn ich nur dran denke! Hoffentlich ist die antwort nicht ZU leicht. OTTER
Be my UBB-Buddy, without any reason!
|
|
|
Re: Panels ...... reine Logiksache
[Re: Otter]
#353159
01/08/11 01:09
01/08/11 01:09
|
Joined: Nov 2007
Posts: 2,568 Germany, BW, Stuttgart
MasterQ32
Expert
|
Expert
Joined: Nov 2007
Posts: 2,568
Germany, BW, Stuttgart
|
mach dir halt nen Array mit drei elementen... jedes element is ne variable mit dem wert von 1-3 wenn ein item reinkommt, schiebst du das array: element 2 -> element 3 element 1 -> element 2 neues element -> element 1 danach überprüfst du den inhalt des arrays und weißt deinen drei Panels die passenden bmaps zu. wenn du ein element verwendest, füllst du die items nach links wieder auf, d.h. wenn element 1: element 2 -> element 1 element 3 -> element 2 nichts -> element 3 wenn element 2: element 3 -> element 2 nichts -> element 3 wenn element 3: nichts -> element 3 das wars glaub ich so theoretisch
|
|
|
Re: Panels ...... reine Logiksache
[Re: MasterQ32]
#353169
01/08/11 02:21
01/08/11 02:21
|
Joined: Dec 2008
Posts: 271
Saturnus
Member
|
Member
Joined: Dec 2008
Posts: 271
|
Vom Prinzip her möglicherweise so ungefähr:
#include <acknex.h>
#define ITEM_ID_RED 0
#define ITEM_ID_GREEN 1
#define ITEM_ID_BLUE 2
BMAP *item_bmaps[3];
int items[3];
int items_count = 0;
void displayItems() {
int i;
for (i = 0; i < items_count; i++) {
if (items[i] >= 0) {
draw_quad(item_bmaps[items[i]], vector(10 + i*40, 10, 0),
NULL, NULL, NULL, NULL, 100, 0);
}
}
}
void addItem(int item_id) {
if ((item_id >= 0) && (item_id < 3) && (items_count < 3)) {
items[items_count] = item_id;
items_count++;
}
}
void removeItemAt(int index) {
if ((index >= 0) && (index < 3) && (index < items_count)) {
for (; index < 2; index++) {
items[index] = items[index+1];
}
items_count--;
}
}
void main() {
wait(1);
item_bmaps[ITEM_ID_RED] = bmap_createblack(32, 32, 24);
item_bmaps[ITEM_ID_GREEN] = bmap_createblack(32, 32, 24);
item_bmaps[ITEM_ID_BLUE] = bmap_createblack(32, 32, 24);
bmap_fill(item_bmaps[ITEM_ID_RED], COLOR_RED, 100);
bmap_fill(item_bmaps[ITEM_ID_GREEN], COLOR_GREEN, 100);
bmap_fill(item_bmaps[ITEM_ID_BLUE], COLOR_BLUE, 100);
addItem(ITEM_ID_GREEN);
addItem(ITEM_ID_GREEN);
addItem(ITEM_ID_RED);
removeItemAt(1);
addItem(ITEM_ID_BLUE);
while (1) {
displayItems();
wait(1);
}
}
|
|
|
Re: Panels ...... reine Logiksache
[Re: Saturnus]
#353225
01/08/11 14:21
01/08/11 14:21
|
Joined: Feb 2010
Posts: 482 in deinem Kopf
Otter
OP
Senior Member
|
OP
Senior Member
Joined: Feb 2010
Posts: 482
in deinem Kopf
|
Vom Prinzip her möglicherweise so ungefähr: Ja, funktioniert wie es soll! Danke Nur .... so wirklich verstehen tu ich's nicht. Was ist z.B. der unterschied zwischen: * void und function ? * for und if ? Das manuel zeigt mir bei diesen begriffen kaum was nützliches. PS: @Saturnus: netter avatar.
Be my UBB-Buddy, without any reason!
|
|
|
Re: Panels ...... reine Logiksache
[Re: Otter]
#353226
01/08/11 14:30
01/08/11 14:30
|
Joined: Aug 2007
Posts: 1,922 Schweiz
Widi
Serious User
|
Serious User
Joined: Aug 2007
Posts: 1,922
Schweiz
|
Hallo Otter, farbenfroh wie immer void ist das gleiche wie function, nur kann man mit void keine Rückgabeparameter angeben if: alles in der Klammer{} wird nur einmal ausgeführt, wenn die Bedingung wahr ist for (i = 0; i < items_count; i++) i ist beim Start 0 (i = 0) alles in der Klammer {} wird sooft ausgeführt, wie i < items_count Bei jedem Durchlauf der Klammer {} wird i um 1 erhöht (i++)
|
|
|
Re: Panels ...... reine Logiksache
[Re: Widi]
#353332
01/09/11 14:27
01/09/11 14:27
|
Joined: Feb 2010
Posts: 482 in deinem Kopf
Otter
OP
Senior Member
|
OP
Senior Member
Joined: Feb 2010
Posts: 482
in deinem Kopf
|
Hallo Otter, farbenfroh wie immer Bin jederzeit bereit euren tristen alltag zu versüßen Okay, alles klar. Danke Widi! Und int ist die kommastellenlose version von var, oder seh ich das falsch?
Be my UBB-Buddy, without any reason!
|
|
|
Re: Panels ...... reine Logiksache
[Re: Otter]
#353334
01/09/11 14:56
01/09/11 14:56
|
Joined: Oct 2008
Posts: 681 Germany
Ayumi
User
|
User
Joined: Oct 2008
Posts: 681
Germany
|
"var" = variable ->wandelt automatisch Typen um "int" = integer ->Kann keine Komma zahlen darstellen "double und float" -> fuer kommazahlen
Das ganze hat eigendlich nur mit dem Speicher zu tun, in "int" kannst du Zahlen von 32.768 bis 32.767 darstellen. und ohne Vorzeichen bis 64000~.
EDIT: Der unterschied ist eigendlich nicht merkbar aber 1) zaehlt es als "unsauber", falsche Datentypen anzugeben und 2) merkt man das dann bei einigen tausend codezeilen schon. (Das nur so als Zusatz:D)
Last edited by Ayumi; 01/09/11 14:59.
|
|
|
Re: Panels ...... reine Logiksache
[Re: Ayumi]
#353348
01/09/11 17:39
01/09/11 17:39
|
Joined: Feb 2010
Posts: 482 in deinem Kopf
Otter
OP
Senior Member
|
OP
Senior Member
Joined: Feb 2010
Posts: 482
in deinem Kopf
|
Danke für den crashkurs in sachen Interface. Ihr seit Klasse! Wirklich klasse! Um nicht gleich noch einen thread zu öffnen, stell ich euch einfach noch eine frage. Keine Sorge, ich kann mir echt nicht vorstellen das das schwierig ist. Für den fall das ich euch auf den wecker geh, sagt einfach bescheit. ALSO:Wie krieg ich es hin, das die 4 LILA SCHOCKWELLEN beim aufprall in die richtige richtung schauen? mfgOTTER
Be my UBB-Buddy, without any reason!
|
|
|
Moderated by mk_1, Perro, rayp, Realspawn, Rei_Ayanami, rvL_eXile, Spirit, Superku, Tobias, TSG_Torsten, VeT
|