Antwort schreiben  Thema schreiben 
Verfasser Nachricht
D4V3 $v1
Junior Mitglied
**


Beiträge: 13
Gruppe: User
Registriert seit: Apr 2011

Status: Offline
Danke erhalten: 0
Beitrag: #1
xPSP  [C] Raster-Menü ?

Guten Tag,

Weiß einer von euch, wie ich ein Raster-Menü (like Handys etc.)
in C programmieren kann ?
Von den funktionen her weiß ich einiges.

Soviel ich weiß muss man:

Code:
[...]
menu = {"Test","TEST","TEST"}
aktivmenu = 0;

If (pad.Buttons & PSP_CTRL_DOWN)
{
aktivmenu+=3;
}
If (pad.Buttons & PSP_CTRL_UP)
{
aktivmenu-=3;
}
if (pad.Buttons & PSP_CTRL_LEFT)
{
aktivmenu-=1;
}
if (pad.Buttons & PSP_CTRL_RIGHT)
{
aktivmenu+=1;
}
[...]


Um den Code braucht ihr euch nicht zu kümmern, nur möcht ich wissen,
wie man das ganze jetzt grafisch darstellt,also:
Wenn man z.B. Links drückt, soll sich ein Bild nach Links bewegen und rechts...

Beispiel:

Bild von Google Bilder

Dieser Umriss,der sich beim drücken von tasten bewegt, wie kann ich so was darstellen ?


Ich bin für jede Antwort sehr dankbar und kriegt auch ein Danke x3

Liebe Grüße:

David

09.06.2011 14:25
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Arktos
Junior Mitglied
**


Beiträge: 47
Gruppe: User
Registriert seit: May 2011

Status: Offline
Danke erhalten: 8
Beitrag: #2
RE: [C] Raster-Menü ?

Mit sceGu?

09.06.2011 14:28
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
D4V3 $v1
Junior Mitglied
**


Beiträge: 13
Gruppe: User
Registriert seit: Apr 2011

Status: Offline
Danke erhalten: 0
Beitrag: #3
RE: [C] Raster-Menü ?

Könnte jemand ein Beispiel machen ?`
z.B. ein Codeschnipsel ...

@Arktos
Danke, aber ich kann aus deinem Beitrag keinen Entschluss ziehen....

An Alle:

Ich kann C;bin selber IT-Entwickler und habe IT-Entwicklung studiert...
Danke schön...


z.B.
Background:

Code:
Image* bg1;
bg1 = loadImage("bg1.png");
[...]
blitAlphaImageToScreen(0 ,0 ,480 , 272, bg1, 0, 0);
[...]




Icons:

Sagen wir mal, es gibt neun icons:

Icon1.png
Icon2.png
Icon3.png
Icon4.png
Icon5.png
Icon6.png
Icon7.png
Icon8.png
Icon9.png

Code:
[...]
blitAlphaImageToScreen(0 ,0 ,32 , 32, icon1, 25, 25);
[...]


Und der Umriss heißt:
Checked.png

Wie kann ich jetzt machen, dass Checked.png sich beim drücken der Tasten auf die Position der jeweiligen Icons verschiebt ?

Meine Teorie:

Code:
[...]
X = 128;
Y = 128;
[...]
blitAlphaImageToScreen(0 ,0 ,32 , 32, umriss, X, Y);

If (pad.Buttons & PSP_CTRL_LEFT)
{
X += 25;
}


Ich weiß der der obrige Code falsch ist und eine millionen syntax fehler hat,
aber ich meine so in der art....

Danke im Vorraus

Dieser Beitrag wurde zuletzt bearbeitet: 09.06.2011 14:46 von D4V3 $v1.

09.06.2011 14:30
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #4
RE: [C] Raster-Menü ?

Ich würde das mit Strukturen machen, die Icons verwalten...
so in der Art:

Code:
#define N_ICONS 9;

typedef struct _Icon
{
     int x, int y;
     char *text;
     Image *img;
     void (* OnClick) (void);
} Icon;

Icon icons[N_ICONS];


x und y eben setzen, sodass sie am Raster sind.

Dann eben immer die Position in ner Variable (z.B. menu_position) speichern, immer auf die X-Taste testen, und wenn diese gedrückt ist, icons[menu_position].OnClick aufrufen.

09.06.2011 14:37
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
D4V3 $v1
Junior Mitglied
**


Beiträge: 13
Gruppe: User
Registriert seit: Apr 2011

Status: Offline
Danke erhalten: 0
Beitrag: #5
RE: [C] Raster-Menü ?

Okey danke für die antwort...

Aber meine eig. frage war ja, wie ich das mit den checked also diesem Umriss machen kann ?

David

Dieser Beitrag wurde zuletzt bearbeitet: 09.06.2011 14:50 von D4V3 $v1.

09.06.2011 14:49
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Arktos
Junior Mitglied
**


Beiträge: 47
Gruppe: User
Registriert seit: May 2011

Status: Offline
Danke erhalten: 8
Beitrag: #6
xPSP  RE: [C] Raster-Menü ?

Du musst doch checked.png einfach nur um die Breite bzw. Höhe deiner Icons verschieben oder was war das Problem?

Edit: Achso, du meinst dem Umriss. Funktioniert das denn nicht mit einem Alpha-Channel?

Dieser Beitrag wurde zuletzt bearbeitet: 09.06.2011 14:52 von Arktos.

09.06.2011 14:51
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #7
RE: [C] Raster-Menü ?

Code:
void Menu(int icon_num, int icons_per_column, Icon *icons, Image *bg, Image *border)
{
    SceCtrlData pad;
    memset(&pad, 0, sizeof(SceCtrlData));

    int menu_position = 0;

    while(1)
    {
        sceCtrlReadBufferPositive(&pad, 1);
        
        if((pad.Buttons & PSP_CTRL_LEFT) && (activmenu >= 0))
            menu_position--;
        else if((pad.Buttons & PSP_CTRL_RIGHT) && (activmenu < icon_num))
            menu_position++;
        else if((pad.Buttons & PSP_CTRL_UP) && ((activmenu - icons_per_column) >= 0)
            menu_position -= icons_per_column;
        else if((pad.Buttons & PSP_CTRL_DOWN) && ((activmenu + icons_per_column) < icon_num)
            menu_position += icons_per_column;
        
        if(pad.Buttons & PSP_CTRL_CROSS)
        {
            icons[menu_position].OnClick();
        }
        
        /* Hintergrund anzeigen */
        ShowImage(0, 0, bg);
        
        int i;
        for(i = 0; i < icon_num; i++)
        {
            if(i == menu_position)
                ShowImage(icons[i].x, icons[i].y, border); // Rand anzeigen
            
            /* Icon anzeigen */
            ShowImage(icons[i].x, icons[i].y, icons[i].img);
        }
    }
}


Das ist jetzt nicht getestet, aber sollte ungefähr das Prinzip zeigen.
Diese ShowImage Funktion gibts natürlich nicht, habs nur als Platzhalter genommen, setz dort einfach deine Bild-Anzeig Funktion ein.

Dieser Beitrag wurde zuletzt bearbeitet: 09.06.2011 14:56 von HacKmaN.

09.06.2011 14:54
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
D4V3 $v1
Junior Mitglied
**


Beiträge: 13
Gruppe: User
Registriert seit: Apr 2011

Status: Offline
Danke erhalten: 0
Beitrag: #8
RE: [C] Raster-Menü ?

Das verschieben der checked.png Big Grin
Also soll ich

Code:
blitAlphaImageToScreen(0 ,0 ,32 , 32, test, X, Y);
X = 28;
Y = 28;


und wenn man links oder so drückt, soll sich X um z.B. 30 erhöhen ?
Ist das richtig wenn man:
X += 20;

macht ?

09.06.2011 14:55
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #9
RE: [C] Raster-Menü ?

Hast du meinen Post gesehen? Einen über dir, wir haben gleichzeitig geschrieben Wink

09.06.2011 15:08
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Torky
Ex-Developer
****


Beiträge: 414
Gruppe: User
Registriert seit: Aug 2009

Status: Offline
Danke erhalten: 598
Beitrag: #10
xPSP  RE: [C] Raster-Menü ?

D4V3 $v1 :
Ich kann C;bin selber IT-Entwickler und habe IT-Entwicklung studiert...
Danke schön...


Also für einen der das Studiert haben soll hört sich das aber sehr unwissend an. Um solch ein problem zu lösen gibt es viele methoden. Alphablending wurde ja schon erwähnt oder einfach den kasten aussenrum selbst zeichnen. Das SDK dürfte dazu gut genug dokumentiert sein.

P.s. wenn du X und 30 erhöhen willst solltest du auch X+=30; machen und nicht 20.

Dieser Beitrag wurde zuletzt bearbeitet: 09.06.2011 17:26 von Torky.

09.06.2011 17:25
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Antwort schreiben  Thema schreiben 

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
xPSP Im Raster bewegen? DoubleDD_aka_domis4 0 807 27.02.2012 20:41
Letzter Beitrag: DoubleDD_aka_domis4
xPSP [Soure Code] Ultimate VSH Menu Revised Total_Noob 8 28.795 03.08.2011 23:41
Letzter Beitrag: xXPizzaNinjaXx
xPSP VLF Lib - Menu Hilfe ~Hook~ 4 1.730 26.07.2011 02:23
Letzter Beitrag: siduguio
xPSP Lua Menü Problem cody96 5 2.776 24.06.2011 15:40
Letzter Beitrag: shaplayer
xPSP Pausen-Menü Code Lua fener98 5 1.777 04.06.2011 11:10
Letzter Beitrag: MoDz

Druckversion anzeigen
Thema einem Freund senden
Thema abonnieren | Thema zu den Favoriten hinzufügen




» zum Seitenanfang