Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 12272 for code


Ignore:
Timestamp:
Apr 4, 2019, 3:33:04 PM (5 years ago)
Author:
rueegseb
Message:

overload setnewTarget for Argument Vecor3 and implementation of the red ghost character

Location:
code/branches/3DPacman_FS19/src/modules/pacman
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • code/branches/3DPacman_FS19/src/modules/pacman/PacmanGhost.cc

    r12259 r12272  
    130130            while (lockmove){};
    131131            lockmove=true;
    132 
    133             if(this.colour=1){
    134                 //calculate new goal
    135 
    136             }
    137 
    138             else if(this.colour=2){
    139 
     132            int goal_x = 0;     // faraway goal to dertmine the direction of the target
     133            int goal_z =0;   
     134
     135            if(this.colour=1){//follow pacman
     136                Vector3 newTar = getShortestPath(actuelposition, currentPosition) //acutuelPosition: ghost, currentPosition: Pacman
     137                 setnewTarget(newTar)
     138
     139            }
     140            //die uebrigen charakteren verhalten sich noch random
     141            /*else if(this.colour=2){
    140142            }
    141143
     
    146148            else if(this.colour=4){
    147149
    148             }
    149 
    150             getShortestPath(actuelposition, goal_x, goal_z)
    151             //setnewTarget
    152         }
    153         /*
    154         //Check on which position the ghost has arrived and set new target
    155          else{
    156             while(lockmove){};
    157             lockmove = true;
    158 
    159             if(findpos(actuelposition,possibleposition[0])){
    160                 setnewTarget(1,17,19);
    161             }
    162             else if(findpos(actuelposition,possibleposition[1])){
    163                 setnewTarget(0,2);
    164             }
    165             else if(findpos(actuelposition,possibleposition[2])){
    166                         setnewTarget(1,3);
    167             }
    168             else if(findpos(actuelposition,possibleposition[3])){
    169                             setnewTarget(2,4,5);
    170             }
    171             else if(findpos(actuelposition,possibleposition[4])){
    172                                 setnewTarget(3,6);
    173             }
    174             else if(findpos(actuelposition,possibleposition[5])){
    175                 setnewTarget(3,7);
    176             }
    177             else if(findpos(actuelposition,possibleposition[6])){
    178                 setnewTarget(4,9,26);
    179             }
    180             else if(findpos(actuelposition,possibleposition[7])){
    181                 setnewTarget(5,8);
    182             }
    183             else if(findpos(actuelposition,possibleposition[8])){
    184                 setnewTarget(7,9);
    185             }
    186             else if(findpos(actuelposition,possibleposition[9])){
    187                 setnewTarget(6,8,10,38);
    188             }
    189             else if(findpos(actuelposition,possibleposition[10])){
    190                 setnewTarget(9,11,45);
    191             }
    192             else if(findpos(actuelposition,possibleposition[11])){
    193                 setnewTarget(10,12,13);
    194             }
    195             else if(findpos(actuelposition,possibleposition[12])){
    196                 setnewTarget(11,14);
    197             }
    198             else if(findpos(actuelposition,possibleposition[13])){
    199                 setnewTarget(11,14,16,61);
    200             }
    201             else if(findpos(actuelposition,possibleposition[14])){
    202                 setnewTarget(12,13,15);
    203             }
    204             else if(findpos(actuelposition,possibleposition[15])){
    205                 setnewTarget(14,16);
    206             }
    207             else if(findpos(actuelposition,possibleposition[16])){
    208                 setnewTarget(13,15,62);
    209             }
    210             else if(findpos(actuelposition,possibleposition[17])){
    211                 setnewTarget(0,25);
    212             }
    213             else if(findpos(actuelposition,possibleposition[18])){
    214                 setnewTarget(19,24);
    215             }
    216             else if(findpos(actuelposition,possibleposition[19])){
    217                 setnewTarget(0,18,20);
    218             }
    219             else if(findpos(actuelposition,possibleposition[20])){
    220                 setnewTarget(19,21);
    221             }
    222             else if(findpos(actuelposition,possibleposition[21])){
    223                 setnewTarget(20,22);
    224             }
    225             else if(findpos(actuelposition,possibleposition[22])){
    226                 setnewTarget(21,23,31);
    227             }
    228             else if(findpos(actuelposition,possibleposition[23])){
    229                 setnewTarget(22,30);
    230             }
    231             else if(findpos(actuelposition,possibleposition[24])){
    232                 setnewTarget(18,29);
    233             }
    234             else if(findpos(actuelposition,possibleposition[25])){
    235                 setnewTarget(17,26);
    236             }
    237             else if(findpos(actuelposition,possibleposition[26])){
    238                 setnewTarget(6,25,27);
    239             }
    240             else if(findpos(actuelposition,possibleposition[27])){
    241                 setnewTarget(26,28,37);
    242             }
    243             else if(findpos(actuelposition,possibleposition[28])){
    244                 setnewTarget(27,29,36);
    245             }
    246             else if(findpos(actuelposition,possibleposition[29])){
    247                 setnewTarget(24,28,30);
    248             }
    249             else if(findpos(actuelposition,possibleposition[30])){
    250                 setnewTarget(23,29,34);
    251             }
    252             else if(findpos(actuelposition,possibleposition[31])){
    253                 setnewTarget(22,32);
    254             }
    255             else if(findpos(actuelposition,possibleposition[32])){
    256                 setnewTarget(31,33);
    257             }
    258             else if(findpos(actuelposition,possibleposition[33])){
    259                 setnewTarget(32,34);
    260             }
    261             else if(findpos(actuelposition,possibleposition[34])){
    262                 setnewTarget(30,33,35,42);
    263             }
    264             else if(findpos(actuelposition,possibleposition[35])){
    265                 setnewTarget(34,36,41);
    266             }
    267             else if(findpos(actuelposition,possibleposition[36])){
    268                 setnewTarget(28,35);
    269             }
    270             else if(findpos(actuelposition,possibleposition[37])){
    271                 setnewTarget(27,38);
    272             }
    273             else if(findpos(actuelposition,possibleposition[38])){
    274                 setnewTarget(9,37,39);
    275             }
    276             else if(findpos(actuelposition,possibleposition[39])){
    277                 setnewTarget(38,40,45);
    278             }
    279             else if(findpos(actuelposition,possibleposition[40])){
    280                 setnewTarget(39,41); //Shouldn't be able to return in center
    281             }
    282             else if(findpos(actuelposition,possibleposition[41])){
    283                 setnewTarget(35,43);
    284             }
    285             else if(findpos(actuelposition,possibleposition[42])){
    286                 setnewTarget(34,43,54);
    287             }
    288             else if(findpos(actuelposition,possibleposition[43])){
    289                 setnewTarget(41,46);
    290             }
    291             else if(findpos(actuelposition,possibleposition[44])){
    292                 setnewTarget(40,66);
    293             }
    294             else if(findpos(actuelposition,possibleposition[45])){
    295                 setnewTarget(10,39,49);
    296             }
    297             else if(findpos(actuelposition,possibleposition[46])){
    298                 setnewTarget(43,47);
    299             }
    300             else if(findpos(actuelposition,possibleposition[47])){
    301                 setnewTarget(46,52,66);
    302             }
    303             else if(findpos(actuelposition,possibleposition[48])){
    304                 setnewTarget(49,51,66);
    305             }
    306             else if(findpos(actuelposition,possibleposition[49])){
    307                 setnewTarget(45,48);
    308             }
    309             else if(findpos(actuelposition,possibleposition[50])){
    310                 setnewTarget(51,61);
    311             }
    312             else if(findpos(actuelposition,possibleposition[51])){
    313                 setnewTarget(48,50);
    314             }
    315             else if(findpos(actuelposition,possibleposition[52])){
    316                 setnewTarget(47,53);
    317             }
    318             else if(findpos(actuelposition,possibleposition[53])){
    319                 setnewTarget(52,58);
    320             }
    321             else if(findpos(actuelposition,possibleposition[54])){
    322                 setnewTarget(42,55,57);
    323             }
    324             else if(findpos(actuelposition,possibleposition[55])){
    325                 setnewTarget(54,56);
    326             }
    327             else if(findpos(actuelposition,possibleposition[56])){
    328                 setnewTarget(55,57,65);
    329             }
    330             else if(findpos(actuelposition,possibleposition[57])){
    331                 setnewTarget(54,56,58,64);
    332             }
    333             else if(findpos(actuelposition,possibleposition[58])){
    334                 setnewTarget(53,57,59);
    335             }
    336             else if(findpos(actuelposition,possibleposition[59])){
    337                 setnewTarget(58,59,63);
    338             }
    339             else if(findpos(actuelposition,possibleposition[60])){
    340                 setnewTarget(59,61,62);
    341             }
    342             else if(findpos(actuelposition,possibleposition[61])){
    343                 setnewTarget(13,50,60);
    344             }
    345             else if(findpos(actuelposition,possibleposition[62])){
    346                 setnewTarget(16,60);
    347             }
    348             else if(findpos(actuelposition,possibleposition[63])){
    349                 setnewTarget(59,64);
    350             }
    351             else if(findpos(actuelposition,possibleposition[64])){
    352                 setnewTarget(57,63,65);
    353             }
    354             else if(findpos(actuelposition,possibleposition[65])){
    355                 setnewTarget(56,64);
    356             }
    357             else if(findpos(actuelposition,possibleposition[66])){
    358                 setnewTarget(47,48);
     150            }*/
     151           
     152       
     153       
     154            //Check on which position the ghost has arrived and set new target
     155            else if{(this.colour=2) || (this.colour=3) || (this.colour=4)}
     156                while(lockmove){};
     157                lockmove = true;
     158
     159                if(findpos(actuelposition,possibleposition[0])){
     160                        setnewTarget(1,17,19);
     161                }
     162                else if(findpos(actuelposition,possibleposition[1])){
     163                        setnewTarget(0,2);
     164                }
     165                else if(findpos(actuelposition,possibleposition[2])){
     166                        setnewTarget(1,3);
     167                }
     168                else if(findpos(actuelposition,possibleposition[3])){
     169                            setnewTarget(2,4,5);
     170                }
     171                else if(findpos(actuelposition,possibleposition[4])){
     172                                setnewTarget(3,6);
     173                }
     174                else if(findpos(actuelposition,possibleposition[5])){
     175                        setnewTarget(3,7);
     176                }
     177                else if(findpos(actuelposition,possibleposition[6])){
     178                    setnewTarget(4,9,26);
     179                }
     180                else if(findpos(actuelposition,possibleposition[7])){
     181                    setnewTarget(5,8);
     182                }
     183                else if(findpos(actuelposition,possibleposition[8])){
     184                    setnewTarget(7,9);
     185                }
     186                else if(findpos(actuelposition,possibleposition[9])){
     187                    setnewTarget(6,8,10,38);
     188                }
     189                else if(findpos(actuelposition,possibleposition[10])){
     190                    setnewTarget(9,11,45);
     191                }
     192                else if(findpos(actuelposition,possibleposition[11])){
     193                    setnewTarget(10,12,13);
     194                }
     195                else if(findpos(actuelposition,possibleposition[12])){
     196                    setnewTarget(11,14);
     197                }
     198                else if(findpos(actuelposition,possibleposition[13])){
     199                    setnewTarget(11,14,16,61);
     200                }
     201                else if(findpos(actuelposition,possibleposition[14])){
     202                    setnewTarget(12,13,15);
     203                }
     204                else if(findpos(actuelposition,possibleposition[15])){
     205                    setnewTarget(14,16);
     206                }
     207                else if(findpos(actuelposition,possibleposition[16])){
     208                    setnewTarget(13,15,62);
     209                }
     210                else if(findpos(actuelposition,possibleposition[17])){
     211                    setnewTarget(0,25);
     212                }
     213                else if(findpos(actuelposition,possibleposition[18])){
     214                    setnewTarget(19,24);
     215                }
     216                else if(findpos(actuelposition,possibleposition[19])){
     217                    setnewTarget(0,18,20);
     218                }
     219                else if(findpos(actuelposition,possibleposition[20])){
     220                    setnewTarget(19,21);
     221                }
     222                else if(findpos(actuelposition,possibleposition[21])){
     223                    setnewTarget(20,22);
     224                }
     225                else if(findpos(actuelposition,possibleposition[22])){
     226                    setnewTarget(21,23,31);
     227                }
     228                else if(findpos(actuelposition,possibleposition[23])){
     229                    setnewTarget(22,30);
     230                }
     231                else if(findpos(actuelposition,possibleposition[24])){
     232                    setnewTarget(18,29);
     233                }
     234                else if(findpos(actuelposition,possibleposition[25])){
     235                    setnewTarget(17,26);
     236                }
     237                else if(findpos(actuelposition,possibleposition[26])){
     238                    setnewTarget(6,25,27);
     239                }
     240                else if(findpos(actuelposition,possibleposition[27])){
     241                    setnewTarget(26,28,37);
     242                }
     243                else if(findpos(actuelposition,possibleposition[28])){
     244                    setnewTarget(27,29,36);
     245                }
     246                else if(findpos(actuelposition,possibleposition[29])){
     247                    setnewTarget(24,28,30);
     248                }
     249                else if(findpos(actuelposition,possibleposition[30])){
     250                    setnewTarget(23,29,34);
     251                }
     252                else if(findpos(actuelposition,possibleposition[31])){
     253                    setnewTarget(22,32);
     254                }
     255                else if(findpos(actuelposition,possibleposition[32])){
     256                    setnewTarget(31,33);
     257                }
     258                else if(findpos(actuelposition,possibleposition[33])){
     259                    setnewTarget(32,34);
     260                }
     261                else if(findpos(actuelposition,possibleposition[34])){
     262                    setnewTarget(30,33,35,42);
     263                }
     264                else if(findpos(actuelposition,possibleposition[35])){
     265                    setnewTarget(34,36,41);
     266                }
     267                else if(findpos(actuelposition,possibleposition[36])){
     268                    setnewTarget(28,35);
     269                }
     270                else if(findpos(actuelposition,possibleposition[37])){
     271                    setnewTarget(27,38);
     272                }
     273                else if(findpos(actuelposition,possibleposition[38])){
     274                    setnewTarget(9,37,39);
     275                }
     276                else if(findpos(actuelposition,possibleposition[39])){
     277                    setnewTarget(38,40,45);
     278                }
     279                else if(findpos(actuelposition,possibleposition[40])){
     280                    setnewTarget(39,41); //Shouldn't be able to return in center
     281                }
     282                else if(findpos(actuelposition,possibleposition[41])){
     283                    setnewTarget(35,43);
     284                }
     285                else if(findpos(actuelposition,possibleposition[42])){
     286                    setnewTarget(34,43,54);
     287                }
     288                else if(findpos(actuelposition,possibleposition[43])){
     289                    setnewTarget(41,46);
     290                }
     291                else if(findpos(actuelposition,possibleposition[44])){
     292                    setnewTarget(40,66);
     293                }
     294                else if(findpos(actuelposition,possibleposition[45])){
     295                    setnewTarget(10,39,49);
     296                }
     297                else if(findpos(actuelposition,possibleposition[46])){
     298                    setnewTarget(43,47);
     299                }
     300                else if(findpos(actuelposition,possibleposition[47])){
     301                    setnewTarget(46,52,66);
     302                }
     303                else if(findpos(actuelposition,possibleposition[48])){
     304                    setnewTarget(49,51,66);
     305                }
     306                else if(findpos(actuelposition,possibleposition[49])){
     307                    setnewTarget(45,48);
     308                }
     309                else if(findpos(actuelposition,possibleposition[50])){
     310                    setnewTarget(51,61);
     311                }
     312                else if(findpos(actuelposition,possibleposition[51])){
     313                    setnewTarget(48,50);
     314                }
     315                else if(findpos(actuelposition,possibleposition[52])){
     316                    setnewTarget(47,53);
     317                }
     318                else if(findpos(actuelposition,possibleposition[53])){
     319                    setnewTarget(52,58);
     320                }
     321                else if(findpos(actuelposition,possibleposition[54])){
     322                    setnewTarget(42,55,57);
     323                }
     324                else if(findpos(actuelposition,possibleposition[55])){
     325                    setnewTarget(54,56);
     326                }
     327                else if(findpos(actuelposition,possibleposition[56])){
     328                    setnewTarget(55,57,65);
     329                }
     330                else if(findpos(actuelposition,possibleposition[57])){
     331                    setnewTarget(54,56,58,64);
     332                }
     333                else if(findpos(actuelposition,possibleposition[58])){
     334                    setnewTarget(53,57,59);
     335                }
     336                else if(findpos(actuelposition,possibleposition[59])){
     337                    setnewTarget(58,59,63);
     338                }
     339                else if(findpos(actuelposition,possibleposition[60])){
     340                    setnewTarget(59,61,62);
     341                }
     342                else if(findpos(actuelposition,possibleposition[61])){
     343                    setnewTarget(13,50,60);
     344                }
     345                else if(findpos(actuelposition,possibleposition[62])){
     346                    setnewTarget(16,60);
     347                }
     348                else if(findpos(actuelposition,possibleposition[63])){
     349                    setnewTarget(59,64);
     350                }
     351                else if(findpos(actuelposition,possibleposition[64])){
     352                    setnewTarget(57,63,65);
     353                }
     354                else if(findpos(actuelposition,possibleposition[65])){
     355                    setnewTarget(56,64);
     356                }
     357                else if(findpos(actuelposition,possibleposition[66])){
     358                    setnewTarget(47,48);
    359359            }
    360360
     
    364364                lockmove = false;
    365365            }
    366         */
     366        }
     367    }
     368    //set a specific newTarget
     369    void PacmanGhost::setnewTarget(Vector3 newTarget){
     370
     371        this->target_x = newTarget.x;
     372        this->target_z = newTarget.;
     373        this->ismoving = true;
    367374    }
    368375
  • code/branches/3DPacman_FS19/src/modules/pacman/PacmanGhost.h

    r12259 r12272  
    7373            Vector3 actuelposition;
    7474            bool ismoving = false;
    75             int target_x = 0;   // next step
    76             int target_z = 0;
    77             int goal_x = 0;     // faraway goal to dertmine the direction of the target
    78             int goal_z =0;   
     75            int target_x = 0;   // one step
     76            int target_z = 0;
    7977
    8078            bool lockmove = false;
     
    8280            /*
    8381            colour=
    84             1: red
    85             2: blue
    86             3: orange
    87             4: pink
     82            1: red:     follow
     83            2: pink:    get infront of him   
     84            3: blue:    patrol an area
     85            4: orange:  get away of Pacman
    8886            */
    8987            void setnewTarget(int firstdec);
Note: See TracChangeset for help on using the changeset viewer.