Ok when I put this line in the ItemMenu it shows the wrong number of Items.
But if I put this line in my CheckMenuMovement Method it shows the correct number…
So how can it be when my ItemMenu Method is activated but there is still the wrong amount?
Im using Slick and this has 3 Methods:
Init
Update
Render
In render I have make(I changed all variables with hand maybe there is a error):
if(switch.Map)
drawMap(g);
else if (switch.Menu)
drawMenu(g);
DRAWMENU:
else if (switch.MenuItem)
GameMenu.paintItem(g);
GameMenu paintItem:
public void paintItem(Graphics g){
if(!switch.ItemTargetMenu) //ItemTargetMenu is the window which come when you choose an Item and press Enter.
{
g.setFont(font2);
g.drawImage(item,0,0); //Item Menu Picture
g.drawImage(ItemCursor, switch.MenuCursorX , switch.MenuCursorY); //Cursor
//Draw Items
for( x=0;x<ItemListe.size();x++)
{
if(x % 2 * 160==0) breite=30;
else breite=330;
g.drawString(ItemListe.get(x).name,breite,(x / 2 * 35)+90); // Item Name
g.drawString(String.valueOf(ItemListe.get(x).number) + "x" ,(x % 2 * 250)+270,(x / 2 * 35)+90); //Number
g.drawString(ItemListe.get(schalter.ItemNr).description,30,30); //Description
// System.out.println(""+ItemListe.get(x).name + " : "+ bank.ItemListe.get(x).number);
//Shows wrong amount
}
}
//If Item is chooses activate TargetMenu
else if(switch.ItemTargetMenu)
{
g.drawImage(itemTargetMenu,200,40); //TargetMenu Picture
draw_ItemMenu_ActorStats(g);
}
}
Ok in Update I have the function:
checkMenuMovement();
The code
//If no item is use then normal ItemMenu
if(!switch.ItemTargetMenu)
{
// for(int i=0;i<ItemListe.size();i++)
// System.out.println(""+ItemListe.get(i).name + " : "+ ItemListe.get(i).number);
//Shows the correct amount
//Right Movement
if(MenuRight && switch.MenuCursorX<320 && (switch.ItemNr+1)<ItemListe.size())
{
playSE(Globals.SOUND_HIT, 1.0f, 1.0f);
switch.MenuCursorX=switch.MenuCursorX+300;
switch.ItemNr+=1;
}
//Down Movement
else if(MenuDown && switch.MenuCursorY<480 && (switch.ItemNr+2)<ItemListe.size())
{
playSE(Globals.SOUND_HIT, 1.0f, 1.0f);
switch.MenuCursorY=switch.MenuCursorY+35;
switch.ItemNr+=2;
}
//Left
else if (MenuLeft && schalter.MenuCursorX > 30 && (switch.ItemNr-1)>=0)
{
playSE(Globals.SOUND_HIT, 1.0f, 1.0f);
switch.MenuCursorX=schalter.MenuCursorX-300;
switch.ItemNr-=1;
}
//Up
else if(MenuUp && switch.MenuCursorY>85 && (switch.ItemNr-2)>=0)
{
playSE(Globals.SOUND_HIT, 1.0f, 1.0f);
switch.MenuCursorY=switch.MenuCursorY-35;
switch.ItemNr-=2;
}
//If the user choose an item
else if(EnterKeyDown)
{
switch.ItemTargetMenu=true;
switch.MenuCursorX=210;
switch.MenuCursorY=75;
}
}
//User have to choose the actor who he want to use the item.
else if(switch.ItemTargetMenu)
{
//Down
if(MenuDown && switch.MenuCursorY<480 && (switch.ActorNr+1)<ActorsList.size())
{
playSE(Globals.SOUND_HIT, 1.0f, 1.0f);
switch.MenuCursorY=switch.MenuCursorY+35;
switch.ActorNr+=1;
}
//Up
else if(MenuUp && switch.MenuCursorY>220 && (switch.ActorNr-1)>=0)
{
playSE(Globals.SOUND_HIT, 1.0f, 1.0f);
switch.MenuCursorY=switch.MenuCursorY-35;
switch.ActorNr-=1;
}
//Cancel
else if(Num0)
{
switch.ItemTargetMenu=false;
Num0=false;
}
//Item Use
else if(EnterKeyDown)
{
int HPvalue=0;
int heilen=0;
//HP from the player
HPvalue=ActorsListe.get(switch.ActorNr).MaxHP-ActorsListe.get(switch.ActorNr).HP;
//Potion
if(ItemListe.get(switch.ItemNr).name=="Trank" && ItemListe.get(switch.ItemNr).number>0)
{
if(HPvalue==0)
{
playSE(Globals.SOUND_HIT, 1.0f, 1.0f);
EnterKeyDown=false;
}
else if(HPvalue>75)
{
ActorsListe.get(switch.ActorNr).HP=ActorsListe.get(switch.ActorNr).HP+75;
ItemListe.get(switch.ItemNr).number=ItemListe.get(switch.ItemNr).number-1; //Decrease the amount
EnterKeyDown=false;
}
else if(HPvalue<75)
{
heilen=HPvalue;
ActorsListe.get(switch.ActorNr).HP=ActorsListe.get(switch.ActorNr).HP+heilen;
ItemListe.get(switch.ItemNr).number=ItemListe.get(switch.ItemNr).number-1;
EnterKeyDown=false;
}
}
}
}
}