Skocz do zawartości

ALT

Użytkownicy
  • Postów

    795
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez ALT

  1. Mam taką pętle, która rusza npc:

    int a;
    int b;
    int hyp=0;
    for (a=0;a<11;a++)//y
         {
              for (b=0;b<20;b++)//x
              {
                                if (lvl[a][b]==2)
                                {             
                                              if (a==y+1 or a==y+2 or a==y+3 or a==y+4)
                                              {
                                                 if(lvl[a-1][b]==0)
                                                 {
                                                   lvl[a][b]=0;
                                                   lvl[a-1][b]=2;                                     
                                                 }
                                              }
                                              
                                              if (a==y-1 or a==y-2 or a==y-3 or a==y-4)
                                              {
                                                 if(lvl[a+1][b]==0)
                                                 {
                                                   lvl[a][b]=0;
                                                   lvl[a+1][b]=2;                                
                                                 }
                                              }
                                              
                                              if (b==x+1 or b==x+2 or b==x+3 or b==x+4)
                                              {
                                                 if(lvl[a][b-1]==0)
                                                 {
                                                   lvl[a][b]=0;
                                                   lvl[a][b-1]=2;                                    
                                                 }
                                              }
                                              
                                              if (b==x-1 or b==x-2 or b==x-3 or b==x-4)
                                              {
                                                 if(lvl[a][b+1]==0)
                                                 {
                                                   lvl[a][b]=0;
                                                   lvl[a][b+1]=2;                                      
                                                 }
                                              }                             
                                }
                                
              }
         }          
    }

     

    I teraz, jak przerobić ją by po poruszeniu npc w np. lewo, i po przejściu pęli w lewo nie zapętlała się i nie poruszała nim więcej niż 1 raz.

  2. Moja testowa plansza (tablica) wygląda tak:

     

    int lvl[11][20]={{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                     {1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1},
                     {1,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1},
                     {1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1},
                     {1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1},
                     {1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1},
                     {1,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1},
                     {1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1},
                     {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
                     {1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1},
                     {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                    };

     

    To jest kod który porusza potworkami (Poprzedni działał poprawnie ale musiałem wtedy dużo zmiennych narąbać)

     

    void setmove()
    {
    int a;
    int b;
    int hyp=0;
    for (a=0;a<11;a++)//y
         {
              for (b=0;b<20;b++)//x
              {
                                if (lvl[a][b]==2)
                                {             
                                              if (a==y+1 or a==y+2 or a==y+3 or a==y+4)
                                              {
                                                 if(lvl[a+1][b]==0)
                                                 {
                                                   lvl[a][b]=0;
                                                   lvl[a+1][b]=2;                                     
                                                 }
                                              }
                                              else
                                              if (a==y-1 or a==y-2 or a==y-3 or a==y-4)
                                              {
                                                 if(lvl[a-1][b]==0)
                                                 {
                                                   lvl[a][b]=0;
                                                   lvl[a-1][b]=2;                                     
                                                 }
                                              }
                                              else
                                              if (b==x+1 or b==x+2 or b==x+3 or b==x+4)
                                              {
                                                 if(lvl[a][b+1]==0)
                                                 {
                                                   lvl[a][b]=0;
                                                   lvl[a][b+1]=2;                                     
                                                 }
                                              }
                                              else
                                              if (b==x-1 or b==x-2 or b==x-3 or b==x-4)
                                              {
                                                 if(lvl[a][b-1]==0)
                                                 {
                                                   lvl[a][b]=0;
                                                   lvl[a][b-1]=2;                                     
                                                 }
                                              }                             
                                }
                                
              }
         }          
    }

     

    Działa on co klik klawisza. Tera pytanie, co w nim źle zrobiłem że wrogowie się oddalają i teleportują ?

    Plansza jest przedstawiona na tablicy, mam kod który ją zamienia na "rysunek"

×
×
  • Dodaj nową pozycję...