Total Pageviews

Google Ads

Wednesday, November 30, 2011

Resouce thiết kế đồng hồ lật

tham khảo

http://net.tutsplus.com/tutorials/html-css-techniques/learn-how-to-create-a-retro-animated-flip-down-clock/

Ngùôn resource ( upload dự phòng)
https://sites.google.com/site/mrkoeyanhsaodhem/
link down : https://sites.google.com/site/mrkoeyanhsaodhem/Home/Source.rar?attredirects=0&d=1


http://d2o0t5hpnwv4c1.cloudfront.net/470_clock/0.jpg

Saturday, October 29, 2011

Multimedia in J2ME

Đặc điểm của Mobile Multimedia APIs (MMAPI)
- Support for Tone Generation, playback, recording of time-base media: gói này hỗ trợ nội dung video hoặc audio theo thời gian.
- Small Footprint: MMAPI làm việc với những bộ nhớ nhỏ và giới hạn của các thiết bị sử dụng CLDC
- Protocol and Content-Agnostic: MMAPI không "ngại" bất cứ loại nội dung hay protocol (phương thức truyền thông) nào.
-Subsettable : Lập trình viên có thể giới hạn lại loại nội dung mà mình hỗ trợ.
-Extensible : Một tính năng, đặc trưng mới có thể được thêm vào một cách dễ dàng mà không phá hỏng đi những gì đã làm được trước đó. Quan trọng hơn những định dạng thêm vào được hỗ trợ một cách dễ dàng và có một framework là nơi để bạn thêm những controls mới.
-Optional for Implementers: APIs cung cấp nhiều tính năng cho nheiefu mục đích. API được thiết kế cho phép thực hiện việc ẩn một số tính năng không thực thi nếu nó không được hỗ trợ.



Multimedia Processing:
Có 2 phần việc cần phải thực hiện trong Multimedia Processing:

- Protocol Handling (Điều khiển phương thức của luồng dữ liệu): đọc data từ source (file or server stream) và đưa nó vào hệ thống xử lý
- Content Handling : Phân tích cú pháp hoặc giải mã dữ liệu rồi rending nó tới thiết bị output (audio or screen).

Để tạo điều kiện thuận lợi cho việc xử lý, API cung cấp 2 đối tượng ở mức cao :
- DataSource : Đóng gói việc xử lý protocol bằng cách ẩn đi phần bên dưới (làm việc như thế nào, đọc ra sao ...). Phương thức này đọc dữ liệu lên để hỗ trợ đối tượng Player xử lý nội dung.
- Player : Đọc dữ liệu từ DataSource, xử lý nó và chuyển nó tới các thiết bị ouput. Đối tượng này cung cấp những phương thức để điều khiển quá trình play của media bao gồm cả phương thức cho từng loại control cụ thể để điều khiển những đặc điểm của từng loại media cụ thể.

MMAPIs quy định  thêm một đối tượng thứ 3 được gọi là Manager, Đối tượng này cho phép chúng ta có thể khởi tạo đc một Players từ DataSources,và từ InputStreams. Đối tượng này bao phủ lên toàn bộ MMAPI như hình


Lớp đối tượng Manager cung cấp phương thức createPlayer(), Nó là điểm cao nhất trong APIs. Ví dụ

...
Player player = Manager.createPlayer(String url);
...

 url đặc trưng cho protocol và nội dung, Sử dụng format <protocol> : <content location>.

Ứng dụng sử dụng phương thức của kết quả trả về từ Player để điều khiển việc thu hồi và phát nhạc dựa trên thời gian.

Vòng đời của một Players đi qua 5 trạng thái : UNREALIZED, REALIZED, PREFETCHED, STARTED và CLOSED. 6 phương thức ứng với 5 trạng thái trên:

realize()
prefetch()
start()
stop()
deallocate()
close()

Khi một palyer được tạo ra, nó sẽ ở trạng thái UNREALIZED
realize():gọi hàm realize() để chuyển nó về trạng thái REALIZED và khởi tạo những thông tin về player cần có được media resource. 
prefetch():Gọi hàm prefetch() để chuyển nó về trạng thái PREFETCHED, tạo ra một kết nối tới dòng dữ liệu (streaming data) và thực hiện những việc khởi tạo khác.
start(): Gọi hàm start() để chuyển sang trạng thái STARTED, Khi player đã có thể xxử lý dữ liệu. Khi kết thúc quá trình xử lý (kết thúc media stream chẳng hạn) nó sẽ trả về trạng thái PREFETCHED. 
Close(): Gọi hàm close() để chuyển player về trạng thái CLOSE().
Player cung cấp những công cụ điều khiển đặc trưng cho từng loại media mà nó xử lý. Ứng dụng sử dụng hàm getControl() để lấy 1 control hoặc sử dụng getControls() để lấy ra một mảng các control. Ví dụ. Nếu player chạy một MIDI media gọi  getControl() thì nó sẽ nhận được một MIDIControl.
The MMAPI Packages
le 1: MMAPI Classes

Package Class Description
javax.microedition.media Manager Access point for obtaining system-dependent resources, such as Players for multimedia processing
javax.microedition.media.protocol ContentDescriptor Describes media-type containers
javax.microedition.media.protocol DataSource Represents an abstraction for media protocol handlers by hiding the details of how the data is read from a media file or a streaming server; provides methods for the Player to access the input data



Wednesday, October 26, 2011

Sprite Resource

Sprite Resource Contents
Mixed Sprite Resource Sites
Mario
Kirby
MegaMan
Zelda/Link
Sonic
Final Fantasy
Street Fighter / Mortal Kombat
Metal Slug
Naruto
Pokemon
Dragon Ball Z
Metroid
Donkey Kong
Castlevania
Other RPG Sprites
Backgrounds

=========================================

Mixed Sprite Resoure Sites

The Spriters Resource - Many sprite sheets from Nintendo, Capcom, Sega and many more. Also includes background and custom sprites. Reccomended.

Game Sprite Archives - Contains wide variety of both animated and non-animated sprites. Sorted by system.

.::Emugifs::. - Animated sprites (no sprite sheets) from many different games. Sorted by system.

Fattyboy's Video Game Sprites - Mostly sprite sheets from Nintendo and Sega games. One of few sites with animated Warcraft sprites.

Molotov.nu Graphics - RPG sprites and tiles. Good for those using programs such as GameMaker, or creating an RPG.

Noni's World - Decent amount of sprite sheets from popular sprite based games.

PanelMonkey - Many sprite sheets from different games, as well as some backgrounds.

Ren's Comic Zone - Lots of sprite sheets and backgrounds. Sorted by game company.

Shy Guy Kingdom - A huge collection of sprite sheets. Includes search feature in order to find specific sprites quickly when browsing the site's large archive. Reccomended.

Sprite Town - Mostly Mario and other Nintendo sprite sheets.

Tatakau - Game Sprites & Picture Gallery - Various animated sprites and non-animated sprites. Many are RPG games, but sprites from other generes are provided as well.

Video Game Sprites - Contains sprites from Mario, Zelda, Final Fantasy and other RPGs. Some sprites are animated.

VGWS Sprites and Animations - Mostly SNES sprites, as well as some Playstation and computer game sprites.

Kiki Sprites - Very good resource of sprite sheets of Naruto, DBZ, Street Fighter and many more. Contains Backgrounds.

Retro Game Zone - Sprites sheets from a wide variety of games. Sorted by system.

The Mushroom Kingdom - Mostly animated Mario sprites. Contains other resources such as SFX and box art as well.

Fenrir's Sprite Domain - Contains collections of animated and non-animated sprites from a few games. Also has a Misc section for other games.

VG Museum - Animated sprites from various games. Be sure to find more sprites by going to the Arcade and SNES sprite sections.

BGHQ - An amazing resource for game backgrounds. Contains full background sets for many games as well as custom background sprites. Reccomended.

RPG Icons - Animated and non-animated sprites for many RPG games.

ScrollBoss - Contains a wide variety of sprites for mostly fighting games.

Character Archive Network - A few sprites that could be used for top-down sprite movies/games.

Pixel Warehouse - Non-animated sprites. Contains zip archives of sprites for easier downloading acess.

RPG2K - Contains a large resource of many unique sprites, including background tiles, and other RPG themed sprites.

Sprite Database - A very expansive site for sprite sheets and backgrounds. Be sure to use the drop down bars to find all of the sprites. Reccomended.

The Mystical Forest - Mostly Sonic and DBZ sprites, as well as some explosions and custom sprites.

Comic Demons - Contains Fire Emblem, Sonic, and Final fantasy sprites. There are also some interesting custom sprites worth checking out.

DimondSoft - Has some pretty good sprite sheets. Some sprites are still "coming soon."

Kaze Komix - A few custom sprite sheets.

SPRITEaholic - A large and expansive site which contains many sprite sheets for all kinds of different systems. Reccomended.

Nes Snes Sprites - As the site name implies, it contains SNES and NES sprites sheets and some animated sprites.

Pixel Perfect - Although not a large collection, this site contains some more obsure sprites.

Pixels Elite - A large number of varried sprite sheets. Be sure to click the sprite image to see the full sprite sheet.

The Sigil of Slateman - Both animated sprites and sprite sheets from mostly fighting games.

Crossing Chaos Fusion - Contains background sprites from a few games such as Metroid or Castlevania.

Damaged Games - A small resource of sprites and backgrounds from mostly Megaman and Final Fantasy games.

MidianWeb - A large collection of animated sprites from a few unique games. NOTE: Some links are broken/outdated.

Ballistic Sprite Sheet Page - Sprite sheets for various characters. Click the character image to bring up the sprite sheet.

Index of /ben/sprites - Only an index page, but contains some good sprite sheets.

=========================================

Mario Sprites

Spriters Resource - Mario
Mario Fan Games Galaxy
The Mushroom Kingdom
Emugifs - SNES (Animated)
Emugifs - NES (Animated)
Fattyboy - Mario
Fattyboy - Mario Scenery
Sprite Town
Video Game Sprites
RandomHooHaas
The ShyGuy Kingdom
New Super Mario Bros

=========================================

Kirby Sprites

Spriters Resource - Kirby
Kirby Sprite Collection
Kirby Sprite Network
KirbyBolt
The ShyGuy Kingdom - Kirby
Kirby Fan Central

=========================================

Megaman Sprites

Spriters Resource - Megaman
MegaMan Sprites
Sprites INC - The Megaman Sprite Rip Archive
Cyberfenir - Megaman Sprites
The ShyGuy Kingdom - Megaman
The ShyGuy Kingdom - Megaman Battle Network
Digital Megaman Sprites (Open sprite thumbnails in a new window to view full sheet)
Zero Virus
Midianweb - Megaman
=========================================

Zelda/Link Sprites

Spriters Resource - Zelda
PureZC (Check out: tileshop.purezc)
Video Game Sprites - Zelda
Yamatan's Ultimate Zelda Sprite Collection
Midnight's Castle Legend of Zelda Sprites
Oracle Of Seasons
dakkad.tk sprites
The Golden Hylian
Zelda Legends The ShyGuy Kingdom - The Legend of Zelda
=========================================

Sonic Sprites

Spriters Resource - Sonic
The Mystical Forest
The ShyGuy Kingdom - Sonic
Sonic Fan Games HQ
Sonic-Gif
Sonic Prime
The Leaf Forest Zone
Sonic Sprites (Open sprite thumbnails in a new window to view full sheet)
Chao Civic - Sonic Sprites
Ren's Comic Zone - Sonic Sprites
=========================================

Final Fantasy Sprites

Video Game Sprites
Spriters Resource - Final Fantasy
RPG Icons
The ShyGuy Kingdom - Final Fantasy
Ren's Comic Zone - Square Enix
=========================================

Street Fighter / Mortal Kombat Sprites

Street Fighter Sprites
Fighters Generation
Spriters Resource - Fighting Games
Sigil of Slateman
Kiki Sprites
Marvel Sprites
Pocket Fighter
Game Sprite Archives
Mortal Kombat Warehouse
=========================================

Metal Slug Sprites

Metal Slug Database
Sigil of Slateman - Metal Slug
VG Museum - NeoGeo
The ShyGuy Kingdom - Metal Slug
RandomHooHaas - Metal Slug
SPRITEaholic - NeoGeo
=========================================

Naruto Sprites

Naruto HQ
Kiki Sprites
Naruto Central
Seylyn
=========================================

Pokemon Sprites

Pokemon Elite 2000
Spriters Resource - Pokemon
FortPortCity - Pokemon Sprites
TGC Player
Pokemon Sprites

Wednesday, October 19, 2011

J2ME Game Development with MIDP 2 - Chapter 4 - Sprite

Sprite.

Bất cứ một tựa game lớn nào muốn thành công đều phải đẹp về đồ họa. Rất nhiều đối tượng trong game được phân loại dựa trên những kiểu đồ họa đặc biệt gọi là sprites. sprite có thể là mọi thứ, từ viên đạn, quái vật, nhân vật chính, đối thủ, những loại item ...

Ví dụ về 1 sprite

Phần lớn các sprites là những đối tượng đồ họa động (hiểu là hình động cho dễ). Những hình động này được tạo bởi nhiều hình tĩnh gần giống nhau, chỉ khác nhau ở mỗi hình 1 tý xíu (giống nguyên tắt tạo hình động).Các tập sprites thường được gọi là các bộ khung hình . Những bộ khung này có thể được tạo nên từ những hình lạp hoặc không lặp. Thông thường, những sprite này được thể hiện theo một vòng lặp cho dễ xử lý.



Cấu trúc của một Sprite .

Có 3 cấu trúc mà nó đi kèm với lớp Sprite.

Sprite ( Image Image) = Tạo một khung hình duy nhất , không có "động đậy"
Sprite (Sprite sprite ) = tạo một Sprite mới từ một sprite khác trước đó.
Sprite (Image image, int frameWidth, int frameHeigh)  = tạo một đối tượng sprite có hả năng động đậy với nhiều hơn 2 khung hình, với height width là chiều cao và chiều rộng của khung hình.


trên hình trên là những "vạch" được gạch ra chỉ những khung hình song song mà ta có thể chia cách được (thật ra sprite ít được tạo từ nhiều hình đơn mà từ nhiều phần của một hình. ở frame thứ nhất sẽ hiển thị khung hình 1, frame thứ 2 ở khung 2 ... mỗi khung hình được chia cách như trên với chiều rộng và chiều cao được quy định lúc ta gọi hàm). bạn không cần phải điền vào số frame của sprite vì sau khi chia, hàm sprite sẽ tự động làm nó giúp bạn.



Tại sao là 8bit, 16 bit, 32 bit?

Nếu bạn chú ý phần lớn các đối tượng đồ họa thường bao gồm cả các sprites thường là những khung cùng chiều cao và chiều rộng. Lý do là bởi vì để đạt được sự đồng nhất về số lượng pixel và số bit màu sử dụng. hay cụ thể ở đây  là độ sâu của bit hay là độ sâu của màu. Càng nhiều bit trên 1 pixel thì màu sẽ được hiển thị sinh động hơn.  Công thức


Dùng công thức này để tính được số màu sắc có thể được hiển thị với mỗi 8 bit, 16 bit hay 32 bit.


Có điều khác là ở 2^32 thì số màu có được sẽ không là 2^32 mà chỉ là 2^24 vì có 8 bít được sử dụng cho kênh alpha. Một kênh alpha là một lớp mask (mặt nạ). Nó quyết định màu sắc của pixel này ra sao khi bị đè (nhập) với 1 pixel màu khác. (không hiểu lắm Chắc là khi lấy mình dùng pen tô lên giấy với giấy màu đỏ bút màu đen thì cần tới kênh alpha vậy :| ). trích dẫn nguyên đoạn này



Xử lý đụng độ giữa các Sprite
Đụng độ là một trong những hàm quan trọng nhất đối với việc lập trình game. Nó có thể là khi nhân vật đụng độ với vách tường, khi viên đạn đước bắn trúng vào đối tượng khác ...

Vậy làm thế nào để chúng ta xác định được có đụng độ xảy ra ?! Một cách tự nhiên là khi 1 bất kì pixel của sprite này chồng lên bất kì 1 pixel nào của spirte khác



Đừng lo, Lớp Sprite đã có sẵn một phương thức giúp bạn nhận biết được điều này.
collidesWith(Image image, int x, int y, boolean pixelLevel)
hay
collidesWith(Sprite sprite, boolean pixelLevel)

như bạn thấy, bạn có thể nhận diễn sự đụng độ xảy ra giữa các sprite hay giữa các đối tượng... với hàm gọi với hình (collidatesWith(Image image, int x, int y, boolean pixelLevel) thì bạn cần nhập nhiều hơn 2 tham số là x, y để xác định được vị trí của hình. Nó thường là tọa độ x, y của góc trên bên trái của hình. PixelLevel là một biến logic Nếu nó là true thì xe xử lý đụng độ trên pixel, và nếu nó là false thì sẽ sử lý đụng độ trên hình chữ nhật. Bạn cần định nghĩa kích cỡ của hình chữ nhật nhỏ hơn 1 tý nếu bạn muốn (thay vì khung) Tốt nhất là vẽ hình chữ nhật bao quanh những điểm ảnh của hình, loại bỏ bớt những chỗ mà ở đó xảy ra tình trạng hình chữ nhật thì đụng mà pixel thì chưa tới ==> giúp cho xử lý trông thực hơn.

 Pixel-Level là khi 1 điểm ảnh của sprite chồng lên 1 điểm ảnh của sprite khác. Một phương thức đơn giản của việc nhận diện đụng độ là đụng độ giữa những hình chữ nhật của 2 sprite ( thường dùng hình chữ nhật bao quanh đối tượng sprite).

Và phương thức thứ 3.

collidesWidth(TiledLayer tiledLayer, Boolean pixelLevel)  ;
< tác giả ghi width nhưng theo mình nghĩ là with mới đồng bộ với cái ở trên>
Nó cũng tương tự với 2 phương thức ở phía trên. Chi tiết xem phần sau .

Display Sprite

Để hiển thị hoặc biểu diễn một sprite đơn giản ta gọi hàm paint. Bạn sẽ phải cần thông qua một đối tượng đồ họa  như nó là một tham số cần thiết. Cần lưu ý là phải dùng setVisible(boolean) trong lần đầu tiên gọi phương thức này, Bạn sẽ cần phải điền vào giá trị vào là true (biến boolean).

Display Sprite Sequence

Có một vài phương pháp có sẵn để giải quyết với những sprite "động".

getFrameSequenceLengh() - trả về số thành phần trong 1 "chuỗi khung ảnh - số ảnh trong 1 chu trình".
getFrame() - Lấy số thứ tự của frame hiện tại trong "chuỗi frame", nó khoog phải là frame đang được hiển thị.
nextFrame() - Gán trình tự của frame tới cái frame kế tiếp, nếu trong trình tự nó là frame cuối cùng thì nó sẽ bắt đầu bằng frame đầu tiên.
prevFrame() - Gán trình tự freame thành cái frame phái trước, Nếu nó đang là frame bawgsts đấu thì nó sẽ quay ngược về frame cuối cùng.
setFrame(int sequenceIndex) - tùy biến việt thiết lập trình tự trong chuỗi trình tự frame

setFrameSequence(int[] sequence) - thiết lập = 1 chuỗi các frame sequence đã được định nghĩa trước.

Sprite Transparency

Một Lưu ý là bạn cần phải cẩn thận về việc làm ảnh "trong suốt" hay "không trong suốt" là tùy vào tình hình. Nếu nó là 1 game đơn giản với chỉ 1 ít các hoạt cảnh như TicTacToe thì hình trong suốt là không cần thiết hoặc không đc yêu cầu. Với những game yêu cầu tương tác cao khi mà có thể xảy ra nhiều sự đụng độ giữa các sprite với nhau (bao gồm cả background) bạn sẽ có nhu cầu làm trong suốt hình sprite. Tốt hơn là chúng ta nên kiểm tra với thiết lập của nhà sản xuất và chắc chắn rằng thiết bị chúng ta định phát triển có hỗ trợ cho việc hỗ trợ hình trong suốt nếu bạn quyết định sử dụng hình trong suốt.





Sprite Transforms

Có nhiều phương pháp để có thể thao tác một sprite xoay 90độ hay phiên bản đối xứng (như hình trong gương ấy) của sự quay ??? các biến đổi thì thiết lập bằng cách gọi setTransform. Các tham số là những giá trị nguyên, tuy nhiên, có một vài giá trị hợp lệ được định nghĩa trước và sẵn sàng để sử dụng



Khi biến đổi được áp dụng, sprite sẽ tự động thay đổi vị trí để nó về trung tâm ??Giá trị tham chiếu của sprite không đổi nhưng vị trí khi lấy getX() getY() sẽ thay đổi về góc trên bên trái.

??