Thursday, September 3, 2015

Đừng chỉ chơi game, hãy học lập trình game

Đừng chỉ chơi game, hãy học lập trình game

Ngay chính tại nước Mỹ, tổng thống Barack Obama đã phát biểu: “Đừng chỉ mua game, hãy tạo ra nó. Đừng chỉ chơi game trên điện thoại, hãy học cách lập trình game”.
Trên thế giới, ngành công nghiệp game đang phát triển với tốc độ thần tốc, hứa hẹn có thể gia tăng lên hơn 90 tỉ đô trong năm 2015, và sẽ vượt 100 tỷ đô năm 2017. Tại Việt Nam, riêng trong năm 2014, doanh thu đến từ ngành công nghiệp game cũng chiếm khoảng 233 triệu USD. Có nghĩa là, cơ hội để tỏa sáng trong ngành này là không thiếu. Thậm chí, dù trả mức lương khá cao (từ 8 đến 15 triệu/ tháng) cho những sinh viên mới ra trường (entry level), các công ty game lớn ở Việt Nam cũng đang rất khát nhân lực đáp ứng được yêu cầu chuyên môn.
Nhiều bạn mặc dù đã rất yêu thích và muốn theo học về game, nhưng vẫn e ngại rằng ngành này khó khăn và “khô như ngói”. Trên thực tế, ngoài khả năng logic, ngành học này còn rất cần những bạn trẻ sáng tạo và có óc thẩm mỹ đấy. Tại sao ư? Vì ngành này thường chia là 2 mảng chính: Game Design và Game Programming.
Bạn có bị ấn tượng bởi đồ họa của các nhân vật như Lee Sin, Blitcrank hay Yasuo trong Liên Minh Huyền Thoại và muốn học cách tạo ra những nhân vật như vậy? Với chuyên ngành Game Design, bạn sẽ có cơ hội sáng tạo nên những nhân vật bắt mắt, bá đạo nhất của riêng mình. Không chỉ vậy, bạn còn có thể nghĩ ra những trò chơi tưởng chừng như rất đơn giản nhưng khiến người chơi bị hút vào, hay thậm chí là “sôi máu”… như trò chơi “Flabby bird” đình đám một thời chẳng hạn? Trí sáng tạo của bạn chắc chắn sẽ được bay cao bay xa với chuyên ngành này đấy!
Và, một trò game dù hay đến đâu cũng không thể nào đến tay người chơi nếu thiếu đi những nhà lập trình game. Game Programming sẽ giúp bạn “chuyển hóa” những thiết kế game thành một trò chơi hoàn chỉnh với những ngôn ngữ lập trình đa dạng như C, C++, C#, Java, JavaScript hoặc Swift. Lập trình nói chung giúp cho bạn phát triển một khả năng suy nghĩ logic, và từ đó giải quyết những vấn đề trong cuộc sống dễ dàng hơn.
Nếu bạn đã hoàn toàn bị thuyết phục bởi ngành học hấp dẫn và rất “cool” này; vậy câu hỏi quan trọng tiếp theo là, bạn nên học nó ở đâu?
Như bao ngành nghề khác, để tăng khả năng thành công trong sự nghiệp, tiếng Anh là một thứ “vũ khí” không thể thiếu. Chính vì thế, SaigonTech tự hào là một trong những cơ sở giáo dục tại Việt Nam cung cấp chương trình đào tạo Lập trình game hoàn toàn bằng tiếng Anh. Khi tham gia khóa học, bạn có cơ hội sở hữu tấm bằng của Đại học Cộng đồng Houston, Hoa Kỳ. Với chương trình học cập nhật liên tục, bạn được tiếp cận với những kiến thức bổ ích để có khả năng thiết kế và lập trình một game hoàn chỉnh.
img20150902222032337 Đừng chỉ chơi game, hãy học lập trình game
 
Hấp dẫn hơn nữa, sinh viên còn được trải qua 1 chuyến thực tập 6 tháng tại Pháp với mức lương 500 Euro/tháng ngay trong chính chương trình học của mình. Trải nghiệm quý giá này sẽ giúp sinh viên nâng cao kĩ năng làm việc thực tế và kinh nghiệm quốc tế của mình trong xu hướng toàn cầu hóa của thế giới.
 
img20150902222033008 Đừng chỉ chơi game, hãy học lập trình game
 
Tốt nghiệp SaigonTech, với vốn tiếng Anh hoàn hảo và kinh nghiệm làm việc “pro”, bạn hoàn toàn tự tin khi gia nhập những công ty game lớn tại Việt Nam hay phát triển sự nghiệp ở bất kì đâu trên thế giới. Còn nếu bạn muốn tiếp tục học lên cao, tấm bằng của Đại học Cộng đồng Houston, Hoa Kỳ cũng sẽ giúp bạn chinh phục ước mơ học thuật ở Mỹ, Pháp hay những quốc gia phát triển khác.
 
img20150902222033132 Đừng chỉ chơi game, hãy học lập trình game
 
Obama đã từng nói “Đừng để bất kì ai nói rằng: Bạn không thể! Dù bạn là nam hay nữ, dù bạn sống ở đô thị hay nông thôn, máy tính sẽ là một phần tương lai của bạn!” Vậy thì, bạn còn ngần ngại gì mà không theo đuổi đam mê và vẽ nên tương lai của mình? Gọi ngay cho chúng tôi tại số hotline 09 150 150 88 để được tư vấn thêm cho học kì Mùa Thu, khai giảng ngày 19/9/2015 này nhé!

Thursday, August 6, 2015

Getting Started with Unity 5

Getting Started with Unity 5
Xuất bản 2015 
download link (các bạn chọn ô "tôi không phải là người máy để tải về nhé")

Monday, August 3, 2015

chia sẻ khóa học unity

chia sẻ khóa học unity từ cơ bản đến nâng cao có trên udemy nè mọi người.(mua trên đó tốn tiền lắm đó ở đay free) link liên kết (mọi người thông cảm đợi chút nha!)


  • serial hướng dẫn căn bản giúp bạn làm quen với Unity3d 
  • học căn bản phần 2 qua serial hướng dẫn bạn làm full game Block Breaker - Unity
  • học nâng cao phần 3 qua serial hướng dẫn bạn làm full game Laser Defender - Unity
  • học nâng cao hơn phần 4 qua serial hướng dẫn bạn làm full game Glitch Garden A Plants vs. Zombies Clone - Unity
  • học nâng cao hơn phần 5 qua serial hướng dẫn bạn làm full game Bowlmaster 10-Pin Bowling - Unity

Friday, July 31, 2015

Kiếm tiền trên mạng hiệu quả nhất tại Việt Nam

1. Giới thiệu về Access Trade

ACCESSTRADE là mạng lưới tiếp thị liên kết hàng đầu Đông Nam Á mới ra mắt tại Việt Nam. Nếu bạn là doanh nghiệp hoặc cá nhân sở hữu hoặc điều hành các website, trang blog cá nhân, thành viên của các diễn đàn, mạng xã hội hãy tham gia ngay vào mạng lưới để làm việc ngay lập tức. Đăng ký tài khoản Đối tác Media của ACCESSTRADE để nhận ngay 50,000 VND vào tài khoản, giới hạn cho 1,000 đối tác đầu tiên. Thu nhập không giới hạn tùy vào khả năng của bạn. Cơ hội hợp tác phân phối game kiếm tiền, kiếm tiền bằng blog, kiếm tiền với website hàng đầu tại Việt Nam

Do đó accesstrade là nền tảng tiếp thị liên kết (affiliate), kênh trung gian kết nối công ty bán hàng và cung cấp dịch vụ với khách hàng. Tiếp thị liên kết của accesstrade hay accesstrade affiliate còn khá mới mẻ với người việt nhưng với thế giới đây là hình thức kiếm tiền online hiệu quả và bền vững là nguồn thu nhập chính cho rất nhiều người.
Interspace Việt Nam đặt mục tiêu doanh thu từ nay đến hết năm 2015 khoảng 1 triệu USD.
Và có thể nói đây là cơ hội cho những Blogger không đăng ký được Adsense thì bạn sử dụng mạng dịch vụ này là khá tốt và hiệu quả rất cao. Kiếm được bao nhiều là tùy vào lượt truy cập và đối tượng người dùng tại website của bạn mà thôi.
Cách thức hoạt động như sau:
Bạn sẽ đặt banner, link và người dùng click vào link đến trang quảng cáo và đăng ký hoặc mua hàng hay sử dụng dịch vụ nào đó thì bạn sẽ nhận được hoa hồng. Kiếm tiền trên mạng chưa bao giờ dễ dàng đến thế. Sau khi đăng kí bạn sẽ dễ dàng sử dụng.

2. Lợi ích khi tham gia Accesstrade

– Nhận ngay 50.000đ vào tài khoản
– Nhận ngay 20.000đ khi mới được thêm tài khoản nữa
– Phân phối game ăn theo % nạp tiền vào game
Những lý do khiến Accesstrade trở thành cơ hội làm giàu của bạn?:
Nếu như trước đây hình thức tiếp thị liên kết chủ yếu phát triển trên mạng di động (Với các game, các sản phầm dành cho điện thoại thông minh). Thì nay bạn có thể chủ động khai thác khách hàng trên máy tính bàn (Lượng visit này rất đông, nhưng khai thác cực khó nếu như bạn không biết cách khai thác) mà không cần chờ đợi các cú click hay bán banner quảng cáo thông thường. Cơ hội kiếm tiền là không giới hạn.
 Accesstrade  dành cho những ai?:
Accesstrade dành cho tất cả các webmaster đang sở hữu lượng visit nhất định nhưng chưa tận dụng và khai thác được.
Mình vừa giới thiệu sơ qua về hình thức tiếp thị liên kết mới nhất tại Việt Nam với Accesstrade , theo mình đây là hình thức kiếm tiền đáng để thử nghiệm dành cho mọi người. Hãy tham gia ngay nào !

3. Cách đăng ký Access Trade

Nếu bạn tham gia phân phối app kiếm tiền của mwork thì khi đăng nhập xong nó hiện ngay AccessTrade ở thanh menu đó. Nếu không thì truy cập vào banner này cho nhanh:

Đăng ký Accesstrade >>> Tại đây






Đăng ký access trade
Đăng ký access trade

đăng kí thôi !



(Theo kynanggame - Kiếm tiền trên mạng)

GAME 2D XẾP HÌNH -TETRIS_P2

chào các bạn! hôm nay mình sẽ tiếp tục viết tiếp phần tiếp theo của loạt bài hướng dẫn lập trình Unity , với tựa game xếp hình huyền thoại Tetris.
Nội dung bài hôm nay:

  • Kiểm tra xem tất cả các khối nằm giữa hai đường biên giới
  • Kiểm tra xem tất cả các khối trên  y = 0
  • Kiểm tra nếu một nhóm có thể duy chuyển với 1 đơn vị
  • Kiểm tra nếu một hàng có đầy đủ các khối
  • Xóa một hàng
  • Giảm một của hàng y phối hợp
Cấu trúc dữ liệu:
Giải pháp là dùng một mảng hai chiều (ma trận). giờ mình tạo ra script mới với tên là matrix nhe
chuột phải->Create->C#script



using UnityEngine;
using System.Collections;
public class matrix : MonoBehaviour {
public static int w = 10;//chiều rong
public static int h = 20;//chieu cao
public static Transform[,] grid = new Transform[w, h];// ma tran
// Use this for initialization
void Start () { }
void Update () {}
}
như đã thấy ở trên, mãng hai chiều grid sẽ quản lý tọa độ của các ô vuông theo thông số w,h.
để các tọa đọ này không bị lẻ khi ta di chuyển sang trẽ viết thêm hàm làm tròn
public static Vector2 roundVec2(Vector2 v) {///hàm làm tròn
return new Vector2(Mathf.Round(v.x),
Mathf.Round(v.y));
}
hàm có thông số đàu vào là một vector hai D và trả về vector 2D với các tọa độ x,y đã làm xong.


Hàm tiếp theo để kiểm tra các Ô vuông vẫn nằm trong hai đường biên hai bên và đường biên dưới, trả về giá trị true khi tất cả các điều kiện đều đúng, ngược lại nếu có một cái sai, hàm trả về false
public static bool insideBorder(Vector2 pos) {//kiem tra trong return ((int)pos.x >= 0 && (int)pos.x < w && (int)pos.y >= 0); }
}
hàm xóa một hàng thứ Y nào đó. public static void deleteRow(int y) {///xóa hang thu y for (int x = 0; x < w; ++x) {///duyet qa tat cả x trong hang y Destroy(grid[x, y].gameObject);//xoa ô grid[x, y] = null;//gán nulll lai nó } Như chức năng hàm trên thì ta chỉ xóa các ô của một hàng, vậy khi xóa xong nó được gắn là Null, nghĩa là hàng đó sẽ trống, để lấp đầy khoảng trống đó ta tiếp tục tạo thêm hàm public static void decreaseRow(int y) {//hàm hạ các O trong hang Y xuông 1 đơn vị for (int x = 0; x < w; ++x) {// duyệt qa các ô trong hàn y if (grid[x, y] != null) {//neu khác null grid[x, y-1] = grid[x, y];// di chuyển vị tri y xuống 1 ô grid[x, y] = null;//khi xuông 1 ô thì thằng tren đó gán lại la Null grid[x, y-1].position += new Vector3(0, -1, 0);// cập nhạt lại tọa độ cho nó(x,y,z) } } } hàm trên chỉ có hạ xuống một đơn vị , vậy ta se lập lại hàm trên thì có thể đưa tất cả các hàng xuống 1 đơn vị rồi, public static void decreaseRowsAbove(int y) {//hàng thứ y for (int i = y; i < h; ++i)///duyet từ hàng y trở len tren decreaseRow(i); // gọi hàm duy chuyen xuong 1 ô } ok rồi đó, giờ ta vào vấn đề làm sao biết hàng Y nào là đủ các ô, giải pháp là đay public static bool isRowFull(int y) {//kiểm tra hang y có đủ các ô for (int x = 0; x < w; ++x)//dhuyet qa cac ô if (grid [x, y] == null)//nếu trông thì tra ve false return false; return true;// đúng het thì true; } Tìm được hàng đã xóa rồi thì ta sẽ duyệt hết các hàng, tìm hàng nào đủ điều kiện xóa ô thì gọi hàm xóa và cập nhật lại vt. // hàm tìm và xóa hàng nào đủ các ô public static void deleteFullRows() { for (int y = 0; y < h; ++y) {// duyet từ hàn 0 đến hàng h if (isRowFull(y)) {// nếu hàg y mà đủ các ô deleteRow(y);// xóa hàn y decreaseRowsAbove(y+1);// goi hàm hạ ô xuống từ hàng trên hàng đủ ô 1 đơn vi --y;// giảm y vì đã xóa 1 hàng rồi mà } } } Xong phàm dữ liệu rồi đó
 tiếp tục tạo ra class mới quản lý các khối ô của chúng ta sẽ có ở bài 3.

link tải project 




tài liêu tham khảo:noobtuts

Thursday, July 30, 2015

CÁC THÀNH PHẦN CƠ BẢN TRONG UNITY

GameObject:

Là thành phần quan trọng của Unity. Một đối tượng cụ thể trong game gọi là một game object, có thể là nhân vật, đồ vật nào đó.Ví dụ: cây cối, xe cộ, nhà cửa, người...
Một GameObject sẽ có nhiều thành phần cấu tạo nên nó mỗi thành phần như vậy gọi là một component của GameObject.
Một GameObject luôn có một transform- thành phần đính kèm (đại diện cho vị trí và hướng) và không thể loại bỏ điều này. Các thành phần khác có thể được bổ sung hoặc loại bỏ. Script kiểm soát GameObjects từ kịch bản trên các các cấu trúc quy định sẳn của unity 3D.

collider: 
Hệ thống xử lý va chạm bào gồm 2d và 3d. Được chia ra các va chạm của các hình cơ bản:
ü    Box collider: Va chạm cho các vật hình hợp chữ nhật đối với 3d và hình chữ nhật đối với 2d.

o              Is Trigger: dạng true/false, cho phép va chạm có đi xuyên qua không?
o              Material: tham chiếu đến physic material.
o              Center: điều chỉnh thông số tâm của va chậm theo các trục tương ứng.
o              Size: điều chỉnh kích thước theo các trục tương ứng.
ü     Capsule Colider: Va chạm dành cho các khói hình trụ.

o              Is Trigger: dạng true/false, cho phép va chạm có đi xuyên qua không?
o              Material: tham chiếu đến physic material.
o              Center: điều chỉnh thông số tâm của va chạm theo các trục tương ứng.
o              radius: điều chỉnh kích thước bán kính.
o              Height: độ cao
o              Direction: xoay hình trụ theo các trục tương ứng.
ü    Mesh Colilider: Va chạm dạng lưới dành các vật thể không xác định hình thể.

ü    Sphere Colider: va chạm  áp dụng cho các vật hình cầu

ü     Wheel collider: dành cho vật thể hình bánh xe. Nó sẽ mô phỏng hệ thống va chạm giống với các bánh xe.

ü     Terrain Collider: dành cho các vật thể địa hình và terrain collider sẽ dựa theo địa hình đó.

Nếu đối tượng có di chuyển thì collider sẽ phải kèm theo rigidbody.

Rigidbodi: Hệ thống mô phỏng vật lí trong game. Cũng chia ra 2d và 3d.



o  Mass: khối lượng (đơn vị tùy ý).
o  Drag: Sức cản không khí ảnh hưởng như thế nào với đối tượng khi di chuyển. 0 có nghĩa là không có sức cản không khí, và vô cùng làm cho các đối tượng di chuyển ngay lập tức dừng lại.
o  Angular Drag: Sức cản không khí ảnh hưởng đến các đối tượng khi quay từ mô-men xoắn. 0 có nghĩa là không có sức cản không khí. Không thể làm cho vật dừng quay hẳn chỉ bằng cách thiết lập Angular Drag của nó đến vô cùng.
o  Use Gravity: Nếu được kích hoạt, các đối tượng bị ảnh hưởng bởi lực hấp dẫn.
o  Is Kinematic: Nếu được kích hoạt, các đối tượng sẽ không được thúc đẩy bởi động cơ vật lý. 
o  Interpolate: giảm xóc.
o  Collision detection: Được sử dụng để ngăn chặn các đối tượng chuyển động nhanh qua các đối tượng khác mà không phát hiện va chạm.
o  Constraints: Ràng buộc Những hạn chế về chuyển động của Rigidbody:

 Sprite: Là một hình ảnh 2D của một game object có thể là hình ảnh đầy đủ, hoặc có thể là một bộ phận nào đó. Unity cho phép tùy chỉnh màu sắc, kích thước, độ phân giải của một hình ảnh 2d. 

Có 2 loại sprite là Single sprite và Multiple sprite.


 Animator: 


Trong 2D thi animotion là tập một hình ảnh động dựa trên sự thay đổi liên tục của nhiều sprite khác nhau. Trong 3d là một tập hợp các sự thay đổi theo thời gian của đối tượng trong không gian. Mỗi thay đổi là một key frame.-Key Frame hay Frame là một trạng thái của một animation.
o          Aminator: gồm các thành phần:
ü Controller: Bộ điều khiển animation gắn liền với nhân vật này. Nó sẽ quản lý các animation clip, các thông số tốc độ của animation, thứ tự các clip…
ü Avatar: thành phần tạo hình ảnh cho object.
ü Apply Root Motion: dạng true-false, cho phép thiết lập animation có di chuyển theo không gian đã được tạo khi cấu hình animation.
ü Animate Physics: dạng true-false, khi được chọn, các hình ảnh trong animation sẽ có thể tương tác vật lý với nhau.
ü Culling mode: chọn chế độ cho hình ảnh động.

Prefabs:

Là một khái niệm trong Unity, dùng để sử dụng lại các đối tượng giống nhau có trong game mà chỉ cần khởi tạo lại các giá trị vị trí, tỉ lệ biến dạng và góc quay từ một đối tượng ban đầu.

1.1.7 Audio Source:


Âm thanh trong game. Gồm cả âm thanh 2d và 3d.
ü    Audio clip: tham chiếu điến file âm thanh.
ü    Mute: chơi ở chế độ như tắt tiếng.
ü     Bypass effects: bộ lọc hiệu ứng áp dụng cho các nguồn âm thanh.
ü     Bypass listener effects: Điều này là để nhanh chóng chuyển tất cả các hiệu ứng Listener on / off.
ü     Pass Reverb Zones: Điều này là để nhanh chóng chuyển tất cả các khu Reverb on / off.
ü     Play on awake: Nếu được kích hoạt, âm thanh sẽ bắt đầu chơi lúc cảnh ra mắt. Nếu vô hiệu hóa, cần phải bắt đầu nó bằng cách sử dụng lệnh Play () từ kịch bản script.
ü     Loop: Kích hoạt tính năng này để làm cho Clip âm thanh lặp lại.
ü     Pitch: Xác định ưu tiên của nguồn âm thanh này trong số tất cả những nguồn âm cùng tồn tại trong bối cảnh đó. (Ưu tiên: 0 = quan trọng nhất, 256 = ít quan trọng nhất Mặc định = 128). 
ü     3D Sound Setting: Cài đặt được áp dụng cho các nguồn âm thanh nếu Audio Clip là một âm thanh 3D.
ü     2D Sound Setting: Cài đặt được áp dụng cho các nguồn âm thanh nếu Audio Clip là một âm thanh 2D.

 Script:

Script là tập tin chứa các đoạn mã nguồn, dùng để khởi tạo và xử lý các đối tượng trong game. Trong Unity có thể dùng C#, Java Script, BOO để lập trình Script.

 Scenes:

Quản lý tất cả các đối tượng trong một màn chơi của game. 

Assets:

Bao gồm tất cả những gì phục vụ cho dự án game như sprite, animation, sound, script, scenes…

 Camera:

Hình 214: Camera
Là một game object đặc biệt trong scene, dùng để xác định tầm nhìn, quansát các đối tượng khác trong game. Bao gồm các thuộc tính:
ü     Clear flags: Xác định phần nào của màn hình sẽ bị xóa. Đây là tiện dụng khi sử dụng nhiều máy ảnh để vẽ các yếu tố trò chơi khác nhau.
ü     Bachground: Màu áp dụng cho các màn hình còn lại sau khi tất cả các yếu tố trong quan điểm đã được rút ra và không có skybox.
ü     Culling Mask: Bao gồm hoặc bỏ qua lớp của các đối tượng được đưa ra bởi các Camera. 
ü     Projection: khả năng của máy ảnh để mô phỏng góc nhìn.
ü     Field of view (thuộc tính chỉ xuất hiện khi chọn Perspective trong mục Projection): Chiều rộng của góc nhìn của Camera, đo bằng độ dọc theo trục Y.
ü     HDR: Cho phép High Dynamic Range dựng hình cho camera này.

Transform:


o          Trasform: quản lý object trong không gian ba chiều, theo ba thông số:
ü   Postion: quản lí vị trí hiện tại của object.
ü   Rotation: quản lí cá thông số quay của object theo các trục x, y, z.
ü   Scale: quản lí các thông số phóng to, thu nhỏ theo các trục x, y, z.
oRenderer:

Các SpriteRenderer thànhphần cho phép bạn hiển thị hình ảnh như Sprites để sử dụng trong cả hai cảnh 2D và 3D.
ü   Sprite: Các đối tượng Sprite để render. Đối tượng Sprite có thể được tạo ra từ textures bằng cách sử dụng các thiết lập Sprite.
ü   Color: Vertex màu.
ü   Material: Chất liệu được sử dụng để làm sprite.
ü   Sorting Layer: Các layer được sử dụng để xác định các ưu tiên của sprite này trong khi hiển thị.

ü     Order in Layer: Các ưu tiên của sprite trong layer của nó. Con số thấp hơn được kết xuất đầu tiên và con số tiếp theo phủ bên dưới.

Wednesday, July 29, 2015

GAME 2D XẾP HÌNH -TETRIS

GIỚI THIỆU


Trong Tutorial hôm nay chúng ta sẽ tạo một trong những trò chơi hay nhất mọi thời đại:. phát hành vào tháng sáu năm 1984, nó đã trở thành phổ biến do đơn giản, nhưng vẫn rất nghiện trò chơi-chơi của mình.
Tetris nhân bản của chúng tôi sẽ được chỉ là đơn giản, chỉ với khoảng 130 dòng mã và hai tài sản. Trong khi các game có vẻ khá đơn giản, nó vẫn còn đi kèm với một vài thách thức và sẽ là một bài tập tuyệt vời cho người mới bắt đầu.
Như thường lệ, tất cả mọi thứ sẽ được giải thích dễ dàng như có thể để mọi người có thể hiểu được nó.


Yêu cầu

Kiến thức

Hướng dẫn  tôi không yêu cầu bất kỳ kỹ năng đặc biệt. Nếu bạn biết cơ bản Unity về GameObjects ,Prefabs và Transforms. đừng lo lắng về nó quá nhiều.

Unity Version

Tetris Tutorial chúng tôi sẽ sử dụng Unity 4.6. Các phiên bản mới hơn nếu làm việc tốt là tốt, các phiên bản cũ hơn có thể hoặc không thể làm việc. Điều quan trọng là phài lớn hơn 4.3 vì chỉ lớn hơn mới hổ trợ 2d
Không cần bất kỳ tác dụng nâng cao, do các phiên bản miễn phí của Unity sẽ làm làm tốt.

Thiết lập dự án

tải bộ asset (tài nguyên để làm game ).
Được rồi, chúng ta hãy làm một trò chơi  xếp hình huyền thoại nào. Mình sẽ tạo ra một dự án mới Unity và sau đó lưu nó như bất kỳ thư mục ở máy mình  D: ...\ Tetris và chọn  2D Create tao.
chọn vào main camera  chỉnh background sang màu đen (cho giống mình hihi) hoặc màu nào bạn thích.. Bạn nên chọn các thông số postion(vị trí tọa đó trong không gian Oxy), Rotation (xoay), và Scale theo như mình . 
Chú ý trong phần Projection chọn chế độ Orthographic (chế độ góc nhìn đi song song).

Tạo Art game

Các hình ảnh sẻ được tạo từ các ô vuông đơn. ghép các ô ta được hình ảnh mong muốn.
Như đã thấy trong các hình ảnh trên, mình sẽ giữ phong cách nghệ thuật đơn giản. Mỗi nhóm có thể được tạo ra với chỉ một loại khối với một, làm tròn chữ nhật

chọn ảnh nhìn vào phần inspector thiết lập các thông số như hình bên dưới.
tiếp theo là hai cạnh viền hai bên của trò chơi.
chỉnh thông số cho nó, củng như ô vuông bạn chỉ cần click chuột vào nó, nhìn qua Inspector điền thông số như hình dưới.

Tạo borders (hai cạnh hai bênh)

các bạn kéo cái hình boder từ asset bỏ vào phần hieyerachy như hình dưới.

Game mình tạo ra sẽ có chiều rộng 10 ô và cao 20 ô, vì vây các ô sẽ luôn nằm ở tọa đô (0,0) đên (9,19).
Vậy hai cái border sẽ nằm ở vị trí x =0 và x= 9, nhưng thế thì nó tuyệt đối quá, các hình có thể chồng lên nhau, nên có trừ hao một chút, mình chọn x=-0.5 và x=9.5

Scale y=40 để hình dài ra, nhấn play để xem 


Tạo các nhóm

Đầu tiên bạn tạo một gameobject rổng bằng cách nhấn vào Create->Create Empty
kéo các ô vông thả vào GameObject mới tạo

chữ o gồm 4 ô vuông:

với tọa độ 4 ô như sau:
x=0,y=0
x=0,y=1
x=1,y=0
x=1,y=1
chú ý: ở đay tọa độ phải được làm tròn, như thế thì khi di chuyển 1 đơn vị sẽ thuận lợi cho việc tính toán tọa đo sau này
Giờ hãy đăt tên(chọn Object nhấn F2) và lưu giữ Object này thành một Prefab.
giờ thì có thể xóa Group O ơ phần hierarchy. Nó đã lưu trữ ở asset nên bạn iên tâm.
Tiếp tục tạo các khối hình còn lại (làm tương tự, nhơ là tọa độ là số tròn nhé)

kéo thả hết vào asset đê lưu trữ nhe!

Bước tiếp theo bạn tạo một GameObject trống đặt tên là Spawner. với thông số như trong hình
Nó sẽ năm ở trên cùng có chúc năng tạo ngẫu nhiên các Group (O,L,J,T..) cho game. hãy tao Script để xử lý quá trình nào.(nhìn hình trên có cái button Add Component bạn chọn vào nó->New Script->đặt tên Spawner và cuối cùng là Create and Add)

khởi tạo một mãng các GameObject nó sẽ là các khối  trong game.
hàm ạo random một khối spawnNext() và gọi nó trong hàm Start(), để khi vừ mới vào là nó được gọi.

using UnityEngine;
using System.Collections;

public class Spawner : MonoBehaviour {
// Groups
public GameObject[] groups;

void Start () {
spawnNext ();
}

public void spawnNext() {
//vị trí Random
int i = Random.Range(0, groups.Length);

//random cái Group thứ i, tại vitri Postion và quay mặc đinh identity.
Instantiate(groups[i], transform.position, Quaternion.identity);
}
}



kéo thả các Group đã lưu ở asset vào Script như hình

chạy thử coi nào