|
3 registered members (vicknick, 7th_zorro, Quad),
990
guests, and 12
spiders. |
|
Key:
Admin,
Global Mod,
Mod
|
|
|
button panel mehrmals benutzen
#417743
02/16/13 19:23
02/16/13 19:23
|
Joined: Oct 2008
Posts: 341
ratz
OP
Senior Member
|
OP
Senior Member
Joined: Oct 2008
Posts: 341
|
Hallo ich mache mir schon seit einiger zeit gedanken wie man folgendes bewerkstelligt: ein panel mit mehreren function..
// ein einfaches gui fenster
PANEL* hWnd_win1 =
{
bmap=hwnd_win_1;
pos_x = 100;
pos_y = 100;
flags = SHOW | TRANSLUCENT;
layer = 10;
}
//ein einfacher knopf//
PANEL* hWnd_b_small =
{
//pos_x = 100; -> gui panel pos
//pos_y = 100; -> gui panel pos
button (334,103,"small_b_up.bmp","small_b_up.bmp","small_b_down.bmp",NULL,NULL,NULL);
flags = SHOW ;
layer = 30;
}
es handelt sich um ein Knopf/schalter den ich gerne mehrmals verwenden will und das gleiche möchte ich auch gerne für mein gui fensters machen aber: ich möchte nicht jedesmal ein neues Panel für jedes Fenster erstellen sonst würde der code unendlich lang werden ich finde aber überhaupt keine lösung für mein Problem
|
|
|
Re: button panel mehrmals benutzen
[Re: ratz]
#417745
02/16/13 19:25
02/16/13 19:25
|
Joined: Oct 2008
Posts: 341
ratz
OP
Senior Member
|
OP
Senior Member
Joined: Oct 2008
Posts: 341
|
achja -> würde man alles in ein panel setzen, dann hat jedes fenster die gleiche function. z.b. -wenn ich es schließen würde dann würden sich alle schließen ich glaube dass liegt damit zusammen dass man ein panel nur einmal aufrufen kann
Last edited by ratz; 02/16/13 19:28.
|
|
|
Re: button panel mehrmals benutzen
[Re: ratz]
#417748
02/16/13 20:06
02/16/13 20:06
|
Joined: Jun 2009
Posts: 2,210 Bavaria, Germany
Kartoffel
Expert
|
Expert
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
|
Ich weiß nicht genau worauf du hinaus willst, aber du musst kein neues Panel erstellen, nur um einen Button auf ein Fenster zu legen.
Mit den Standart-Paneln zu arbeiten ist oft ziemlich umständlich, aber wenn man sich einen Code schreibt, den man einfach benutzen kann, und der das Ganze gefummel mit Panels und Buttons selbst erledigt geht das eigentlich recht gut.
Achja, könntest du eventuell erklären was dein sog. "panel mit mehreren function.." ist.
Last edited by Kartoffel; 02/16/13 20:06.
POTATO-MAN saves the day! - Random
|
|
|
Re: button panel mehrmals benutzen
[Re: Kartoffel]
#417749
02/16/13 20:16
02/16/13 20:16
|
Joined: Oct 2008
Posts: 341
ratz
OP
Senior Member
|
OP
Senior Member
Joined: Oct 2008
Posts: 341
|
was ich damit meine ist folgendes: ich möchte das Panel "Fenster" (hwnd_win_1) mehrmals darstellen ohne immer wieder neue Panels schreiben zu müssen wenn es dann dargestellt ist dann soll man auch jedes einzelnde schlißen können -> wie beim "OS: Windows" IN AUM 83 ist ein 2d spacegame tutoiral aber ich werde aus dem code nicht schlau, wie man es schaft ein panel mehreremale anzuzeigen ich hoffe ihr wisst was ich meine, und das gleiche möchte ich mit mein Fenster machen nur sollen diese einfach nur dargestellt werden - WIE GEHT DAS ???
Last edited by ratz; 02/16/13 20:25.
|
|
|
Re: button panel mehrmals benutzen
[Re: ratz]
#417750
02/16/13 20:23
02/16/13 20:23
|
Joined: Jun 2009
Posts: 2,210 Bavaria, Germany
Kartoffel
Expert
|
Expert
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
|
Um ein vollständiges, Fenster-basierendes Gui-System zu erstellen braucht man einiges an Erfahrung und auch etwas Zeit.
Meines ist beispielsweise ~2700 Zeilen lang und noch nicht mal soo umfangreich.
Schau dir am Besten mal die Funktionen für das Managen von Panels zur Laufzeit an. Hauptsächlich:
pan_create pan_setbutton / -_digits / -_string
--- EDIT --- zur Theorie dahinter:
Du hast am ende zwar trotzdem mehrere Panels, diese erstellst du aber durch (Helper-)Funktionen, wodurch es ermöglicht wird sehr viele Panels ohne mehrere definitionen zu erstellen. Solange deine Helperfunktionen leicht zu bedienen sind, ist es dann auch sehr leicht die Panels zu erstellen. Am schwierigsten is es, die Funktionen, die die Panels erstellen zu schreiben.
Last edited by Kartoffel; 02/16/13 20:29.
POTATO-MAN saves the day! - Random
|
|
|
Re: button panel mehrmals benutzen
[Re: Kartoffel]
#417753
02/16/13 20:28
02/16/13 20:28
|
Joined: Oct 2008
Posts: 341
ratz
OP
Senior Member
|
OP
Senior Member
Joined: Oct 2008
Posts: 341
|
okey soweit war ich auchschonmal ich hatte das problem bei pan_setbutton, dass ich dort keine x,y pos angeben kann, zudem muss man es an ein main_panel binden und wie lasse ich die darstellung wieder verschwinden -> reset(...); klapt nur mit Panels
Last edited by ratz; 02/16/13 20:32.
|
|
|
Re: button panel mehrmals benutzen
[Re: ratz]
#417754
02/16/13 20:34
02/16/13 20:34
|
Joined: Jun 2009
Posts: 2,210 Bavaria, Germany
Kartoffel
Expert
|
Expert
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
|
Bei pan_setbutton kann man x und y position des buttons angeben ( im Manual mal genauer anschauen )
Um ein, wie beschrieben erstelltes Panel unsichtbar zu machen, funktioniert reset(panel, SHOW); genauso, wie mit normalen Panels.
Beim kompletten entfernen zur Laufzeit wird das schon kniffliger, vor Allem, wenn ein Fenster bei dir aus mehr als nur einem einfachen Panel besteht. (z.B. zusätzliche informationen über das fenster)
Abgesehen davon musst du auch mit Pointern arbeiten. Es ist - wie gesagt - nicht allzu einfach...
Last edited by Kartoffel; 02/16/13 20:36.
POTATO-MAN saves the day! - Random
|
|
|
Re: button panel mehrmals benutzen
[Re: ratz]
#417755
02/16/13 20:36
02/16/13 20:36
|
Joined: Jan 2002
Posts: 4,225 Germany / Essen
Uhrwerk
Expert
|
Expert
Joined: Jan 2002
Posts: 4,225
Germany / Essen
|
ich hatte das problem bei pan_setbutton, dass ich dort keine x,y pos angeben kann Wie wärs denn mit dem 3. und 4. Parameter? zudem muss man es an ein main_panel binden und wie lasse ich die darstellung wieder verschwinden Erstelle doch einfach ein Panel pro Gegner.
Always learn from history, to be sure you make the same mistakes again...
|
|
|
Re: button panel mehrmals benutzen
[Re: Uhrwerk]
#417763
02/16/13 21:55
02/16/13 21:55
|
Joined: Oct 2008
Posts: 341
ratz
OP
Senior Member
|
OP
Senior Member
Joined: Oct 2008
Posts: 341
|
so ich hab mal den code aus dem aum genommen und alles bis auf die pan_create function weggelassen und bearbeitet verändert
//////////////////////////////////////////////////////////////////////////////
#include <acknex.h>
#include <default.c>
var i = 0;
BMAP* enemy_tga = "enemy.tga";
PANEL* enemies[3];
function start_test(i);
//////////////////////////
function create_test()
{
while (i < 3)
{
wait (-1);
enemies[i] = pan_create("bmap = enemy.tga; flags = VISIBLE;", 20);
enemies[i].pos_x = 100;
enemies[i].pos_y = 100;
start_test(i);
i += 1;
}
}
function start_test(i)
{
while(1)
{
enemies[i].pos_x += 5;
wait(1);
}
}
//////////////////////
function main()
{
fps_max = 60;
video_mode = 6;
vec_set(screen_color, vector(0, 0, 0));
create_test(); // create the enemies
}
okey das hat jetzt überhauptnichts mit damit zutun aber ich finde die function so fastinierend ich möchte nur noch folgendes wissen: warum hinterläst der panel eine schmierspur beim bewegen ?
Last edited by ratz; 02/16/13 21:56.
|
|
|
Re: button panel mehrmals benutzen
[Re: ratz]
#417764
02/16/13 22:02
02/16/13 22:02
|
Joined: Jun 2009
Posts: 2,210 Bavaria, Germany
Kartoffel
Expert
|
Expert
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
|
Ich hab' mir vor einiger Zeit die Zähne an diesem Problem ausgebissen, bis ich gemerkt habe, dass es am sky color liegt. verwende nie 100% schwarz (0, 0, 0) als sky- oder screen-color. Benutze anstatt dessen: vec_set(screen_color, vector(1, 1, 1)); bzw. vec_fill(screen_color, 1); // bewirkt das gleiche, ist aber kürzer 
POTATO-MAN saves the day! - Random
|
|
|
Moderated by mk_1, Perro, rayp, Realspawn, Rei_Ayanami, rvL_eXile, Spirit, Superku, Tobias, TSG_Torsten, VeT
|