learning cocos2d js game development feronato 2015 01 12 Lập trình Java

188 21 0
learning cocos2d js game development feronato 2015 01 12 Lập trình Java

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

CuuDuongThanCong.com www.it-ebooks.info https://fb.com/tailieudientucntt Learning Cocos2d-JS Game Development Learn to create robust and engaging cross-platform HTML5 games using Cocos2d-JS Emanuele Feronato BIRMINGHAM - MUMBAI CuuDuongThanCong.com www.it-ebooks.info https://fb.com/tailieudientucntt Learning Cocos2d-JS Game Development Copyright © 2015 Packt Publishing All rights reserved No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews Every effort has been made in the preparation of this book to ensure the accuracy of the information presented However, the information contained in this book is sold without warranty, either express or implied Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals However, Packt Publishing cannot guarantee the accuracy of this information First published: January 2015 Production reference: 1070115 Published by Packt Publishing Ltd Livery Place 35 Livery Street Birmingham B3 2PB, UK ISBN 978-1-78439-007-5 www.packtpub.com CuuDuongThanCong.com www.it-ebooks.info https://fb.com/tailieudientucntt Credits Author Project Coordinator Emanuele Feronato Sanchita Mandal Reviewers Proofreaders Pradyumna Doddala Simran Bhogal Pavel Goodanets Stephen Copestake Marc Estruch Tena Maria Gould Jialong Zhai Ameesha Green Paul Hindle Commissioning Editor Ashwin Nair Indexer Rekha Nair Acquisition Editor James Jones Production Coordinator Alwin Roy Content Development Editor Samantha Gonsalves Cover Work Alwin Roy Technical Editor Parag Topre Copy Editor Relin Hedly CuuDuongThanCong.com www.it-ebooks.info https://fb.com/tailieudientucntt CuuDuongThanCong.com www.it-ebooks.info https://fb.com/tailieudientucntt Foreword Known by developers all over the world, Cocos2d-x has always endeavored to help developers build and port their games on iOS, Android, and many more native platforms However, not many developers are aware that the Cocos2d-x team also provides an efficient game engine called Cocos2d-JS to assist users developing cross-native and web platform games with only one code base The year 2014 has certainly been a big year for Cocos2d-JS It became more widely adopted by big companies all over the world; we've released a major version—3.0—and combined Cocos2d-html5 and Cocos2d-x JSB (JavaScript Binding) into Cocos2d-JS It supplies your game with cross-browser and cross-platform capabilities accompanied by complete Cocos2d-x features, complete tool chain support, and simple friendly APIs Furthermore, we reinvented the workflow for all platforms, providing a consistent development experience for whichever platform you want to distribute it to As a result, the Code once, run everywhere principle is easily achieved and feels natural in Cocos2d-JS With one single JavaScript code base, you can run your game on all web browsers and native platforms, including Mac OS, Windows, iOS, and Android This will allow your game to deliver in almost all channels of distribution for better opportunities Today, I'm more than grateful to witness the creation of this extraordinary book I believe this book will help us by building a bridge to our developers around the world so they can step over the language barrier I'd love to express my special thanks to dear Feronato, the author of this amazing book He started programming when I was a little child in diapers and he's still going strong, inspiring thousands of indie developers around the world—that's surely something! In this book, Feronato gathered and generously shared with us his profound knowledge in game programming and Cocos2d-JS; he also included a rich collection of examples in each chapter; this, in my opinion, is one of the best ways to help learning, as readers will get a clear sense of how to apply text in the book to real work CuuDuongThanCong.com www.it-ebooks.info https://fb.com/tailieudientucntt Here, allow me to express my honestly sincere gratitude to Emanuele Feronato for completing such an amazing book Hope you all enjoy this amazing book and benefit from it Shun Lin Cofounder of Cocos2d-x CuuDuongThanCong.com www.it-ebooks.info https://fb.com/tailieudientucntt Foreword As we look forward to 2015 with excitement, I wanted to look back at what we built in 2014 and share with you how important the release of this great book is to our community 2014 has been an extraordinary year for Cocos2d-JS Since we announced Cocos2d-JS v3.0 alpha at our spring developers conference in March, we have put our best efforts into building a great and unique game engine for our community Our mission is to offer an easy code once, runs everywhere game development experience and lower the development threshold to bring more developers into the game industry Although the version was v3.0, it was the first version of Cocos2d-JS that was inherited from Cocos2d-html5 2.2.3 It has been an entirely new era in Cocos2d's JavaScript development since v3.0; here are the most important things that we have done: • Combined the Cocos2d-html5 web engine and the native Cocos2d-x JavaScript Bindings engine so that Cocos2d-JS games are equipped naturally with crossbrowser and cross-platform abilities • Provided a consistent workflow for all platforms—a best ever Code once, runs everywhere experience • Made a great step forward in performance for both the web engine and native engine • Built a bunch of new features such as Facebook Integration, Assets Manager, Object Pool, JS to Objective-C/JAVA reflection, and so on As a result, we have started to see many games released with Cocos2d-JS, especially on the Web, iOS, and Android Today, I'm very proud to witness the very first English book on Cocos2d-JS; it really means a lot to us Thanks to the great work of Emanuele on this book, I believe it will help many developers all around the world learn not only about Cocos2d-JS, but also game development in general I'm also convinced that many developers, like you, our dear reader, will enter the game industry because of this book and start a great adventure with your code CuuDuongThanCong.com www.it-ebooks.info https://fb.com/tailieudientucntt I recommend this book not only because it's the first one, but also because reading this book is a great approach to learning Cocos2d-JS Emanuele covered all essential parts of Cocos2d-JS in this book; most importantly, he discussed all these topics with rich examples and sample codes Furthermore, he managed to structure these examples into small games so that readers can progressively see their work turning into real games I believe this will be a very strong motivation and will bring much fun while learning Again, I want to express my appreciation to Emanuele Feronato and this wonderful book Hope you enjoy learning Cocos2d-JS with Emanuele and enjoy coding games Huabin LING Lead Programmer of Cocos2d-JS CuuDuongThanCong.com www.it-ebooks.info https://fb.com/tailieudientucntt About the Author Emanuele Feronato has been studying programming languages since the early 1980s, with a particular interest in game development He has taught online programming for European Social Fund (ESF), and then founded a web development company in Italy As a game developer, Emanuele developed Flash games sponsored by the biggest game portals and his games have been played more than 90 million times He now ports most of them on mobile platforms and develops HTML5 games, which have been featured in the most important mobile web markets, such as Amazon As a writer, he has worked as a technical reviewer for Packt Publishing and published the books Flash Game Development by Example and Box2D for Flash Games His blog, www.emanueleferonato.com, is one of the most visited blogs about indie game development First, I would like to thank Packt Publishing for giving me the opportunity to write this book, especially Richard Harvey, Azharuddin Sheikh, and Samantha Gonsalves for helping me improve the book quality The biggest thank you obviously goes to my blog readers and my Facebook fans for appreciating my work, giving me the will to write more and more Also, thank you for playing my games Hope you enjoy playing them as much as I enjoyed developing them Finally, a special thank you to my wife, Kirenia, for her patience while I was writing the book CuuDuongThanCong.com www.it-ebooks.info https://fb.com/tailieudientucntt Chapter We start looping through all rows starting from 1—the next-to-bottomt row—to row fieldsize-1, which is the topmost row for(j = 0; j < fieldSize; j ++){ We the same thing for the columns but, this time, we scan them if(tileArray[i][j] != null){ If in the given position we have a globe, it's time to count how many empty spaces we have below it var holesBelow = 0; The holesBelow variable will keep track of the empty spaces below a globe for(var k = i - 1; k >= 0; k ){ Starting from the current row and going down to the first, we have to count the empty spaces if(tileArray[k][j] == null){ We find an empty space when its tileArray value is null holesBelow++; And, in this case, we increment the holesBelow variable: if(holesBelow>0){ Once the loop has finished, we check whether there were holes below: var moveAction = cc.MoveTo.create(0.5, new cc.Point(tileArray[i] [j].x,tileArray[i][j].y-holesBelow*tileSize)); tileArray[i][j].runAction(moveAction); Then, move the globe accordingly tileArray[i - holesBelow][j] = tileArray[i][j]; tileArray[i][j] = null; Finally, we can update tileArray to register the new position of the globe Now that we managed to make the globez fall down, there is just one more thing to do—create new globes to fill the stage again [ 153 ] CuuDuongThanCong.com www.it-ebooks.info https://fb.com/tailieudientucntt Creating Your Own Blockbuster Game – A Complete Match Game Creating new globez Creating new globez shares the same concept as making the globez fall For each column, we count the number of empty places; this number is the number of globez we have to create In order to create a smooth appearance, each globe will be created outside the top of the stage and an animation tween will place it in its right place This is the last time we need to modify onMouseUp, promise! onMouseUp: function(event){ // same as before if(visitedTiles.length>=3){ // same as before for(i = 0; i < fieldSize; i ++){ for(j = fieldSize-1; j>=0; j ){ if(tileArray[j][i] != null){ break; } } var missingGlobes = fieldSize-1-j; if(missingGlobes>0){ for(j=0;j0){ for(var i=1;i

Ngày đăng: 29/08/2020, 11:30

Từ khóa liên quan

Mục lục

  • Cover

  • Copyright

  • Credits

  • Foreword

  • Foreword

  • About the Author

  • About the Reviewers

  • www.PacktPub.com

  • Table of Contents

  • Preface

  • Chapter 1: Hello World – A Cross-platform Game

    • Why should I make cross-platform games?

    • What Cocos2d-JS is and how it works

      • Requirements to run Cocos2d-JS

      • The structure of your Cocos2d-JS project

      • Hello Cross-World

      • Preloading and adding images

      • Removing images and changing the background color

      • Summary

      • Chapter 2: Adding Interactivity – The Making of a Concentration Game

        • Creating multiple instances of game assets

        • Adding a gradient background

        • Extending the Sprite class beyond its capabilities

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan