コード例 #1
0
Terrain MapHandler::getNextTerrain()
{
    //find the appropriate tile graphic and store it
    Terrain temp = Terrain();
    Frame frame;
    switch(map[xTer][yTer])
    {
        //trees (picks from a selection of trees)
        case 'T':
            frame = Frame(0, xTer*TILES_X, yTer*TILES_Y+UI_HEIGHT, 32, 64, 0, 0, 32, 64, SHEET_TERRAIN);
            frame.addStandBox(5, 40, 22, 20);
            temp.addFrame(frame);
            break;
            
        case '0':
            frame = Frame(0, xTer*TILES_X, yTer*TILES_Y+UI_HEIGHT, 16, 16, 128, 0, 16, 16, SHEET_TERRAIN);
            frame.addStandBox(0, 0, 16, 16);
            temp.addFrame(frame);
            break;
        
        case '1':
            frame = Frame(0, xTer*TILES_X, yTer*TILES_Y+UI_HEIGHT, 16, 16, 144, 0, 16, 16, SHEET_TERRAIN);
            frame.addStandBox(0, 0, 16, 16);
            temp.addFrame(frame);
            break;
        
        case '2':
            frame = Frame(0, xTer*TILES_X, yTer*TILES_Y+UI_HEIGHT, 16, 16, 160, 0, 16, 16, SHEET_TERRAIN);
            frame.addStandBox(0, 0, 16, 16);
            temp.addFrame(frame);
            break;
        
        case '3':
            frame = Frame(0, xTer*TILES_X, yTer*TILES_Y+UI_HEIGHT, 16, 16, 176, 0, 16, 16, SHEET_TERRAIN);
            frame.addStandBox(0, 0, 16, 16);
            temp.addFrame(frame);
            break;
        
        case '4':
            frame = Frame(0, xTer*TILES_X, yTer*TILES_Y+UI_HEIGHT, 16, 16, 128, 16, 16, 16, SHEET_TERRAIN);
            frame.addStandBox(0, 0, 16, 16);
            temp.addFrame(frame);
            break;
        
        case '5':
            frame = Frame(0, xTer*TILES_X, yTer*TILES_Y+UI_HEIGHT, 16, 16, 144, 16, 16, 16, SHEET_TERRAIN);
            frame.addStandBox(0, 0, 16, 16);
            temp.addFrame(frame);
            break;
        
        case '6':
            frame = Frame(0, xTer*TILES_X, yTer*TILES_Y+UI_HEIGHT, 16, 16, 160, 16, 16, 16, SHEET_TERRAIN);
            frame.addStandBox(0, 0, 16, 16);
            temp.addFrame(frame);
            break;
        
        case '7':
            frame = Frame(0, xTer*TILES_X, yTer*TILES_Y+UI_HEIGHT, 16, 16, 176, 16, 16, 16, SHEET_TERRAIN);
            frame.addStandBox(0, 0, 16, 16);
            temp.addFrame(frame);
            break;
            
        case '8':
            frame = Frame(0, xTer*TILES_X, yTer*TILES_Y+UI_HEIGHT, 16, 16, 128, 32, 16, 16, SHEET_TERRAIN);
            frame.addStandBox(0, 0, 16, 16);
            temp.addFrame(frame);
            break;
        
        case '9':
            frame = Frame(0, xTer*TILES_X, yTer*TILES_Y+UI_HEIGHT, 16, 16, 144, 32, 16, 16, SHEET_TERRAIN);
            frame.addStandBox(0, 0, 16, 16);
            temp.addFrame(frame);
            break;
        
        case 'A':
            frame = Frame(0, xTer*TILES_X, yTer*TILES_Y+UI_HEIGHT, 16, 16, 160, 32, 16, 16, SHEET_TERRAIN);
            frame.addStandBox(0, 0, 16, 16);
            temp.addFrame(frame);
            break;
        
        case 'B':
            frame = Frame(0, xTer*TILES_X, yTer*TILES_Y+UI_HEIGHT, 16, 16, 176, 32, 16, 16, SHEET_TERRAIN);
            frame.addStandBox(0, 0, 16, 16);
            temp.addFrame(frame);
            break;
        
        case 'C':
            frame = Frame(0, xTer*TILES_X, yTer*TILES_Y+UI_HEIGHT, 16, 16, 128, 48, 16, 16, SHEET_TERRAIN);
            frame.addStandBox(0, 0, 16, 16);
            temp.addFrame(frame);
            break;
        
        case 'D':
            frame = Frame(0, xTer*TILES_X, yTer*TILES_Y+UI_HEIGHT, 16, 16, 144, 48, 16, 16, SHEET_TERRAIN);
            frame.addStandBox(0, 0, 16, 16);
            temp.addFrame(frame);
            break;
        
        case 'E':
            frame = Frame(0, xTer*TILES_X, yTer*TILES_Y+UI_HEIGHT, 16, 16, 160, 48, 16, 16, SHEET_TERRAIN);
            frame.addStandBox(0, 0, 16, 16);
            temp.addFrame(frame);
            break;
        
        case 'F':
            frame = Frame(0, xTer*TILES_X, yTer*TILES_Y+UI_HEIGHT, 16, 16, 176, 48, 16, 16, SHEET_TERRAIN);
            frame.addStandBox(0, 0, 16, 16);
            temp.addFrame(frame);
            break;
    }
    
    //increment x/y counters
    xTer++;
    if (xTer >= 30)
    {
        xTer = 0;
        yTer++;
    }
    
    return temp;
}