亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? g09-01.cpp

?? 模擬游戲中人的行走
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
    g_people[0][0][1] = SDL_LoadBMP( "hero1u2.bmp" );
    g_people[0][0][2] = SDL_LoadBMP( "hero1u3.bmp" );
    g_people[0][0][3] = SDL_LoadBMP( "hero1u4.bmp" );
    g_people[0][1][0] = SDL_LoadBMP( "hero1r1.bmp" );
    g_people[0][1][1] = SDL_LoadBMP( "hero1r2.bmp" );
    g_people[0][1][2] = SDL_LoadBMP( "hero1r3.bmp" );
    g_people[0][1][3] = SDL_LoadBMP( "hero1r4.bmp" );
    g_people[0][2][0] = SDL_LoadBMP( "hero1d1.bmp" );
    g_people[0][2][1] = SDL_LoadBMP( "hero1d2.bmp" );
    g_people[0][2][2] = SDL_LoadBMP( "hero1d3.bmp" );
    g_people[0][2][3] = SDL_LoadBMP( "hero1d4.bmp" );
    g_people[0][3][0] = SDL_LoadBMP( "hero1l1.bmp" );
    g_people[0][3][1] = SDL_LoadBMP( "hero1l2.bmp" );
    g_people[0][3][2] = SDL_LoadBMP( "hero1l3.bmp" );
    g_people[0][3][3] = SDL_LoadBMP( "hero1l4.bmp" );

    g_people[1][0][0] = SDL_LoadBMP( "hero2u.bmp" );
    g_people[1][0][1] = g_people[1][0][0];
    g_people[1][0][2] = g_people[1][0][0];
    g_people[1][0][3] = g_people[1][0][0];
    g_people[1][1][0] = SDL_LoadBMP( "hero2r.bmp" );
    g_people[1][1][1] = g_people[1][1][0];
    g_people[1][1][2] = g_people[1][1][0];
    g_people[1][1][3] = g_people[1][1][0];
    g_people[1][2][0] = SDL_LoadBMP( "hero2d.bmp" );
    g_people[1][2][1] = g_people[1][2][0];
    g_people[1][2][2] = g_people[1][2][0];
    g_people[1][2][3] = g_people[1][2][0];
    g_people[1][3][0] = SDL_LoadBMP( "hero2l.bmp" );
    g_people[1][3][1] = g_people[1][3][0];
    g_people[1][3][2] = g_people[1][3][0];
    g_people[1][3][3] = g_people[1][3][0];

    g_people[2][0][0] = SDL_LoadBMP( "hero3u.bmp" );
    g_people[2][0][1] = g_people[2][0][0];
    g_people[2][0][2] = g_people[2][0][0];
    g_people[2][0][3] = g_people[2][0][0];
    g_people[2][1][0] = SDL_LoadBMP( "hero3r.bmp" );
    g_people[2][1][1] = g_people[2][1][0];
    g_people[2][1][2] = g_people[2][1][0];
    g_people[2][1][3] = g_people[2][1][0];
    g_people[2][2][0] = SDL_LoadBMP( "hero3d.bmp" );
    g_people[2][2][1] = g_people[2][2][0];
    g_people[2][2][2] = g_people[2][2][0];
    g_people[2][2][3] = g_people[2][2][0];
    g_people[2][3][0] = SDL_LoadBMP( "hero3l.bmp" );
    g_people[2][3][1] = g_people[2][3][0];
    g_people[2][3][2] = g_people[2][3][0];
    g_people[2][3][3] = g_people[2][3][0];


    // items
    g_items[0] = SDL_LoadBMP( "wallh.bmp" );
    g_items[1] = SDL_LoadBMP( "wallv.bmp" );
    g_items[2] = SDL_LoadBMP( "walltl.bmp" );
    g_items[3] = SDL_LoadBMP( "walltr.bmp" );
    g_items[4] = SDL_LoadBMP( "wallbl.bmp" );
    g_items[5] = SDL_LoadBMP( "wallbr.bmp" );

    g_items[6] = SDL_LoadBMP( "wepicon-axe.bmp" );
    g_items[7] = SDL_LoadBMP( "wepicon-bow.bmp" );
    g_items[8] = SDL_LoadBMP( "wepicon-knife.bmp" );
    g_items[9] = SDL_LoadBMP( "wepicon-mace.bmp" );
    g_items[10] = SDL_LoadBMP( "wepicon-spear.bmp" );
    g_items[11] = SDL_LoadBMP( "wepicon-sword.bmp" );
    g_items[12] = SDL_LoadBMP( "wepicon-helm.bmp" );
    g_items[13] = SDL_LoadBMP( "wepicon-shield.bmp" );

    g_statusbar = SDL_LoadBMP( "bar.bmp" );
    g_verticalbar = SDL_LoadBMP( "vbar.bmp" );
    g_youlose = SDL_LoadBMP( "lose.bmp" );


    // make it so that purple pixels are transparent.
    for( x = 0; x < TILES; x++ )
    {
        SDL_SetColorKey( g_tiles[x], SDL_SRCCOLORKEY, 
                         SDL_MapRGB( g_tiles[x]->format, 255, 0, 255 ) );
    }


    for( x = 0; x < ITEMS; x++ )
    {
        SDL_SetColorKey( g_items[x], SDL_SRCCOLORKEY, 
                         SDL_MapRGB( g_items[x]->format, 255, 0, 255 ) );
    }

    
    for( x = 0; x < PEOPLE; x++ )
    {
        for( d = 0; d < DIRECTIONS; d++ )
        {
            for( f = 0; f < FRAMES; f++ )
            {
                SDL_SetColorKey( g_people[x][d][f], 
                                 SDL_SRCCOLORKEY, 
                                 SDL_MapRGB( g_people[x][d][f]->format, 
                                             255, 0, 255 ) );
            }
        }
    }


    // set up the item templates
    for( x = 0; x < ITEMS; x++ )
    {
        g_itemtemplates[x].SetType( x );
        g_itemtemplates[x].SetGraphic( g_items[x] );
    }

    // make the walls block
    for( x = 0; x < 6; x++ )
    {
        g_itemtemplates[x].SetBlock( true );
    }

    // axe
    g_itemtemplates[6].SetSpeed( 1500 );
    g_itemtemplates[6].SetStrength( 15 );

    // bow
    g_itemtemplates[7].SetSpeed( 750 );
    g_itemtemplates[7].SetStrength( 5 );

    // knife
    g_itemtemplates[8].SetSpeed( 500 );
    g_itemtemplates[8].SetStrength( 4 );

    // mace
    g_itemtemplates[9].SetSpeed( 1250 );
    g_itemtemplates[9].SetStrength( 12 );

    // spear
    g_itemtemplates[10].SetSpeed( 1250 );
    g_itemtemplates[10].SetStrength( 13 );

    // sword
    g_itemtemplates[11].SetSpeed( 1500 );
    g_itemtemplates[11].SetStrength( 20 );

    // helm
    g_itemtemplates[12].SetStrength( 30 );
    g_itemtemplates[12].SetArmor( true );

    // shield
    g_itemtemplates[13].SetStrength( 40 );
    g_itemtemplates[13].SetArmor( true );

    
    
    for( x = 0; x < PEOPLE; x++ )
    {
        // set the person type
        g_persontemplates[x].SetPersonType( x );

        for( d = 0; d < DIRECTIONS; d++ )
        {
            for( f = 0; f < FRAMES; f++ )
            {
                // set the person graphic
                g_persontemplates[x].SetGraphic( g_people[x][d][f], d, f );
            }
        }
    }

    g_persontemplates[1].SetArmor( 10 );
    g_persontemplates[1].SetHealth( 20 );
    g_persontemplates[1].SetAttackModifier( -500 );

    g_persontemplates[2].SetArmor( 15 );
    g_persontemplates[2].SetHealth( 30 );
    g_persontemplates[2].SetAttackModifier( -300 );

    // load the map
    SetNewMap( "default.map" );
}


Map* LoadMap( char* p_filename )
{
    TileMap* t = new TileMap( 64, 64, 2, g_tiles );
    t->LoadFromFile( p_filename );
    return t;
}


void SetNewMap( char* p_filename )
{
    int x;
    Map* newmap;
        
    // load the new map
    newmap = LoadMap( p_filename );

    // reset the people array count. Note that it is safe
    // to write over all of the persons in the array, 
    // since the map is deleted after the next loop,
    // and when the map is deleted, all the items and
    // people on the map are deleted as well.
    g_peoplecount = 0;
    
    // get all the people from the map, and store
    // them in the array.
    for( x = 0; x < newmap->GetNumberOfCells(); x++ )
    {
        if( newmap->GetPerson( x ) != 0 )
        {
            AddPersonToArray( newmap->GetPerson( x ) );
        }
    }

    // check to see if a map already exists.
    if( g_currentmap != 0 )
    {
        // delete the map
        delete g_currentmap;
    }

    g_currentmap = newmap;
    g_currentplayer = newmap->GetViewer();
}


// ============================================================================
//  Main Loop
// ============================================================================
int main( int argc, char* argv[] )
{
    // declare coordinates.
    int x, y;
    
    // declare event holder
    SDL_Event event;

    // initialize the video system.
    SDL_Init( SDL_INIT_VIDEO | SDL_INIT_TIMER );
    SDL_WM_SetCaption( PROGRAM_NAME, 0); 
    SDL_EnableKeyRepeat( SDL_DEFAULT_REPEAT_DELAY, 
                         SDL_DEFAULT_REPEAT_INTERVAL );

    // set our at exit function
    atexit( SDL_Quit );

    // set the video mode.
    g_window = SDL_SetVideoMode( WIDTH, HEIGHT, 0, SDL_ANYFORMAT );


    Init();
    
    while( 1 )
    {
        //look for an event
        if( SDL_PollEvent( &event ) )
        {
            //an event was found
            if( event.type == SDL_QUIT ) 
                break;
            if( event.type == SDL_MOUSEBUTTONDOWN ) 
            {
                // get the mouse state.
                SDL_GetMouseState( &x, &y );
            }
            if( event.type == SDL_MOUSEBUTTONUP ) 
            {
                // get the mouse state.
                SDL_GetMouseState( &x, &y );
            }
            if( event.type == SDL_KEYDOWN )
            {
                // a key was pressed.
                if( event.key.keysym.sym == SDLK_ESCAPE )
                {
                    // if ESC was pressed, quit the program.
                    SDL_Event quit;
                    quit.type = SDL_QUIT;
                    SDL_PushEvent( &quit );
                }


                if( event.key.keysym.sym == SDLK_LEFTBRACKET )
                {
                    // move to the previous item
                    g_currentplayer->PreviousWeapon();
                }
                if( event.key.keysym.sym == SDLK_RIGHTBRACKET )
                {
                    // move to the next item
                    g_currentplayer->NextWeapon();
                }

                if( event.key.keysym.sym == SDLK_RETURN )
                {
                    // pick up the current item
                    PickUp( g_currentplayer );
                }


                if( event.key.keysym.sym == SDLK_SPACE )
                {
                    // the player is attacking
                    Attack( g_currentplayer );
                }


                // toggle cheat mode
                if( event.key.keysym.sym == SDLK_c )
                {
                    g_cheat = !g_cheat;
                }


                int direction = -1;
                if( event.key.keysym.sym == SDLK_UP )
                    direction = 0;
                if( event.key.keysym.sym == SDLK_DOWN )
                    direction = 2;
                if( event.key.keysym.sym == SDLK_LEFT )
                    direction = 3;
                if( event.key.keysym.sym == SDLK_RIGHT )
                    direction = 1;

                if( direction != -1 )
                {
                    g_currentplayer->SetDirection( direction );
                    g_currentmap->Move( g_currentplayer, direction );
                }
            }

            if( event.type == SDL_KEYUP )
            {
                // a key was released.



            }
        }   // end event loop.


        // clear the screen to black.
        SDL_FillRect( g_window, NULL, SDL_MapRGB( g_window->format, 0, 0, 0 ) );

        if( g_dead == false )
        {
            // perform AI calculations
            PerformAI( SDL_GetTicks() );

            // check for dead people, and remove them
            CheckForDeadPeople();

            // player is cheating!
            if( g_cheat == true )
            {
                g_currentplayer->SetAttackTime( 0 );
            }


            // draw the map
            if( g_currentmap != 0 )
            {
                g_currentmap->Draw( g_window, WIDTH/2, HEIGHT/2 );
            }

            // draw the statusbar        
            DrawStatus();
        }
        else
        {
            SDLBlit( g_youlose, g_window, 0, 0 );
        }


        // update the entire window.
        SDL_UpdateRect( g_window, 0, 0, 0, 0 );
    }
  
    // done
    return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩在线观看一区二区| 日韩美女天天操| 国产日韩欧美制服另类| 久久草av在线| 久久婷婷色综合| 国产成人午夜片在线观看高清观看| 久久久不卡影院| 国产欧美精品国产国产专区| 成人久久久精品乱码一区二区三区| 中文字幕精品一区| 一本色道久久加勒比精品| 亚洲精品菠萝久久久久久久| 在线精品国精品国产尤物884a| 亚洲444eee在线观看| 欧美一区二区三区在| 国产在线看一区| 99精品1区2区| 日韩精品一卡二卡三卡四卡无卡| 欧美岛国在线观看| 国产一区二区成人久久免费影院| 99久久精品国产麻豆演员表| 一区二区日韩av| 日韩欧美综合一区| 国产成人在线免费| 国产精品国产三级国产三级人妇 | 精品久久人人做人人爱| 国产综合久久久久影院| 中文字幕一区二区三区在线不卡| 91在线精品秘密一区二区| 亚洲综合色丁香婷婷六月图片| 日韩一区二区三区四区五区六区| 国产精品无码永久免费888| 91黄色小视频| 欧美aaaaa成人免费观看视频| 日本一区二区视频在线| 欧美久久一区二区| 国产激情视频一区二区三区欧美| 一区二区三区加勒比av| 国内外成人在线| 一区二区三区在线观看视频| 亚洲精品一区二区精华| 欧美影院一区二区三区| 国产福利一区二区| 蜜桃久久久久久| 一区二区三区自拍| 亚洲国产精品国自产拍av| 欧美日韩一二区| 99久久精品国产精品久久| 欧美成人三级在线| 99久久精品国产一区二区三区| 蜜桃91丨九色丨蝌蚪91桃色| 一区二区三区精密机械公司| 亚洲国产精品v| 国产女主播视频一区二区| 亚洲成人久久影院| 欧美韩国一区二区| 欧美一级艳片视频免费观看| 国产精品国产三级国产三级人妇| xnxx国产精品| 69堂国产成人免费视频| 色拍拍在线精品视频8848| 国产一区二区三区免费播放| 日韩av在线播放中文字幕| 亚洲宅男天堂在线观看无病毒| 国产女主播一区| 久久先锋影音av| 日韩欧美一区中文| 欧美一区二区三区爱爱| 欧美视频精品在线观看| 亚洲综合丁香婷婷六月香| 最新不卡av在线| 国产精品久久久久9999吃药| 国产欧美日韩精品一区| 欧美va亚洲va国产综合| 欧美少妇一区二区| 91老师国产黑色丝袜在线| av不卡在线观看| 不卡av免费在线观看| 老司机免费视频一区二区三区| 日韩三级伦理片妻子的秘密按摩| 欧美日产国产精品| 欧美日韩激情一区二区| 欧美日韩电影在线播放| 欧美精品乱码久久久久久| 欧美男人的天堂一二区| 丝袜美腿亚洲色图| 亚洲专区一二三| 五月天中文字幕一区二区| 亚洲成a人v欧美综合天堂下载| 亚洲国产精品麻豆| 亚洲成人av福利| 免费欧美日韩国产三级电影| 免费高清视频精品| 裸体健美xxxx欧美裸体表演| 久久99国产精品久久99果冻传媒| 久久精品av麻豆的观看方式| 亚洲高清久久久| 91色九色蝌蚪| 欧美日韩中文字幕精品| 日韩精品专区在线影院重磅| 国产欧美一区二区在线| 中文字幕一区二区三区av| 亚洲精品成a人| 一区二区在线电影| 一二三区精品视频| 亚洲电影激情视频网站| 久久精品99国产精品日本| 69av一区二区三区| 日韩精品一区二区在线| 久久综合色综合88| 国产精品久久久久久久午夜片| 国产精品青草久久| 亚洲欧美日韩电影| 五月天亚洲婷婷| 国产精品一区在线观看乱码| thepron国产精品| 欧美高清激情brazzers| 欧美精品一区二区三| 亚洲靠逼com| 久久久久88色偷偷免费| 日韩美女精品在线| 奇米影视一区二区三区小说| 成人av在线影院| 欧美日韩高清一区二区三区| 久久久亚洲欧洲日产国码αv| 亚洲乱码国产乱码精品精可以看| 午夜视频一区二区三区| 国产成人精品亚洲日本在线桃色| 欧美在线观看你懂的| 91精品免费在线观看| eeuss鲁片一区二区三区在线看| 色呦呦网站一区| 精品久久一区二区三区| 中文字幕日本乱码精品影院| 麻豆国产91在线播放| 91在线视频在线| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲一区二区精品久久av| 国产乱子轮精品视频| 91超碰这里只有精品国产| 欧美国产国产综合| 乱中年女人伦av一区二区| 精品一区二区三区影院在线午夜| 亚洲综合999| 成人一区二区三区在线观看| 日韩视频123| 天堂一区二区在线| 日本久久电影网| 26uuu色噜噜精品一区| 亚洲v精品v日韩v欧美v专区| 99久久精品免费观看| 精品欧美黑人一区二区三区| 亚洲人妖av一区二区| 国产成人精品一区二区三区网站观看| 51精品久久久久久久蜜臀| 国产精品久久久久久久岛一牛影视| 欧美电影一区二区| 国产精品国产三级国产有无不卡| 国产精品一二三四五| 91精品国产91久久久久久最新毛片 | 国产美女主播视频一区| 欧美日韩国产欧美日美国产精品| 亚洲免费色视频| 91免费小视频| 亚洲人被黑人高潮完整版| 国产精品一二三四| 久久亚区不卡日本| 久久精品二区亚洲w码| 欧美一级欧美一级在线播放| 无吗不卡中文字幕| 91久久精品网| 亚洲制服丝袜av| 欧美午夜电影一区| 色视频一区二区| 香蕉影视欧美成人| 欧美日韩精品欧美日韩精品一 | 午夜精品一区二区三区免费视频| 在线看国产一区二区| 又紧又大又爽精品一区二区| 91国偷自产一区二区三区成为亚洲经典| 亚洲欧洲99久久| 色婷婷精品大在线视频| 亚洲日本在线看| 欧美日本一区二区三区| 666欧美在线视频| 麻豆精品一二三| 亚洲精品在线电影| 国产成人免费视频一区| 国产欧美日韩三级| 99国产精品久| 亚洲摸摸操操av| 欧美色窝79yyyycom| 日韩av一级片| 欧美变态凌虐bdsm| 久久综合九色综合97婷婷女人 | 国产麻豆一精品一av一免费| 久久精品夜色噜噜亚洲aⅴ| 99精品视频在线观看| 午夜视频在线观看一区二区| 久久久亚洲精品一区二区三区 |