Trang 4 / 5 FirstFirst 12345 LastLast
Hiển thị kết quả từ 31 đến 40 / 44
  1. #31
    Tham gia
    09-02-2004
    Bài viết
    38
    Like
    0
    Thanked 0 Times in 0 Posts
    Tôi cũng đang kiếm DX SDK, có địa chỉ mà ko tải nổi, có bán CD ko vậy?

  2. #32
    Tham gia
    17-09-2002
    Location
    SMA
    Bài viết
    749
    Like
    0
    Thanked 3 Times in 3 Posts
    Hồi xửa hồi xưa CB có 1 bộ Game Kit: http://www.diendantinhoc.com/showthread.htm?t=22836, ko biết bi giờ hắn còn bán ko. Nếu bạn ở HN thì liên hệ hắn thử xem.
    to CB: bán được thì nhớ tiền hoa hồng cho anh hẩy? :P

  3. #33
    Tham gia
    01-05-2003
    Bài viết
    54
    Like
    0
    Thanked 0 Times in 0 Posts
    Quote Được gửi bởi InstCode
    Hey .. Cáo lỗi ... Lâu nay bận quá nên chưa viết kịp ...

    Demo này tui clip cho cái Primary Surface, chạy lên (fullscreen/windowed mode) thì bác để ý có một cái đống lửa nhỏ nhỏ cháy bên cạnh một đống bự hơn, đống bự đã bị clip rồi !... Hic, chương trình đơn giản, chưa bẫy hết lỗi (thêm mấy cái if ... then ... else ấy mà :-)...)

    Chú ý : nếu bác dùng BltFast thay cho Blt thì sẽ không chạy được đâu nhá !
    Thì ra là vậy, BltFast hông dùng được , sao bác hông nói sớm , tui cũng có đọc ít tài lịu nói BltFast hông xài được , thank bác nhá

  4. #34
    Tham gia
    16-04-2004
    Location
    BH
    Bài viết
    15
    Like
    0
    Thanked 0 Times in 0 Posts
    Cho tui hỏi tí nị nhá? Dùng cái DirectDrawSurface có sài được ba cái hiệu ứng Blending không nhỉ? Trường hợp không có thì chỉ cho tui xíu xíu cách lập trình cái hiệu ứng đó với nhá. Hay một manh mối gì đó càng tốt.
    Many thanks.!

  5. #35
    Tham gia
    19-04-2004
    Bài viết
    107
    Like
    0
    Thanked 1 Time in 1 Post
    sao bac viet code loang ngoang vay, noi r ra duoc khong

  6. #36
    Tham gia
    01-06-2008
    Bài viết
    7
    Like
    0
    Thanked 0 Times in 0 Posts
    Minh không tải được mã nguồn nữa! Có ai con cho minh xin nha!
    Hic hic!

  7. #37
    Tham gia
    09-02-2009
    Bài viết
    36
    Like
    0
    Thanked 0 Times in 0 Posts
    Có ai giúp mình cái vấn đề này với :
    Mình vẽ một mình hộp 3d sau đó cho nó quay theo tọa độ x,y,z bây giờ có một yêu cầu đặt gia như thế này :
    Mình muốn khi nhấn một phím nào mình chỉ định, thì cái hình hộp của mình nó sẽ dừng lại đúng vị chí lúc mình nhấn vào mình bỏ khỏi nút nhấn thì nó tiếp tục quay với vị trí lúc nhấn, mình bị vướng chỗ khi mình nhấn thì nó dừng quay nhưng vị trí của nó thì không dừng đúng vị trí nút nhấn, hai là khi bỏ tay ra khỏi nút nhấn thì nó quay nhưng vị trị của nó cũng không quáy tiếp tục chỗ mình nhấn
    Các bạn xem code rồi cho mình ý kiến
    còn đây là cả bài đầy đủ :http://www.mediafire.com/?yog1zwhmmeu
    #include <windows.h>
    #include <d3d9.h>
    #include <d3dx9.h>
    LRESULT CALLBACK WinProc (HWND, UINT, WPARAM, LPARAM);
    HINSTANCE hInst;
    HWND wndHandle;

    //khai bao bien con tro
    LPDIRECT3D9 pD3D;//->doi tuong 3D
    LPDIRECT3DDEVICE9 pd3dDevice; //->thiet bi ket xuat
    LPDIRECT3DVERTEXBUFFER9 buffervertex=NULL;//->vung dem
    LPDIRECT3DTEXTURE9 pTexture;


    //khai bao mau
    bool initWindow(HINSTANCE);
    bool initDirect3D();
    bool initvertex();
    void game_run(HWND);
    void game_end(HWND);
    void SetCamera(void);
    void SetPerspective(void);
    void SetRotation(void);
    void initLight(void);

    #define D3DFVF_MYVERTEX D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1
    #define SafeRelease(pObject)if(pObject!=NULL){pObject->Release();pObject=NULL}
    #define KEY_DOWN(vk_code)((GetAsyncKeyState(vk_code)& 0x8000)?1:0)
    #define KEY_UP(vk_code)((GetAsynckeyState(vk_code)& 0x8000)?1:0)

    D3DXMATRIX matWorld1,matWorld1X,matWorld1Y,matWorld1Z,
    matWorld2,matWorld2X,matWorld2Y,matWorld2Z,matWorl dTranslate2,
    matWorld3,matWorld3X,matWorld3Y,matWorld3Z,matWorl dTranslate3;

    //khai bao cau truc
    struct customvertex
    {
    float x,y,z;
    D3DVECTOR normal;
    float u,v;
    };
    //mang kieu cau truc gom cac dinh cua khoi hinh hop se show ra man hinh
    customvertex myvertex[]={
    //top face
    {-5.0f,5.0f,-5.0f,0,1,0,0.0f,1.0f},
    {-5.0f,5.0f,5.0f,0,1,0,0.0f,0.0f},
    {5.0f,5.0f,-5.0f,0,1,0,1.0f,1.0f},
    {5.0f,5.0f,5.0f,0,1,0,1.0f,0.0f},
    //face 1
    {-5.0f,-5.0f,-5.0f,1,1,1,0.0f,1.0f},
    {-5.0f,5.0f,-5.0f,1,1,1,0.0f,0.0f},
    {5.0f,-5.0f,-5.0f,1,1,1,1.0f,1.0f},
    {5.0f,5.0f,-5.0f,1,1,1,1.0f,0.0f},
    //face 2
    {5.0f,-5.0f,5.0f,1,0,0,0.0f,1.0f},
    {5.0f,5.0f,5.0f,1,0,0,0.0f,0.0f},
    //face 3
    {-5.0f,-5.0f,5.0f,0,0,1,1.0f,1.0f},
    {-5.0f,5.0f,5.0f,0,0,1,1.0f,0.0f},
    //face 4
    {-5.0f,-5.0f,-5.0f,-1,0,0,0.0f,1.0f},
    {-5.0f,5.0f,-5.0f,-1,0,0,0.0f,0.0f},
    //face 5
    {5.0f,-5.0f,-5.0f,0,-1,0,0.0f,1.0f},
    {5.0f,-5.0f,5.0f,0,-1,0,0.0f,0.0f},
    {-5.0f,-5.0f,-5.0f,0,-1,0,1.0f,1.0f},
    {-5.0f,-5.0f,5.0f,0,-1,0,1.0f,0.0f},

    };
    int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
    {

    if (!initWindow(hInstance))
    return false;
    if (!initDirect3D())
    return false;
    if(!initvertex())
    return false;

    MSG msg;
    ZeroMemory(&msg, sizeof(msg));

    while (msg.message !=WM_QUIT)
    if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
    {

    TranslateMessage (&msg);
    DispatchMessage (&msg);

    }
    else
    {
    game_run(wndHandle);
    }
    return (int) msg.wParam;//ep kiu
    }
    bool initWindow(HINSTANCE hInstance)
    {
    WNDCLAS*** wcex;
    wcex.cbSize = sizeof(WNDCLAS***);
    wcex.style = CS_HREDRAW|CS_VREDRAW;
    wcex.lpfnWndProc = WinProc;
    wcex.cbWndExtra = 0;
    wcex.cbCl***tra = 0;
    wcex.hInstance = hInstance;
    wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
    wcex.lpszMenuName = NULL;
    wcex.lpszClassName = L"About Window";
    wcex.hIconSm = 0;


    RegisterClas*** (&wcex);
    wndHandle = CreateWindow(L"ABout Window",
    L"The Hello Program",
    WS_OVERLAPPEDWINDOW,//->che do cua so
    //WS_EX_TOPMOST|WS_POPUP|WS_VISIBLE,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    800,
    600,
    NULL,
    NULL,
    hInstance,
    NULL );

    if (!wndHandle)
    return false;

    ShowWindow(wndHandle, SW_SHOW);
    UpdateWindow(wndHandle);

    return true;
    }

    bool initDirect3D(void)
    {
    pD3D = NULL;
    pd3dDevice = NULL;
    if(NULL==(pD3D=Direct3DCreate9(D3D_SDK_VERSION)))
    {
    return false;
    }
    D3DPRESENT_PARAMETERS d3dpp;
    //xoa bo nho con tro
    ZeroMemory(&d3dpp, sizeof(d3dpp));
    d3dpp.Windowed =true;//->che do cua so
    //d3dpp.Windowed =false;
    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;//->che do cua so
    d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
    d3dpp.BackBufferCount = 1;
    d3dpp.BackBufferHeight =600;
    d3dpp.BackBufferWidth =800;
    d3dpp.hDeviceWindow = wndHandle;
    //cho fep tinh do xau
    d3dpp.EnableAutoDepthStencil=true;
    d3dpp.AutoDepthStencilFormat=D3DFMT_D16;

    if (FAILED (pD3D ->CreateDevice(D3DADAPTER_DEFAULT,
    D3DDEVTYPE_REF,
    wndHandle,
    D3DCREATE_SOFTWARE_VERTEXPROCESSING,
    &d3dpp,
    &pd3dDevice)))
    {
    return false;
    }
    D3DXCreateTextureFromFile(pd3dDevice,L"13.jpg",&pT exture);

    //tat anh sang


    pd3dDevice->SetRenderState(D3DRS_LIGHTING,true);

    pd3dDevice->SetRenderState(D3DRS_AMBIENT,D3DCOLOR_XRGB(50,50, 50));
    /*cho fep tinh do xau
    pd3dDevice->SetRenderState(D3DRS_ZENABLE,true);*/
    return true;
    }

    //ham ve hinh len vung dem
    void game_run(HWND wndHandle)
    {
    pd3dDevice->Clear(0,NULL,D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,0), 1.0f, 0);
    pd3dDevice->Clear(0,NULL,D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 1.0f, 0);//cho fep tinh do xau
    pd3dDevice->SetTexture(0,pTexture);


    pd3dDevice->BeginScene();

    //goi ham
    SetRotation();
    SetCamera();
    SetPerspective();
    initLight();
    //chỉ định khi nhấn phim a thì hình sẽ dừng lại, khi bỏ ra thì tiếp tục quay
    //vấn đề là chỗ này mong chỉ dúp
    if(KEY_DOWN(0x41))
    {
    D3DXMatrixTranslation(&matWorld1,timeGetTime()/800.0f,timeGetTime()/800.0f,timeGetTime()/800.0f);

    }
    else
    {

    }
    pd3dDevice->SetStreamSource(0,buffervertex,0,sizeof(customver tex));
    pd3dDevice->SetFVF(D3DFVF_MYVERTEX);

    pd3dDevice->SetTransform(D3DTS_WORLD,&matWorld1);
    pd3dDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP,0,2);//diem,dt,tamgic,hinh vuong<->point,line,triangle,quad
    pd3dDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP,4,8);
    pd3dDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP,14,2);
    pd3dDevice->EndScene();
    //xuat file anh ra man hinh
    pd3dDevice->Present(NULL,NULL,NULL,NULL);


    }

    LRESULT CALLBACK WinProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {

    switch (message)
    {
    case WM_DESTROY:
    PostQuitMessage(0);
    break;
    }
    return DefWindowProc (hwnd, message, wParam, lParam);
    }

    //ham khai bao & khoi tao vertexbuffer
    bool initvertex (void)
    {

    HRESULT result;
    result=pd3dDevice->CreateVertexBuffer(sizeof(customvertex)*sizeof(my vertex),
    0,
    D3DFVF_MYVERTEX,//FVF<->Flexible Vertex Format->do co gian
    D3DPOOL_DEFAULT,
    &buffervertex,//lay dia chi con tro
    NULL);

    //test
    if FAILED(result)
    return false;

    VOID* pVertices;//tro toi kiu du lieu chua bit truoc

    //khoa buffer
    result=buffervertex->Lock(0,sizeof(myvertex),(void**)&pVertices,0);

    //test
    if FAILED(result)
    return false;
    //memcpy
    memcpy(pVertices,myvertex,sizeof (myvertex));

    //mo khoa buffer
    buffervertex ->Unlock();

    //return S_OK;


    return true;

    }
    //ham xoay
    void SetRotation()
    {

    D3DXMatrixRotationX(&matWorld1X, timeGetTime()/800.0f);// toa do x,goc quay
    D3DXMatrixRotationY(&matWorld1Y,timeGetTime()/800.0f);// toa do y...
    D3DXMatrixRotationZ(&matWorld1Z,timeGetTime()/800.0f);//toa do z
    //nhan ma tran xoay
    D3DXMatrixMultiply(&matWorld1,&matWorld1X,&matWorl d1Y);
    D3DXMatrixMultiply(&matWorld1,&matWorld1,&matWorld 1Z);

    pd3dDevice->SetTransform(D3DTS_WORLD,&matWorld1);


    }
    //ham view
    void SetCamera()
    {
    D3DXMATRIX matView;
    D3DXMatrixLookAtLH(&matView,&D3DXVECTOR3(0.0f,0.0f ,-60.0f),//koag cach giua anh va camera(tam nhin)
    &D3DXVECTOR3(0.0f,0.0f,0.0f),//nhin goc toa do
    &D3DXVECTOR3(0.0f,1.0f,0.0f));//huong nhin len theo truc y

    pd3dDevice->SetTransform(D3DTS_VIEW,&matView);
    }
    //ham chieu
    void SetPerspective()
    {
    D3DXMATRIX matProj;
    D3DXMatrixPerspectiveFovLH(&matProj,D3DX_PI/4,1.0f,1.0f,500.0f);
    pd3dDevice->SetTransform(D3DTS_PROJECTION,&matProj);
    }

    void initLight()
    {
    D3DLIGHT9 light;//create the light struct
    D3DMATERIAL9 material;//create the material struct

    ZeroMemory (&light,sizeof(light));//clear out the struc for use

    light.Type=D3DLIGHT_DIRECTIONAL;//make the light type 'direttional light'
    light.Diffuse.r =0.5f;//.5 red
    light.Diffuse.g=0.5f;//.5 green
    light.Diffuse.b=0.5f;//.5 blue
    light.Diffuse.a= 1.0f ;//full alpha (we'll get too that soon)

    D3DVECTOR vecDirection ={0.0f,-3.0f,-1.0f};//the direction of the light
    light.Direction=vecDirection;//set the direction
    pd3dDevice->SetLight(0,&light);//send the light struct properties to light #0
    pd3dDevice->LightEnable(0,TRUE);//turn on light #0

    ZeroMemory(&material,sizeof(D3DMATERIAL9));//clear out the struc for use
    material.Diffuse.r=material.Ambient.r = 1.0f;//set the material to full red
    material.Diffuse.g=material.Ambient.g = 1.0f;//set the material to full green
    material.Diffuse.b=material.Ambient.b = 1.0f;//set the material to full blue
    material.Diffuse.a=material.Ambient.a = 1.0f;//set the material to full alpha

    pd3dDevice ->SetMaterial(&material);//set the globably-use

    }

    [=========> Bổ sung bài viết <=========]

    sao không có ai cho mình ý kiến vậy, cho mình hỏi tiếp câu nữa, trong bài trên có sử dụng hàm :
    timeGetTime():ý nghĩa của nó để lấy giờ hệ thông, vậy có hàm nào đặt được giờ hệ thống không bạn
    Được sửa bởi amda641 lúc 23:33 ngày 10-03-2009 Reason: Bổ sung bài viết

  8. #38
    Tham gia
    21-04-2009
    Location
    Hà Nội
    Bài viết
    11
    Like
    0
    Thanked 0 Times in 0 Posts
    Hi CrazyBabe!
    Minh tên là Lăng, mình rất hứng thứ học lập trình game, chúng ta làm wen nhé, bạn có nhóm nào phát triển game ko? Cho mình tham gia với
    Nick Yahoo: choem1001
    Nick Skype: choem1001
    Email: vuvanlang@gmail
    Là bạn là con trai hay gái nhỉ? Nếu con trai thì tiện hơn !Hi`

  9. #39
    Tham gia
    22-09-2011
    Bài viết
    1
    Like
    0
    Thanked 0 Times in 0 Posts
    up giùm bạn. có gì sang ủng hộ mình

  10. #40
    Tham gia
    10-03-2011
    Bài viết
    19
    Like
    0
    Thanked 0 Times in 0 Posts
    uppppppppppppppppppppppppppppppppppppppp

Trang 4 / 5 FirstFirst 12345 LastLast

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •