Lập trình game 2D trên
HTML5, Phần 4: Sprites
Tiến hành phân vai các nhân vt trong Snail Bait
Trong lot bài này, David Geary sẽ hướng dẫn bạn từng bước thực hin trò chơi
video HTML5 2D. Sprites đối tượng đồ họa mà bn có thể gán các hành vi đến
— là một trong những khía cạnh cơ bản nhất và quan trọng của trò chơi video.
Trong phần này, bn sẽ học làm thế nào để thực hiện sprite để tạo nên schuyển
động của các nhân vật trong Snail Bait.
Ging như các lĩnh vực ngh thut khác — chng hn như phim, kch và tiu
thuyết — trò chơimt dàn các nhân vt, mi nhân vt có mt vai trò c th. Ví
d, Snail Bait có nhân vt "Runner" (gi vai chính ca trò chơi), các đồng tin,
ngc ruby, ngc sapphire, các con ong, con dơi, các nút bm, và mt con c sên,
phn ln chúng đều có trong Hình 1. Trong bài viết đầu tiên ca lot bài này (xem
phn Các hình nh 2D: Phân vai các nhân vt), tôi đã tho lun v các nhân vt này
và vai trò ca chúng.
Hình 1. Các nhân vt ca Snail Bait
Mỗi nhân vật trong Snail Bait là một sprite. Sprites là đối tượng đồ họa mà bn có
thể cấp cho nó các hành vi; ví dụ, nhân vật thể chạy, nhảy, rơi, và va chạm với
các sprite khác, trong khi đó, các viên ngọc lấp lánh, nhúc nhích lên xuống, và biến
mất khi chúng va chạm với nhân vật.
S dng thut ng Sprite
Những người thực hiện bộ xử lý hiển thị video của nhạc cụ Texas 9918A lần đầu
tiên sử dụng thuật ngữ sprite cho các nhân vật hoạt hình. (Trong tiếng Anh chuẩn,
từ sprite đến từ tiếng Latin spiritus nghĩa là yêu tinh hay thần tiên.) Sprites
cũng được thực hiện trong cả phần cứng và phn mềm; ví dụ máy tính Commodore
Amiga sản xuất năm 1985 đã hỗ trợ đến 8 sprite về phần cứng.
Vì sprite một trong những khía cạnh cơ bản nhất của bất kỳ trò chơi, và vì trò
chơi thường có nhiều sprite, nó có ý nghĩa để đóng gói khả năng cơ bản của chúng
trong các đối tượng có thể tái sử dụng. Trong bài viết này, bn sẽ học làm thế nào
để:
Thc hin một đối tượng Sprite mà bn có thi s dng trong bt k trò
chơi nào.
Tách ri sprite t các đối tượng v chúng (sprite artists) để linh động vào
lúc khi chy.
Dùng sprite sheets để gim thi gian khởi động và các yêu cu v b nh.
To sprite vi siêu d liu.
Kết hp sprite vào mt vòng lp.
Các đối tượng Sprite
Tôi thiết lập sprite của Snail Bait như là các đối tượng Javascript để có thể sử dụng
trong bất kỳ trò chơi nào, vì vậy sprite sẽ nằm ở tệp riêng. Và tôi sgọi tệp đó
trong đoạn mã HTML của Snail Bait như sau: <script src='js/sprites.js'></script>.
Bảng 1 liệt kê các thuộc tính của Sprite:
Bng 1. Các thuc tính ca Sprite
Thu
c
tính C gii
artist
Đ
i t
ư
ng đ
v
m
t sprite.
behaviors
M
t m
ng các tr
ng thái, m
i tr
ng thái là các
thao tác chuyn động ca sprite trong mt vài
Thu
c
tính C gii
ki
u hình d
ng.
left
T
a đ
X
góc trên bên trái c
a sprite.
top
T
a đ
Y
góc trên bên trái c
a sprite.
width
Chi
u ngang c
a sprite đ
ư
c tính theo pixel.
height
Chi
u cao c
a sprite đ
ư
c tính theo pixel.
opacity
Tr
ng thái m
, trong su
t ho
c k
ế
t h
p c
hai
trng thái ca sprite.
type
M
t dòng chú thích lo
i c
a sprite, nh
ư
bat
(con dơi), bee (con ong), hay runner (nhân vt)
.
velocityX
T
c đ
ngang c
a
sprite, đ
ư
c tính theo s
pixel trên giây.
velocityY
T
c đ
đ
ng c
a sprite, đ
ư
c tính theo s
pixel
trên giây.
visible
Tình tr
ng hi
n th
c
a sprite. N
ế
u giá tr
là
false t sprite s không được v.
Sprite là nhng đối tượng đơn giản để duy trì thông tin tọa độ và kích cỡ của nó
(thường được biết như một bounding box (hp biên)), tốc độ và tình trng hiển
th. Nó còn có kiểu riêng để phân biệt sprite này với sprite khác và độ mờ của nó,
nghĩa là từng phần riêng của sprite có thể trong suốt.