Trang

Hiển thị các bài đăng có nhãn Hướng dẫn. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Hướng dẫn. Hiển thị tất cả bài đăng

25/12/12

Bài dịch giới thiệu về A*


Đây là bài dịch của mình (dĩ nhiên là có bác google trợ giúp rất nhiều) nên còn rất nhiều chổ không thích hợp.Nhưng với các bạn đam mê lập trình game,nhất là tìm đường trong game thì mình thấy cũng rất hay !
Link gốc của trang này là :
http://theory.stanford.edu/~amitp/GameProgramming/index.html
Và link bài dịch của mình : (mình nén thành file rar ! Các bạn chạy file index.html là xong)
http://www.mediafire.com/?rfi1biq1d89inov
Mình dịch A* lại cho rỏ ràng hơn để mình có thể nâng cấp phần tìm đường trong game của minh hay hơn (hay có thể dùng A* cho ứng dụng nào đó khác)

Hướng dẫn cài đặt và dùng Irrlicht engine

Hướng dẫn cài đặt và dùng Irrlicht engine

1) Irrlicht engine là gì :

Irrlicht engine là một engine đồ họa, không phải game engine. Nó bao gồm một hệ thống thư viện hỗ trợ cho người dùng về mặt đồ họa 2D và 3D .Có thể chạy đa hệ điều hành do nó dùng bộ dựng hình từ DirectX hay OpenGL. Cụ thể thế nào thì các bạn vào http://www.Irrlicht.sourceforge.net/ để xem.

2) DownLoad và cài vào máy :

Địa chỉ download nó là : http://www.Irrlicht.sourceforge.net/ vào mục download để down về (hơn 20Mb). Nó là một file nén

Giải nén nó vào một vị trí nào đó : ví dụ trên máy mình là : G:\\mygame\

Bạn sẽ có thêm thư mục G:\\mygame\Irrlicht-1.7.2\

Cấu trúc thư mục của Irrlicht bao gồm :

\bin\Win32-VisualStudio : chứa tự viện Irrlicht.DLL và một chương trình Demo và một vài ví dụ đã biên dịch sẳn. Hãy chạy nó để xem nó thực thi như thế nào trên Window.

\doc : Tài liệu về Irrlicht engine

\examples: Các ví dụ và bài hướng dẫn về cách dùng Irrlicht engine viết bằng C++.

\include : Các tệp tin Header để chèn vào (Include) khi lập trìh với engine.

\lib\Win32-visualstudio\ Các thư viện liên kết với chương trình khi dùng engine.

\media : Tài nguyên đồ họa và âm thanh dành cho Demo và các ví dụ.

\source : Mã nguồn của Irrlicht engine. Phần mã này không cần thiết trong phát triển ứng dụng bằng engine,nhưng nó được thêm vào để có thể biên dịch lại engine khi cần thiết và phát hiện lổi của engine.

\tools : Các công cụ hữu ích (gồm cả mã nguồn) của engine.

Bạn không cần phải build lại engine mà cứ dùng trực tiếp những cái phân phối sẳn có (vì nếu build lại bạn cũng không có đủ thư viện để build đâu DX 9.0, Dx 8.0…)

3) Điều chỉnh IDE để có thể dùng Irrlicht :

Mình chỉ hướng dẫn các bạn dùng với VC++2008 (còn VC++2011 hay hơn thì các bạn tự nghiên cứu hé)

Chạy VC++2008 lên : (lưu ý mình cài Irrlicht engine trong máy mình ở thư mục G:\\mygame)

Bạn hiệu chỉnh phần Include và lib trong mục Tool ->Option->Projects and Solutions-> VC++ Directories như hình sau :

Phần Include :






Phần libs



4) Xây dựng ứng dụng đầu tiên dùng Irrlicht engine :

Bạn hãy tạo một thư mục riêng để lưu các đề án của mình ( mình tạo thêm thư mục trong e:\mygame là newproject : nên đường dẫn của mình là : G:\mygame\ newproject)

Trong VC++2008 vào file -> new project : (chọn win32 Console Application – tên project là IrrHello bọ chọn Create directory for solution) như của mình







Sau đó nhấn OK

Nhấn tiếp Next

Chọn tiếp như hình sau :






Nhấn Finish : vậy là xong phần tạo project :
Vào phần project của VC++2008 chọn add new Item -> code -> c++ file (.cpp) và đánh tên tệp tin chính tạo mới là main như hình sau :










Nhấn Add :

Sau đó chép phần code này vào (làm biếng thì copy and paste)

/** Example 001 HelloWorld

#include

using namespace irr;

//

using namespace core;

using namespace scene;

using namespace video;

using namespace io;

using namespace gui;

//

#ifdef _IRR_WINDOWS_

#pragma comment(lib, "Irrlicht.lib")

//#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup")

#endif

int main()

{

IrrlichtDevice *device =

createDevice( video::EDT_SOFTWARE, dimension2d(640, 480), 16,
false, false, false, 0);

if (!device)

return 1;

device->setWindowCaption(L"Hello World! - Irrlicht Engine Demo");

IVideoDriver* driver = device->getVideoDriver();

ISceneManager* smgr = device->getSceneManager();

IGUIEnvironment* guienv = device->getGUIEnvironment();

guienv->addStaticText(L"Hello World! This is the Irrlicht Software renderer!",

rect (10,10,260,22), true);

IAnimatedMesh* mesh = smgr->getMesh("../../Irrlicht-1.7.2/media/sydney.md2");

if (!mesh)

{

device->drop();

return 1;

}

IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode( mesh );

if (node)

{

node->setMaterialFlag(EMF_LIGHTING, false);

node->setMD2Animation(scene::EMAT_STAND);

node->setMaterialTexture( 0, driver->getTexture("../../Irrlicht-1.7.2/media/sydney.bmp") );

}

smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0));

while(device->run())

{

//

driver->beginScene(true, true, SColor(255,100,101,140));

smgr->drawAll();

guienv->drawAll();

driver->endScene();

}

//

device->drop();

return 0;

}

Nhấn F7

Chép tệp tin Irrlicht.dll trong thư mục Irrlicht\bin\Win32-VisualStudio vào cùng thư mục với project mình vừa tạo (ở đây là G:\myGame\Newproject\IrrHello)

Nhấn F5 và xem thành quả của mình


5) Lời kết :

Đây là phần hướng dẫn sơ lược dành cho các bạn mới bắt đầu nghiên cứu Irrlicht engine. Hy vọng nó sẽ bớt đi rất nhiều thời gian và công sức để các bạn làm quen với engine này. Chúc các bạn thành công.

Các bạn có thể góp ý với mình qua email : trivtn@yahoo.com hay vào

blog của mình : http://trivtn.blogspot.com



Chạy Pascal trên Win7






Mới lên Internet coi lại làm sao mà thằng Pascal không chạy tốt trên Win7. Nếu chạy bình thường thì không sao, nhưng nếu dùng đồ họa thì sẽ bị báo lổi.

Mình sưu tầm trên Internet được ngay anh chàng DosBox rất hay. Dùng nó như một Shell Dos thực và mình có thể chạy tốt Pascal cũng như các phần mềm chạy trên Dos ngày xưa ! Hoan hô DosBox.

Có một điều các bạn nên tăng hết tốc độ CPU khi chạy DosBox để chương trình của bạn chạy nhanh và đúng ! (Có thể làm cho một số game chạy hơi nhanh !). Bạn chỉnh file DOSBox 0.74 Options.bat là xong ! Chỉnh cái (core=dynamic và cycles=max) là xong thôi !

Mình chỉnh và chạy lại toàn bộ các chương trình Pascal ngày xưa của mình thấy OK quá !

Cái này có thể giúp các em đang học Pascal học tốt nó ! (nhưng sau này nếu theo lập trình thì vẫn phải chuyển sang ngôn ngữ lập trình khác như C++, C#, Java, Visual Basic...)

Thôi chúc các bạn cuối tuần vui vẻ. !
Đã hoàn tất hết các bài hướng dẫn của Irrlicht - bắt tay làm game thôi !




Lâu quá rồi mình mới viết blog ! Không phải mình lười mà không có thời gian ! Trời ơi hòan thành hết mấy cái ví dụ của Irrlicht thật không phải đơn giàn chút nào.

Nhất là cái ví dụ 21 ! mình chỉ có thể dịch nó mà cũng không thể hiểu hết nó do nó quá là dài ! Phải nói là nó lớn không thua gì cái đề án game Vua Heo của mình !

Ví dụ 22 mình bỏ qua do mình không cần dùng đến nó ! Nó chỉ dài chứ không khó hiểu lắm.

Hôm qua mới hòan thành xong ví dụ 23 luôn rồi ! Học cũng được một số thứ.

Dạo này cu tý vô ngủ chung với mình nên mình cũng không thể online quá khuya. Như vậy mà tốt nó đảm bảo sức khỏe của mình.

Mình sẽ bắt tay vô làm cái game mới ! Chưa biết nó như thế nào nhưng mình sẽ làm lại các class chính trước. Chắc chắc là sẽ có A* trong tìm đường và nhiều hiệu ứng sẽ được đưa vào ! Các bạn nhớ xem và ủng hộ cho mình.

Hẹn gặp lại các bạn ở bài viết tiếp theo !
Học lại Irrlicht


Mình phải học lại Irrlicht sao ta ! Dĩ nhiên rồi ! khi mà mình chỉ theo cái version từ 1.5 đến giờ chưa nâng cấp theo cái hiện có của Irrlicht.

Irrlicht bây giờ đã khác trước rất nhiều rồi, nên mình quyết định xem lại tất cả các vì dụ của nó. Trong đó có rất nhiều kỹ thuật hay mà mình đã bỏ qua do tập trung làm game Vua Heo cho hoàn tất.

Bây giờ rảnh tay thì phải nâng cấp bản thân lên cho kịp với đà tiến bộ của engine chứ.

Mà mình cũng đã sài VC++ 2011 rồi, sẳn dịp làm lại các vì dụ của Irrlicht trên nó luôn. Nói chính xác là cài Irrlicht để chạy trên VC++2011 khác xa trên VC++2008.

Mình cũng viết lại các tiêu điểm cần chú ý, các mẹo cần phải học trong các ví dụ của Irrlicht.

Thay vì ngồi vẻ lại mô hình, mình quyết định lấy ngay cái mô hình thằng ninja làm mô hình chuẩn để lập trình cho một game nhỏ trước (cũng là thử nâng cấp cách lập trình của mình lên theo luôn) .

He he công việc như vậy cũng đã quá nhiều rồi ! Khi khác tính tiếp !

Bài đăng phổ biến