Bạn dùng hàm LoadImage(), hàm này trả về kiểu HBITMAP. Lúc đó chắc là bạn biết cách sử dụng rồi
Em muốn load 1 file ảnh vào HDC thì làm thế nào ???
Life:\> dir
Bạn dùng hàm LoadImage(), hàm này trả về kiểu HBITMAP. Lúc đó chắc là bạn biết cách sử dụng rồi
À, tiện cho mình hỏi luôn. ( Mình chưa nghiên cứu kĩ, nhưng tiện tay thì hỏi luôn, nếu gà quá thì đừng cười ). Mình muốn load ảnh mà nó không đè nền ( kiểu như gif ) nhằm làm game. Có ai biết cách ko xin chỉ dùm.
ps: mình nảy ra ý tưởng là xài loadicon, vì icon cũng ko đè nền. Tuy chưa thử, ko biết có hiệu quả ko.
pEnGwINUS.
Trong VC++ thì chỉ làm việc với ảnh là icon và BMP thôi. Bạn muốn làm vậy có lẽ nên tự đọc từng điểm ảnh rồi tự vẽ.
Bạn có thể tham khảo ở đây cũng được, 1 open sources library: http://freeimage.sourceforge.net
Nếu chỉ là load và hiển thị nên thôi thì ảnh JPEG cũng không thành vấn đề.
Nếu đọc từng điểm rồi vẽ thì lại chậm quá. Vì làm game, game đòi xử lí nhiều đối tượng ( người, quái, cây cối, cảnh vật,... ) nếu như vậy thì quá chậm. Đó là chưa nói đến yêu cầu xử lí, điều khiển nhanh của gamer. Có lẽ là cách làm tốt nhất là xài load iconNguyên bản được gửi bởi Tarzan
pEnGwINUS.
Life:\> dir
Đại loại là như sau:
HBITMAP hBitmap = (HBITMAP)::LoadImage(...);
CBitmap bitmap;
CDC memDC;
memDC.CreateCompatibleDC(&dc);
bitmap.CreateCompatibleBitmap(&dc,...);
bitmap.Attach(hBitmap);
memDC.SelectObject(bitmap);
dc.Bitblt(...);
...
mấy bước quan trọng cơ bản là vậy. Cậu thử xem
-Nhằm tránh bị giật màn hình , vẽ trên DC ảo ,xong sau đó vẽ trên DC thật , Có bạn nào biết vẽ trên DC ảo ko??? . VD: mình mún vẽ n tấm hình bitmap.
vẽ tấm này xong xóa màn hình , vẽ tấm tiếp theo cứ như vậy. Ai biết chỉ mình với ?
Vẽ trên DC ảo cũng giống như vẽ trên DC thật thôi (dùng các hàm của GDI), cơ bản là mình tạo ra được một DC ảo rồi tạo 1 cái bitmap cho nó. Sau khi vẽ vời xong thì đưa hình ảnh ra DC thật.
Born to walk against the wind... Born to hear my name...
Stand and fight... Live by your heart...
Always one more try... I'm not afraid to die...
Stand and fight... say what you feel...
Born with a heart of steel ...