ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
M?t s? l?u ? c? b?n v? vi?t game
- by Johnny Chen
Y¨ºu c?u 1 game t?t
? H¨¬nh ?nh ??p
? C¨® ?m thanh t?t
? M¨¤n ch?i k?ch t¨ªnh
? Code ph?i si¨ºu g?n nh? ?? c¨¤i ??t nhanh
? Code ph?i m?ch l?c ?? n?ng c?p d?
? Game ph?i c¨® thu?t to¨¢n x? l? t?t, tr¨¢nh t¨¬nh
tr?ng gi?t lag
? Game ph¨´ h?p v?i c¨¤ng nhi?u c?u h¨¬nh m¨¢y
c¨¤ng t?t
? N?i dung l?i cu?n, l¨¤nh m?nh v¨¤ t? nhi¨ºn
C¨¢c l?u ?
? ? t??ng: T?i t¨¬m ? t??ng ? ??u ??y?
? T¨¤i nguy¨ºn game: h¨¬nh ?nh v¨¤ ??nh d?ng
? C¨¢ch hi?n m¨¤n h¨¬nh c?n ??i
? S? h¨°a h?p render h¨¬nh ?nh v¨¤ input ?i?u
khi?n game
? Tri?n khai tr?ng th¨¢i game
? Tri?n khai code trong 1 tr?ng th¨¢i game
? M?t v¨¤i ?i?m t? h?i c?a game
? t??ng
? C?u h?i l?n v? ? t??ng cho game.
? Th?c ra khi b?t ??u l¨¤m game t?i c?ng c¨®
nh?ng v??ng m?c l¨¤ t¨¬m ? t??ng.
? C?u tr? l?i sau nhi?u l?n ?i h?i: ?¨® l¨¤ b?n c? l¨ºn
m?ng xem c¨¢c tr¨° game ???c nhi?u ng??i ch?i,
sau ?¨® xem m¨¬nh c¨® th? s¨¢ng t?o th¨ºm hay
kh?ng?
? Hay kh?c ph?c nh?ng khuy?t ?i?m c?a n¨®?
? Th?m ch¨ª d?a theo m?t game ?? c¨® ch? l?i theo
? m¨¬nh.
? C¨® th? tr?n ? t??ng nhi?u game l?i.
T¨¤i nguy¨ºn game
? Th??ng th¨¬ h¨¬nh ?nh trong game
b?n n¨ºn ch?n jpg hay png v¨¬ 2
lo?i n¨¤y kh¨¢ ph? bi?n.
? jpg n¨ºn ch?n cho h¨¬nh n?n, v¨¬ n¨®
kh?ng c¨® m¨¤u trong su?t.(H?y ??
? khi b?n ?? c¨¢c h¨¬nh jpg l¨ºn nhau
n¨® s? che khu?t m¨¤u tr?ng l¨ºn
nhau)
T¨¤i nguy¨ºn game
? c¨¢c ?nh khi ?? v¨¤o game h?n ch? v¨¤ tuy?t
??i kh?ng ch?nh k¨ªch c? l?i m¨¤ d¨´ng lu?n
k¨ªch c? t? nhi¨ºn. n?u b?n mu?n ch?nh
k¨ªch c? th¨¬ ch?nh ? ngo¨¤i b?ng c¨¢c ph?n
m?m ch?nh ?nh, sau ?¨® add v¨¤o game.
¨C V¨ª d?: ?nh k¨ªch th??c 400x400px nh?ng trong game ch?
mu?n hi?n l¨¤ 200x200px th¨¬ b?n c¨® th? th¨ºm v¨¤o game r?i
ch?nh k¨ªch c? l?i xu?ng 1 n?a, nh?ng nh? v?y kh?ng n¨ºn.
¨C ?nh c¨® th? b? b?, ho?c m¨¢y t¨ªnh t?n th?i gian thu nh? l?i, v¨¬
v?y t?t nh?t b?n n¨ºn s?a l?i k¨ªch th??c t? b¨ºn ngo¨¤i c¨°n
200x200 r?i th¨ºm v¨¤o game v¨¤ v? ra.
? t? kh¨®a ?? t¨¬m c¨¢c t?p ?nh chuy?n ??ng l¨¤
sprite sheet
T¨¤i nguy¨ºn game
? Th??ng c¨¢c b?n n¨ºn ch?n ?m thanh l¨¤
nh?ng nh?c kh?ng l?i l¨¤m n?n cho game.
? C¨¢c ng?n ng? vi?t game cho ph¨¦p b?n
n¨ºn d¨´ng nh?c chu?n midi cho nh?,
nh?ng th??ng th¨¬ mp3, c¨°n cao c?p th¨¬
ogg
? ?m thanh nh? nh¨¤ng, l¨²c cao tr¨¤o hay
ng??i ch?i g?n thua th¨¬ ti?t t?u nhanh v¨¤
h?i h?
M¨¤n h¨¬nh
? D?a theo m¨¤n h¨¬nh m¨¤ b?n c¨® fit game sau cho
lu?n gi? t? l? m¨¤ b?n mu?n.
? V¨ª d?: t? l? m¨¤ b?n mu?n game 4x3 m¨¤ h? m¨¤n
h¨¬nh l¨¤ 16x9 th¨¬ b?n l?y c¨¢i c?nh nh? nh?t l¨¤ 9
l¨¤m g?c, r?i c?n c?nh 4 theo t? l?.
H¨°a h?p render v¨¤ controller
? C¨® 1 ?i?m ch?t ng??i m¨¤ nhi?u b?n m?i l¨¤m game
th??ng m?t ph?i l¨¤:
? Ch?y 1 h¨¤m ??nh k? ??:
¨C ki?m tra ng??i ch?i c¨® nh?n ph¨ªm hay chu?t g¨¬ kh?ng
¨C v? t?t c? ??i t??ng game
? ?i?m b?t l?i ? ??y ch¨ªnh l¨¤ ??i khi m¨¢y ch?y game y?u
hay vi?c v? l?i c¨¢c ??i t??ng game kh?ng c?n thi?t c?p
nh?t li¨ºn t?c th¨¬: VI?C C?P NH?T ph¨ªm/chu?t B? K?O
D?I THEO V? KH?NG T?C TH?.(ng??i ch?i lu?n mu?n
l¨¤ nh?n ph¨ªm th¨¬ ph?i c¨® h¨¤nh ??ng li?n ch? kh?ng ??i
5s hay 10s sau c¨´ng l¨²c v?i h¨¤m v? render ???c)
X?y d?ng c¨¢c tr?ng th¨¢i game
? Th?c ch?t ??y l¨¤ b??c b?n vi?t k?ch b?n cho game, ?i?u
m¨¤ b?n b?t bu?c l?p ra tr??c khi b?t ??u vi?t 1 game
? B?n c¨® th? xem v¨ª d? h¨¬nh d??i
Tri?n khai c?u tr¨²c 1 tr?ng th¨¢i
? Th??ng sau n¨¤y ch¨²ng ta n¨ºn l?p tr¨¬nh theo
h??ng ??i t??ng.
? C¨¢c ??i t??ng trong game l¨¤ c¨¢c class v¨¤ b?t
bu?c c¨® h¨¤m render (h¨¤m v? ?¨® t??ng ra m¨¤n
h¨¬nh)
? Tr?ng th¨¢i ch¨ªnh l¨¤ 1 class ri¨ºng bi?t g?m c¨¢c
function sau:
¨C init: k¨ªch ho?t h¨¤m n¨¤y ?? kh?i t?o: bi?n ?i?m, bi?n
level, ??ng k? c¨¢c h¨¤m x? l? s? ki?n b¨¤n ph¨ªm/chu?t,
h¨¤m c?p nh?t v¨¤ v? l?i t?t c? ??i t??ng ?ang c¨®
¨C h¨¤m x? l? s? ki?n chu?t hay b¨¤n ph¨ªm
¨C h¨¤m c?p nh?t v?
M?t v¨¤i ?i?m t? h?i
? ?m thanh: nh?c n?n, nh?c t?ng action
? H¨¬nh ?nh: ?? ph?n gi?i ph¨´ h?p render
? Ho?t h¨¬nh:
¨C kh?ng ???c ?? tr?ng th¨¢i ch?t.
¨C m?i t¨¢c ??ng ng ch?i ??u c¨® hi?u ?ng t??ng
?ng.

More Related Content

M?t s? l?u ? c? b?n v? vi?t game

  • 1. M?t s? l?u ? c? b?n v? vi?t game - by Johnny Chen
  • 2. Y¨ºu c?u 1 game t?t ? H¨¬nh ?nh ??p ? C¨® ?m thanh t?t ? M¨¤n ch?i k?ch t¨ªnh ? Code ph?i si¨ºu g?n nh? ?? c¨¤i ??t nhanh ? Code ph?i m?ch l?c ?? n?ng c?p d? ? Game ph?i c¨® thu?t to¨¢n x? l? t?t, tr¨¢nh t¨¬nh tr?ng gi?t lag ? Game ph¨´ h?p v?i c¨¤ng nhi?u c?u h¨¬nh m¨¢y c¨¤ng t?t ? N?i dung l?i cu?n, l¨¤nh m?nh v¨¤ t? nhi¨ºn
  • 3. C¨¢c l?u ? ? ? t??ng: T?i t¨¬m ? t??ng ? ??u ??y? ? T¨¤i nguy¨ºn game: h¨¬nh ?nh v¨¤ ??nh d?ng ? C¨¢ch hi?n m¨¤n h¨¬nh c?n ??i ? S? h¨°a h?p render h¨¬nh ?nh v¨¤ input ?i?u khi?n game ? Tri?n khai tr?ng th¨¢i game ? Tri?n khai code trong 1 tr?ng th¨¢i game ? M?t v¨¤i ?i?m t? h?i c?a game
  • 4. ? t??ng ? C?u h?i l?n v? ? t??ng cho game. ? Th?c ra khi b?t ??u l¨¤m game t?i c?ng c¨® nh?ng v??ng m?c l¨¤ t¨¬m ? t??ng. ? C?u tr? l?i sau nhi?u l?n ?i h?i: ?¨® l¨¤ b?n c? l¨ºn m?ng xem c¨¢c tr¨° game ???c nhi?u ng??i ch?i, sau ?¨® xem m¨¬nh c¨® th? s¨¢ng t?o th¨ºm hay kh?ng? ? Hay kh?c ph?c nh?ng khuy?t ?i?m c?a n¨®? ? Th?m ch¨ª d?a theo m?t game ?? c¨® ch? l?i theo ? m¨¬nh. ? C¨® th? tr?n ? t??ng nhi?u game l?i.
  • 5. T¨¤i nguy¨ºn game ? Th??ng th¨¬ h¨¬nh ?nh trong game b?n n¨ºn ch?n jpg hay png v¨¬ 2 lo?i n¨¤y kh¨¢ ph? bi?n. ? jpg n¨ºn ch?n cho h¨¬nh n?n, v¨¬ n¨® kh?ng c¨® m¨¤u trong su?t.(H?y ?? ? khi b?n ?? c¨¢c h¨¬nh jpg l¨ºn nhau n¨® s? che khu?t m¨¤u tr?ng l¨ºn nhau)
  • 6. T¨¤i nguy¨ºn game ? c¨¢c ?nh khi ?? v¨¤o game h?n ch? v¨¤ tuy?t ??i kh?ng ch?nh k¨ªch c? l?i m¨¤ d¨´ng lu?n k¨ªch c? t? nhi¨ºn. n?u b?n mu?n ch?nh k¨ªch c? th¨¬ ch?nh ? ngo¨¤i b?ng c¨¢c ph?n m?m ch?nh ?nh, sau ?¨® add v¨¤o game. ¨C V¨ª d?: ?nh k¨ªch th??c 400x400px nh?ng trong game ch? mu?n hi?n l¨¤ 200x200px th¨¬ b?n c¨® th? th¨ºm v¨¤o game r?i ch?nh k¨ªch c? l?i xu?ng 1 n?a, nh?ng nh? v?y kh?ng n¨ºn. ¨C ?nh c¨® th? b? b?, ho?c m¨¢y t¨ªnh t?n th?i gian thu nh? l?i, v¨¬ v?y t?t nh?t b?n n¨ºn s?a l?i k¨ªch th??c t? b¨ºn ngo¨¤i c¨°n 200x200 r?i th¨ºm v¨¤o game v¨¤ v? ra. ? t? kh¨®a ?? t¨¬m c¨¢c t?p ?nh chuy?n ??ng l¨¤ sprite sheet
  • 7. T¨¤i nguy¨ºn game ? Th??ng c¨¢c b?n n¨ºn ch?n ?m thanh l¨¤ nh?ng nh?c kh?ng l?i l¨¤m n?n cho game. ? C¨¢c ng?n ng? vi?t game cho ph¨¦p b?n n¨ºn d¨´ng nh?c chu?n midi cho nh?, nh?ng th??ng th¨¬ mp3, c¨°n cao c?p th¨¬ ogg ? ?m thanh nh? nh¨¤ng, l¨²c cao tr¨¤o hay ng??i ch?i g?n thua th¨¬ ti?t t?u nhanh v¨¤ h?i h?
  • 8. M¨¤n h¨¬nh ? D?a theo m¨¤n h¨¬nh m¨¤ b?n c¨® fit game sau cho lu?n gi? t? l? m¨¤ b?n mu?n. ? V¨ª d?: t? l? m¨¤ b?n mu?n game 4x3 m¨¤ h? m¨¤n h¨¬nh l¨¤ 16x9 th¨¬ b?n l?y c¨¢i c?nh nh? nh?t l¨¤ 9 l¨¤m g?c, r?i c?n c?nh 4 theo t? l?.
  • 9. H¨°a h?p render v¨¤ controller ? C¨® 1 ?i?m ch?t ng??i m¨¤ nhi?u b?n m?i l¨¤m game th??ng m?t ph?i l¨¤: ? Ch?y 1 h¨¤m ??nh k? ??: ¨C ki?m tra ng??i ch?i c¨® nh?n ph¨ªm hay chu?t g¨¬ kh?ng ¨C v? t?t c? ??i t??ng game ? ?i?m b?t l?i ? ??y ch¨ªnh l¨¤ ??i khi m¨¢y ch?y game y?u hay vi?c v? l?i c¨¢c ??i t??ng game kh?ng c?n thi?t c?p nh?t li¨ºn t?c th¨¬: VI?C C?P NH?T ph¨ªm/chu?t B? K?O D?I THEO V? KH?NG T?C TH?.(ng??i ch?i lu?n mu?n l¨¤ nh?n ph¨ªm th¨¬ ph?i c¨® h¨¤nh ??ng li?n ch? kh?ng ??i 5s hay 10s sau c¨´ng l¨²c v?i h¨¤m v? render ???c)
  • 10. X?y d?ng c¨¢c tr?ng th¨¢i game ? Th?c ch?t ??y l¨¤ b??c b?n vi?t k?ch b?n cho game, ?i?u m¨¤ b?n b?t bu?c l?p ra tr??c khi b?t ??u vi?t 1 game ? B?n c¨® th? xem v¨ª d? h¨¬nh d??i
  • 11. Tri?n khai c?u tr¨²c 1 tr?ng th¨¢i ? Th??ng sau n¨¤y ch¨²ng ta n¨ºn l?p tr¨¬nh theo h??ng ??i t??ng. ? C¨¢c ??i t??ng trong game l¨¤ c¨¢c class v¨¤ b?t bu?c c¨® h¨¤m render (h¨¤m v? ?¨® t??ng ra m¨¤n h¨¬nh) ? Tr?ng th¨¢i ch¨ªnh l¨¤ 1 class ri¨ºng bi?t g?m c¨¢c function sau: ¨C init: k¨ªch ho?t h¨¤m n¨¤y ?? kh?i t?o: bi?n ?i?m, bi?n level, ??ng k? c¨¢c h¨¤m x? l? s? ki?n b¨¤n ph¨ªm/chu?t, h¨¤m c?p nh?t v¨¤ v? l?i t?t c? ??i t??ng ?ang c¨® ¨C h¨¤m x? l? s? ki?n chu?t hay b¨¤n ph¨ªm ¨C h¨¤m c?p nh?t v?
  • 12. M?t v¨¤i ?i?m t? h?i ? ?m thanh: nh?c n?n, nh?c t?ng action ? H¨¬nh ?nh: ?? ph?n gi?i ph¨´ h?p render ? Ho?t h¨¬nh: ¨C kh?ng ???c ?? tr?ng th¨¢i ch?t. ¨C m?i t¨¢c ??ng ng ch?i ??u c¨® hi?u ?ng t??ng ?ng.