Viết trò chơi Android đầu tiên của bạn bằng SDK SDK

Tác Giả: Randy Alexander
Ngày Sáng TạO: 1 Tháng Tư 2021
CậP NhậT Ngày Tháng: 26 Tháng Sáu 2024
Anonim
Viết trò chơi Android đầu tiên của bạn bằng SDK SDK - ỨNg DụNg
Viết trò chơi Android đầu tiên của bạn bằng SDK SDK - ỨNg DụNg

NộI Dung


Danh mục phổ biến nhất trên Google Play Store luôn là Trò chơi. Mặc dù tất cả chúng ta có thể sử dụng các ứng dụng năng suất chính như trình duyệt web, ứng dụng email và ứng dụng nhắn tin tức thời, chơi game vẫn là một phần quan trọng của trải nghiệm di động. Vì vậy, không có gì ngạc nhiên khi nhiều người muốn học phát triển cho Android muốn bắt đầu bằng cách tạo ra một trò chơi. Ngoài ra, hãy trung thực, viết một trò chơi là một niềm vui lớn hơn cả việc phát triển một ứng dụng năng suất!

Ngôn ngữ chính thức của Android là Java và môi trường phát triển chính thức là Android Studio. Nếu bạn muốn tìm hiểu về Java thì tôi đề xuất hướng dẫn cơ bản về Java của chúng tôi và nếu bạn muốn tìm hiểu cách viết một ứng dụng bằng Android Studio thì tôi khuyên bạn nên xem hướng dẫn của chúng tôi về cách viết ứng dụng Android đầu tiên của bạn. Tuy nhiên, studio Java và Android không phải là cách duy nhất để phát triển cho Android. Bạn có thể tìm thấy tổng quan về các ngôn ngữ và SDK có sẵn trong hướng dẫn của chúng tôi: Tôi muốn phát triển Ứng dụng Android - Tôi nên học ngôn ngữ nào?


Một trong những SDK được đề cập trong hướng dẫn ngôn ngữ lập trình là Corona, SDK của bên thứ ba được thiết kế chủ yếu để viết trò chơi. Thay vì Java, Corona sử dụng Lua, một ngôn ngữ kịch bản nhanh, dễ học nhưng mạnh mẽ. Tuy nhiên, Corona không phải là SDK chơi game di động duy nhất sử dụng Lua, các ví dụ nổi tiếng khác bao gồm Cocos2d-X, Marmalade và Gideros.

Tải xuống và cài đặt

Để bắt đầu với Corona, bạn sẽ cần tải xuống và cài đặt SDK. Truy cập trang web Corona và nhấn nút tải xuống. Bạn sẽ cần tạo một tài khoản (miễn phí) trước khi bạn có thể tải xuống bộ tài liệu. Nếu bạn muốn xây dựng một tệp .apk thực tế thay vì chỉ chạy chương trình của mình trong trình giả lập, bạn sẽ cần cài đặt Java 7, tuy nhiên bạn đã thắng được cần cài đặt SDK Android. Để cài đặt Bộ công cụ phát triển Java 7, hãy truy cập trang web của Oracle, hãy tìm phần có tên Bộ công cụ phát triển Java Java 7u79 và tải xuống phiên bản cho PC của bạn.


Một khi bạn đã cài đặt Corona, bạn cần kích hoạt nó. Đây là một quá trình một lần, miễn phí. Bắt đầu Trình mô phỏng Corona và đồng ý với giấy phép. Nhập địa chỉ email và mật khẩu bạn đã sử dụng để tải xuống và nhấp Đăng nhập.

Bắt đầu dự án

Từ trong Trình mô phỏng Corona, nhấp vào Dự án mới của Wikipedia. Hãy nhập tên cho ứng dụng của bạn trong trường Ứng dụng tên: Trường và để phần còn lại của cài đặt ở mặc định của chúng. Nhấp vào OK OK.

Ba cửa sổ sẽ xuất hiện. Hai cái đầu tiên là Bộ mô phỏng Corona và Đầu ra mô phỏng Corona. Corona cũng sẽ mở một cửa sổ trình duyệt tệp hiển thị các tệp cho dự án của bạn.

Phần lớn các tệp (một số 23 tệp) trong thư mục dự án là dành cho biểu tượng ứng dụng! Các tập tin quan trọng nhất đối với chúng tôi ngay bây giờ là chính, vì đây là nơi chúng tôi sẽ viết mã cho ứng dụng của chúng tôi.

Giới thiệu về Lua

Trước khi chúng tôi viết mã, chúng tôi cần thực hiện một chuyến tham quan Lua. Trình thông dịch Lua (hãy nhớ rằng đây là ngôn ngữ kịch bản, không phải ngôn ngữ được biên dịch) có sẵn cho Windows, OS X và Linux. Tuy nhiên, nó được tích hợp sẵn trong Corona, vì vậy tại thời điểm này, bạn không cần cài đặt thêm bất cứ thứ gì. Cách dễ nhất để chơi với Lua là sử dụng bản demo trực tuyến.

Bạn có thể tìm thấy rất nhiều hướng dẫn tốt về Lua trực tuyến và bạn nên xem Hướng dẫn tham khảo Lua, Lập trình trong Lua, The.Lua.Tutorial và Hướng dẫn Lua Hướng dẫn.

Đây là một chương trình Lua nhỏ sẽ cho bạn thấy một số tính năng chính của Lua:

Hàm cục bộ doubleIt (x) return x * 2 end cho i = 1,10,1 do x = doubleIt (i) if (x == 10) sau đó in ("ten") khác in (doubleIt (i)) end end

Đoạn mã trên cho thấy ba cấu trúc Lua quan trọng: hàm, vòng lặp và câu lệnh if. Chức năng doubleIt () rất đơn giản, nó chỉ tăng gấp đôi thông số được truyền x.

Mã chính là một cho vòng lặp từ 1 đến 10. Nó gọi doubleIt () cho mỗi lần lặp. Nếu giá trị trả về là 10 (tức là khi tôi là 5) sau đó mã in ra ra ten ten nếu không nó chỉ in ra kết quả của doubleIt ().

Nếu bạn có bất kỳ kinh nghiệm mã hóa nào thì mã ví dụ phải đủ dễ để làm theo. Nếu bạn đang muốn học một số chương trình cơ bản thì tôi khuyên bạn nên sử dụng một số tài nguyên được liên kết ở trên để trau dồi kỹ năng của bạn.

Viết trò chơi

Viết các chương trình cơ bản trong Corona rất đơn giản. Bạn chỉ cần quan tâm đến mình với một tập tin, chính và để cho Corona làm tất cả những việc nặng nhọc. Trò chơi mà chúng tôi sắp viết là một trò chơi đơn giản. Một quả bóng hoặc một quả bom sẽ thất bại trên màn hình. Nếu người chơi chạm vào khinh khí cầu họ ghi được một điểm, họ chạm vào một quả bom thì điểm số sẽ chia cho 2, như một hình phạt. Để viết mã bạn cần chỉnh sửa chính. Bạn có thể làm điều này trong bất kỳ trình soạn thảo văn bản.

SDK SDK có một công cụ vật lý 2D tích hợp, giúp xây dựng các trò chơi rất dễ dàng. Bước đầu tiên khi viết trò chơi là khởi tạo công cụ vật lý:

vật lý cục bộ = yêu cầu ("vật lý") vật lý.start ()

Các mã là khá tự giải thích. Các vật lý mô-đun được tải và khởi tạo, nó được gán cho biến vật lý. Để kích hoạt động cơvật lý.start () được gọi là.

Tiếp theo, chúng tôi tạo ra một số biến hữu ích sẽ hữu ích không chỉ cho trò chơi đơn giản này mà còn cho các trò chơi phức tạp hơn. một nửanửa giờ giữ các giá trị cho một nửa chiều rộng màn hình và một nửa chiều cao màn hình:

HalfW = display.contentWidth * 0.5 HalfH = display.contentHeight * 0.5

Các trưng bày đối tượng là một đối tượng được xác định trước mà Corona cung cấp trên toàn cầu.

Bây giờ đến bước đầu tiên thực sự làm cho một cái gì đó xảy ra trên màn hình:

bkg cục bộ = display.newImage ("night_sky.png", HalfW, HalfH)

Cũng như các thuộc tính như nội dungnội dung, các trưng bày đối tượng cũng có rất nhiều chức năng hữu ích. Các hình ảnh mới() Hàm đọc một tệp hình ảnh (trong trường hợp này là .png) và hiển thị nó trên màn hình. Các đối tượng hiển thị được hiển thị theo lớp, vì vậy đây là hình ảnh đầu tiên chúng ta đang đặt trên màn hình nên nó sẽ luôn là nền (trừ khi mã rõ ràng làm gì đó để thay đổi điều đó). Những thông số một nửanửa giờ nói với Corona để đặt hình ảnh ở giữa.

Tại thời điểm này, bạn có thể chạy mã trong trình giả lập và xem hình nền. Nếu bạn lưu tệp thì trình giả lập sẽ nhận thấy rằng tệp đã thay đổi và đề nghị khởi chạy lại. Nếu điều đó không xảy ra thì hãy sử dụng File-> Relaunch.

Vì người dùng sẽ ghi điểm khi chạm vào bóng bay, chúng tôi cần khởi tạo biến số điểm và hiển thị điểm số trên màn hình:

điểm = 0 điểmText = display.newText (điểm, nửaW, 10)

Điểm số sẽ được giữ trong biến có tên tưởng tượng ghi bàn,điểm số là đối tượng hiển thị điểm số. Như hình ảnh mới(), văn bản mới() Đặt một cái gì đó trên màn hình, trong trường hợp này văn bản. Kể từ khi điểm số là một biến toàn cục sau đó chúng ta có thể thay đổi văn bản tại bất kỳ điểm nào. Nhưng chúng tôi sẽ sớm nhận được điều đó.

Bạn có thể khởi chạy lại trình giả lập và xem điểm 0 hiển thị ở phía trên cùng của màn hình.

Còn lại: Chỉ là nền. Phải: Bối cảnh và điểm số.

Bây giờ đến một cái gì đó khó khăn hơn một chút, nhưng đừng lo lắng, tôi sẽ giải thích từng dòng một:

hàm chức năng cục bộ BalloonTouched (event) if (event.phase == "started") sau đó Runtime: removeEventListener ("enterFrame", event.elf) event.target:removeSelf () points = points + 1 pointsText.text = end end

Đoạn mã trên xác định một hàm gọi là BalloonTouched () sẽ được gọi mỗi khi một quả bóng được gõ. Chúng tôi đã không nói với Corona để gọi chức năng này mỗi khi khinh khí cầu được khai thác, điều đó sẽ đến sau, nhưng khi chúng tôi thực hiện thì đây là chức năng được gọi.

Chạm hoặc chạm vào các sự kiện có nhiều giai đoạn, nhiều giai đoạn để hỗ trợ kéo. Người dùng đặt ngón tay của họ lên một vật thể, đây là giai đoạn bắt đầu của Google. Nếu chúng trượt ngón tay theo bất kỳ hướng nào, thì đó là pha di chuyển trên đường. Khi người dùng nhấc ngón tay ra khỏi màn hình, đó là giai đoạn kết thúc.

Dòng đầu tiên của BalloonTouched () kiểm tra chúng tôi đang trong giai đoạn bắt đầu trên mạng. Chúng tôi muốn loại bỏ bong bóng và tăng điểm ngay khi có thể nhìn thấy. Nếu hàm được gọi lại cho các pha khác như đã kết thúc thì thì hàm đó không làm gì cả.

Bên trongnếu câu lệnh là bốn dòng mã. Hãy để đối phó với hai người cuối cùng trước, vì chúng đơn giản hơn.điểm = điểm + 1 chỉ cần tăng số điểm lên một vàđiểm số.text = điểm số thay đổi văn bản điểm số trên màn hình để phản ánh điểm số mới. Hãy nhớ tôi đã nói như thế nàođiểm số là toàn cầu và có thể được truy cập ở bất cứ đâu, đó là những gì chúng tôi làm ở đây.

Bây giờ cho hai dòng đầu tiên. Khi một quả bóng hoặc quả bom rơi xuống đáy màn hình, nó vẫn tồn tại trong bộ nhớ ứng dụng, chỉ là bạn có thể nhìn thấy nó. Khi trò chơi tiến triển, số lượng các đối tượng ngoài màn hình này sẽ tăng đều đặn. Do đó, chúng ta cần phải có một cơ chế xóa các đối tượng một khi chúng khuất khỏi tầm nhìn. Chúng tôi làm điều đó trong một chức năng gọi làngoài màn hình, mà chúng tôi thiên đường viết bằng văn bản chưa. Chức năng đó sẽ được gọi một lần trên mỗi khung hình trong trò chơi. Khi một quả bóng đã được gõ thì chúng ta cần xóa nó và xóa cuộc gọi kiểm tra xem quả bóng có bị tắt khỏi màn hình không.

Dòngevent.target:removeSelf () xóa bóng bay. Khi xảy ra sự kiện chạm, một trong các tham số của chức năng nghe làbiến cố tham số. Nó cho biết chức năng về sự kiện và loại sự kiện đó là gì, ví dụ:sự kiện. Nó cũng cho chúng ta biết quả bóng nào đã được gõ,event.target. CácxóaSelf () Hàm thực hiện những gì nó nói, nó xóa đối tượng (trong trường hợp này là một quả bóng).

Dòng trước đó sẽ loại bỏ trình nghe của enterframe, đó là chức năng được gọi là mọi khung hình để xem quả bóng có rơi ra khỏi đáy màn hình hay không. Chúng tôi sẽ xem xét chi tiết hơn khi chúng tôi viếtngoài màn hình chức năng nghe.

Vì vậy, để tóm tắt lại.BalloonTouched ()kiểm tra xem đây là sự khởi đầu của chuỗi cảm ứng. Sau đó, nó loại bỏ trình nghe của enterframe, đây là chức năng được gọi là mọi khung hình để xem quả bóng có rơi ra khỏi đáy màn hình hay không. Sau đó nó xóa bóng bay, tăng điểm và hiển thị điểm mới.

Đó là cho bóng bay, bây giờ chúng ta cần một thứ tương tự cho bom:

chức năng cục bộ bombTouched (event) if (event.phase == "started") sau đó Runtime: removeEventListener ("enterFrame", event.elf) event.target:removeSelf () points = math.floor (points * 0.5) pointsText.text = kết thúc điểm cuối

Như bạn có thể thấy mã rất giống với ngoại lệ thay vì tăng điểm, điểm sẽ được nhân với 0,5 (tức là chia cho 2). Các math.floor () hàm làm tròn số điểm xuống số nguyên gần nhất. Vì vậy, nếu người chơi có số điểm là 3 và gõ một quả bom thì điểm mới sẽ là 1 chứ không phải 1,5.

Tôi đã đề cập đến ngoài màn hình () chức năng sớm hơn. Hàm này sẽ được gọi mỗi khung hình để kiểm tra xem một đối tượng đã tắt màn hình chưa. Đây là mã:

chức năng cục bộ offscreen (self, event) if (self.y == nil) sau đó trả về end if (self.y> display.contentHeight + 50) sau đó Runtime: removeEventListener ("enterFrame", self) self: removeSelf () end end

Trong điện toán có một tình huống được gọi là một điều kiện chủng tộc. Đây là nơi hai điều sẽ xảy ra nhưng một điều có thể xảy ra trước, hoặc đôi khi điều khác có thể xảy ra trước. Đó là một cuộc đua. Một số điều kiện chủng tộc không được nhìn thấy bởi vì một điều dường như luôn xảy ra đầu tiên, nhưng chúng có thể gây ra các lỗi thú vị trong một ngày, trong điều kiện thích hợp, điều khác xảy ra trước và sau đó hệ thống bị hỏng!

Có một điều kiện cuộc đua trong trò chơi đơn giản này bởi vì hai điều có thể xảy ra rất gần nhau: một quả bóng được gõ và ngoài màn hình () Chức năng được gọi để xem nếu quả bóng bay ra khỏi màn hình. Kết quả là mã để xóa bóng bay có thể được gọi và sau đó ngoài màn hình () chức năng được gọi (xảy ra như 30 lần mỗi giây). Để giải quyết chuỗi sự kiện kỳ ​​lạ này, ngoài màn hình () chức năng cần kiểm tra nếu y giá trị của đối tượng là không (null) hoặc không. Nếu nó là không sau đó nó có nghĩa là đối tượng đã bị xóa rồi, vì vậy hãy di chuyển theo, những aren này chúng ta đang tìm kiếm.

Nếu đối tượng vẫn đang chơi, sau đó kiểm tra vị trí của nó, nếu nó đã tắt 50 pixel khỏi màn hình thì hãy xóa nó và xóa người nghe để ngoài màn hình () Hàm won đã được gọi lại cho đối tượng này. Mã để đảm bảo rằngngoài màn hình () được gọi là mỗi khung là một phần của phần mã tiếp theo.

Toàn bộ tiền đề của trò chơi này là những quả bóng hoặc bom mới sẽ tiếp tục rơi xuống màn hình. Do đó, chúng ta cần một chức năng sẽ tạo ra một quả bóng mới hoặc một quả bom mới:

hàm cục bộ addNewBalloonOrBomb () local startX = math.random (display.contentWidth * 0.1, display.contentWidth * 0.9) if (math.random (1,5) == 1) sau đó - BOMB! local bomb = display.newImage ("bomb.png", startX, -300) vật lý.addBody (bom) bomb.enterFrame = offscreen Runtime: addEventListener ("enterFrame", bomb) bomb: addEventListener ("touch", bombTouched) khác - Balloon local Balloon = display.newImage ("red_balloon.png", startX, -300) vật lý.addBody (khinh khí cầu) Balloon.enterFrame = offscreen Runtime: addEventListener ("enterFrame", Balloon) Balloon: addEventListener ("touch", BalloonTouched) kết thúc cuối

Dòng đầu tiên của hàm quyết định quả bóng sẽ rơi từ đâu trên x máy bay. Nếu quả bóng hoặc quả bom luôn rơi ở giữa, thì chiến thắng đó rất thú vị! Vì thếbắt đầu là một số ngẫu nhiên từ 10 phần trăm đến 90 phần trăm chiều rộng màn hình.

Tiếp theo một số ngẫu nhiên được chọn trong khoảng từ 1 đến 5.Nếu số lượng là 1 thì một quả bom sẽ được thả xuống. Nếu nó 2, 3, 4 hoặc 5 thì một quả bóng sẽ bị rơi. Điều này có nghĩa là bom sẽ được thả khoảng 20 phần trăm thời gian.

Mã bom và bóng bay khá giống nhau. Đầu tiên hình ảnh (một quả bom hoặc một quả bóng bay) được hiển thị bằng cách sử dụnghình ảnh mới(). Nó là x vị trí là củabắt đầu trong khi nó y vị trí được đặt thành -300, tức là ngoài đỉnh màn hình. Lý do cho điều đó là chúng tôi muốn đối tượng rơi từ bên ngoài khu vực màn hình vào khu vực có thể nhìn thấy và sau đó ra khỏi đáy. Vì chúng ta đang sử dụng công cụ vật lý 2D, thật tốt khi cung cấp cho vật thể một khoảng cách ban đầu để rơi, do đó nó có thể đạt được một số tốc độ.

Cuộc gọi đếnvật lý.addBody () lấy hình ảnh được tải bởi hình ảnh mới() và biến nó thành một vật thể trong động cơ vật lý. Điều này rất mạnh mẽ. Bất kỳ tập tin hình ảnh nào cũng có thể được tạo thành một cơ thể phản ứng với trọng lực và va chạm chỉ bằng cách gọivật lý.addBody ().

Ba dòng cuối cùng của mã bom hoặc bóng bay thiết lập người nghe. ĐặtenterFrame thuộc tính cho Corona biết chức năng nào để gọi mọi khung hình và cuộc gọi đếnThời gian chạy: addEventListener () thiết lập nó Cuối cùng, cuộc gọi đếnbóng bay: addEventListener () báo cho Corona biết chức năng nào sẽ gọi nếu bom hoặc bóng bay được chạm vào.

Và bây giờ trò chơi đã gần hoàn tất. Chúng ta chỉ cần thêm hai dòng mã:

addNewBalloonOrBomb () timer.performWithDelay (500, addNewBalloonOrBomb, 0)

Dòng đầu tiên làm cho quả bom hoặc quả bóng bay đầu tiên rơi xuống bằng cách gọi rõ ràngaddNewBalloonOrBomb (). Dòng thứ hai thiết lập bộ hẹn giờ sẽ gọiaddNewBalloonOrBomb () cứ sau nửa giây (500 mili giây). Điều này có nghĩa là một quả bóng hoặc quả bom mới sẽ rơi cứ sau nửa giây.

Bây giờ bạn có thể chạy trò chơi trong trình giả lập.

Dưới đây là danh sách đầy đủ cho main.lua, mã nguồn dự án đầy đủ cho trò chơi này có thể được tìm thấy ở đây trên GitHub.

-------------------------------------------------- --------------------------------------- - - Trò chơi khinh khí cầu và bom rơi - Viết bởi Gary Sims cho - ------------------------------------------- ---------------------------------------------- -- Bắt đầu động cơ vật lý vật lý cục bộ = yêu cầu ("vật lý") vật lý.start () - Tính một nửa chiều rộng và chiều cao màn hình HalfW = display.contentWidth * 0.5 HalfH = display.contentHeight * 0.5 - Đặt nền cục bộ bkg = display.newImage ("night_sky.png", HalfW, HalfH) - Điểm số = 0 điểmText = display.newText (điểm số, HalfW, 10) - Được gọi khi người chơi gõ bóng - Tăng điểm bằng 1 chức năng bóng địa phươngTouched ( event) if (event.phase == "started") sau đó Runtime: removeEventListener ("enterFrame", event.elf) event.target:removeSelf () points = points + 1 pointsText.text = end end end - Được gọi khi quả bom được người chơi khai thác - Một nửa số điểm là một chức năng địa phương bombTouched (sự kiện) if (event.phase == "bắt đầu") sau đó Runtime: removeEventListener ("enterFrame", event.elf) event.target:removeSelf () points = math.floor (points * 0.5) pointsText.text = end end end - Xóa các đối tượng đã rơi ra khỏi dưới cùng của màn hình tắt chức năng cục bộ màn hình (self, event) if (self.y == nil) sau đó trả về end if (self.y> display.contentHeight + 50) sau đó Runtime: removeEventListener ("enterFrame", self) self: removeSelf () end end - Thêm một quả bóng rơi mới hoặc ném bom chức năng cục bộ addNewBalloonOrBomb () - Bạn có thể tìm thấy red_ballon.png và bomb.png trong GitHub repo local startX = math.random (display.contentWidth * 0.1, display.contentWidth * 0,9) nếu (math.random (1,5) == 1) thì - BOMB! local bomb = display.newImage ("bomb.png", startX, -300) vật lý.addBody (bom) bomb.enterFrame = offscreen Runtime: addEventListener ("enterFrame", bomb) bomb: addEventListener ("touch", bombTouched) khác - Balloon local Balloon = display.newImage ("red_balloon.png", startX, -300) vật lý.addBody (khinh khí cầu) Balloon.enterFrame = offscreen Runtime: addEventListener ("enterFrame", Balloon) Balloon: addEventListener ("touch", BalloonTouched) end end - Thêm một quả bóng hoặc quả bom mới bây giờ addNewBalloonOrBomb () - Tiếp tục thêm một quả bóng hoặc quả bom mới cứ sau 0,5 giây timer.performWithDelay (500, addNewBalloonOrBomb, 0)

Bước tiếp theo

Bước tiếp theo là chơi trò chơi trên một thiết bị Android thực sự. Để tạo tệp .apk, nhấp vào Tệp-> Xây dựng cho Android, và điền vào các trường. Kết quả sẽ là một tệp .apk mà bạn có thể sao chép vào thiết bị của mình và sau đó cài đặt. Bạn sẽ cần đảm bảo rằng bạn đã định cấu hình thiết bị của mình để cho phép cài đặt ứng dụng từ các nguồn không xác định. Amazon có một số tài liệu tốt về điều này vì bạn cũng cần phải thiết lập điều này để cài đặt Amazon Appstore. Corona cũng có một hướng dẫn về cách ký, xây dựng và kiểm tra ứng dụng của bạn trên các thiết bị Android.

Với trò chơi được cài đặt thành công trên thiết bị của bạn, điều tiếp theo cần làm là cải thiện trò chơi. Ví dụ, tại sao bạn không thử thêm một tiếng pop pop hay đá bang âm thanh tất cả mọi thứ một quả bóng hoặc quả bom được gõ. Corona có API cho điều đó:media.playEventSound ().

Hoặc tại sao không thử thêm một loại đối tượng thứ ba, giả sử siêu tăng gấp đôi số điểm hiện tại hoặc làm thế nào về một số nhạc nền?

Gói lại

Viết trò chơi với Corona khá đơn giản vì SDK xử lý những thứ như OpenGL và nó bao gồm một công cụ vật lý 2D tích hợp. Ngoài ra Lua rất dễ học và nên không khó cho bất cứ ai có kinh nghiệm lập trình tối thiểu. Trang web của Coronalabs có rất nhiều tài liệu bao gồm rất nhiều hướng dẫn và hướng dẫn.

Trong ít hơn 100 dòng mã, chúng tôi có một trò chơi đang hoạt động. OK, nó sẽ không giành được bất kỳ giải thưởng nào, tuy nhiên nó cho thấy sức mạnh và tính linh hoạt của SDK SDK.

Cập nhật, ngày 2 tháng 1 năm 2018 (10:22 AM ET):Chúng tôi hy vọng amung ẽ tuân thủ lộ trình cập nhật Android 9 Pie đã được công bố cho các thiết bị của m&#...

TheoTin tức ET, amung rất buồn khi Apple không đặt hàng đủ màn hình iPhone. Giờ đây, amung đang tìm cách trừng phạt tài chính Apple vì đã khô...

HấP DẫN