Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Learning Java by Building Android  Games
Learning Java by Building Android  Games

Learning Java by Building Android Games: Learn Java and Android from scratch by building six exciting games , Second Edition

eBook
€8.99 €29.99
Paperback
€36.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Table of content icon View table of contents Preview book icon Preview Book

Learning Java by Building Android Games

Chapter 2. Java: First Contact

In this chapter, we will make significant progress with the Sub' Hunter game even though this is the first lesson on Java. We will look in detail at exactly how Sub' Hunter will be played and the steps/flow that our completed code will need to take to implement it.

We will also learn about Java code comments for documenting the code, take a brief initial glimpse at methods to structure our code and an even briefer first glimpse at object-oriented programming that will begin to reveal the power of Java and the Android API

The auto-generated code we saw in the previous chapter will also be explained as we proceed and add more code too. Here is what you can expect to learn in this chapter:

  • Planning the Sub' Hunter game
  • Introduction to Java methods
  • Structuring Sub' Hunter with methods
  • Introduction to Object-Oriented Programming
  • Using Java Packages
  • Linking up the Sub' Hunter methods

First, let's do some planning.

Planning the Sub' Hunter game

The objective of the game is to find and destroy the enemy sub' in as few moves as possible. The player takes shots and each time guesses the location of the sub' by taking in to account the distance feedback (sonar ping) from all previous shots.

The game starts with the player facing an empty grid with a randomly placed (hidden) submarine lurking somewhere within.

Planning the Sub' Hunter game

The grid represents the sea and each place on the grid is a possible hiding place for the submarine the player is hunting. The player takes shots at the sub' by guessing where it might be hiding and tapping one of the squares on the grid. The tapped square is shown highlighted and the distance to the sub' from the tapped square is shown.

Planning the Sub' Hunter game

This feedback means the sub' is hiding somewhere on (not within) the radius of 15 squares as demonstrated in the previous image.

Note

Note that the dashed-circle in the previous image is not part of the game. It is my attempt to explain...

Introduction to Java methods

Java methods are a way of organizing and compartmentalizing our code. They are quite a deep topic and a full understanding requires knowledge of other Java topics. By the end of the book you will be a method Ninja but for now, a basic introduction will be useful.

Methods have names to identify them from other methods and to help the programmer identify what they do. The methods in the Sub' Hunter game will have names like draw, takeShot, newGame, and printDebuggingText as well as a few more.

Code with a specific purpose can be wrapped inside a method, perhaps like this:

void draw(){
   // Handle all the drawing here
}

The above method called draw could hold all the lines of code that does the drawing for our game. When we set out a method with its code it is called the method definition. The curious looking prefixed void keyword and the postfixes () will be explained in Chapter 4, Structuring Code with Java Methods but for now, you just need to know that all...

Structuring Sub' Hunter with methods

As we add the method definitions to the code it shouldn't come as much surprise where each of the methods will go. The draw method will go after the comment about … do all the drawing… and so on.

Add the newGame method definition after the appropriate comment as shown next.

/*
   This code will execute when a new
   game needs to be started. It will
   happen when the app is first started
   and after the player wins a game.
 */
void newGame(){

}

Add the draw method definition after the appropriate comment as highlighted.

/*
   Here we will do all the drawing.
   The grid lines, the HUD,
   the touch indicator and the
   "BOOM" when a sub' is hit
*/
void draw() {

}

Add the onTouchEvent definition after this comment.

/*
   This part of the code will
   handle detecting that the player
   has tapped the screen
 */
@Override
public boolean onTouchEvent(MotionEvent motionEvent) {

}

You have probably noticed that the...

Introduction to Object Oriented Programming

Object-Oriented Programming (OOP) makes it easy to do exceptional things. A simple analogy could be drawn with a machine, perhaps a car. When you step on the accelerator, a whole bunch of things happens under the hood. We don't need to understand about combustion or fuel pumps because a smart engineer has provided an interface for us. In this case, a mechanical interface—the accelerator pedal.

Take the following line of Java code as an example; it will look a little intimidating:

locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER)

However, once you learn that this single line of code searches Space for the available satellites and then communicates with them in orbit around the Earth while retrieving your precise latitude and longitude on the planet, it is easy to begin to glimpse the power and depth of object-oriented programming. Even if that code does look a little bit long and scary, imagine talking to a satellite in...

Using Java packages

Packages are grouped collections of classes. If you look at the top of the code that we have written so far, you will see these lines of code.

import android.app.Activity;
import android.os.Bundle;

These lines of code make available the Activity and Bundle classes as well as their methods. Comment out the above two lines like this:

// import android.app.Activity;
// import android.os.Bundle;

Now look at your code and you will see errors in at least three places. The word Activity has an error because Activity is a class which Android Studio no longer is aware of in the following line:

public class SubHunter extends Activity {

The word onCreate also has an error because it is a method from the Activity class and the word Bundle has an error because it is a class which since we commented out the previous two lines Android is no longer aware of. This next line highlights where the errors are.

protected void onCreate(Bundle savedInstanceState) {

Uncomment the two lines of code...

Linking up our methods

So far, we know that we can define methods with code like this:

void draw(){
   // Handle all the drawing here
}

And we can call/execute methods with code like this:

draw();

We have also alluded to, as well as mentioned in our comments that the onCreate method (provided automatically by Android) will handle the One-time Setup part of the flowchart.

The reason for this is that all Android games (and the vast majority of other Android apps) must have an Activity class as the starting point. Activity is what interacts with the operating system. Without one the operating system cannot run our code. The way that the operating system interacts with and executes our code is through the methods of the Activity class. There are many methods in the Activity class but the one we care about right now is onCreate.

The onCreate method is called by Android itself when the player taps our game's icon on their screen.

Note

Actually, there are a number of methods that are called but onCreate...

Summary

The phone screen is still blank, but we have achieved our first output to the logcat window. In addition, we have laid out the entire structure of the Sub' Hunter game. All we need to do now is learn more about Java and then use it to add code to each of the methods.

We learned that Java methods are used to divide up the code into logical sections, each with a name. We don't know the full details of the methods yet but if you understand that you can define methods and then execute them by calling them then you know all you need to make further progress.

We also took a first glimpse at object-oriented programming. It doesn't matter if OOP seems a little baffling at this stage. If you know that we can code a class and create usable objects in our code based on that class, then you know enough to continue.

In the next chapter, we will learn about our games data. How the game "remembers" values like the position of the submarine or the size of the grid. We will...

Left arrow icon Right arrow icon

Key benefits

  • Learn Java, Android, and object-oriented programming from scratch
  • Build games including Sub Hunter, Retro Pong, Bullet Hell, Classic Snake, and a 2D Scrolling Shooter
  • Create and design your own games, such as an open-world platform game

Description

Android is one of the most popular mobile operating systems presently. It uses the most popular programming language, Java, as the primary language for building apps of all types. However, this book is unlike other Android books in that it doesn’t assume that you already have Java proficiency. This new and expanded second edition of Learning Java by Building Android Games shows you how to start building Android games from scratch. The difficulty level will grow steadily as you explore key Java topics, such as variables, loops, methods, object oriented programming, and design patterns, including code and examples that are written for Java 9 and Android P. At each stage, you will put what you’ve learned into practice by developing a game. You will build games such as Minesweeper, Retro Pong, Bullet Hell, and Classic Snake and Scrolling Shooter games. In the later chapters, you will create a time-trial, open-world platform game. By the end of the book, you will not only have grasped Java and Android but will also have developed six cool games for the Android platform.

Who is this book for?

Learning Java by Building Android Games is for you if you are completely new to Java, Android, or game programming and want to make Android games. This book also acts as a refresher for those who already have experience of using Java on Android or any other platform without game development experience.

What you will learn

  • Set up a game development environment in Android Studio
  • Implement screen locking, screen rotation, pixel graphics, and play sound effects
  • Respond to a player's touch, and program intelligent enemies who challenge the player in different ways
  • Learn game development concepts, such as collision detection, animating sprite sheets, simple tracking and following, AI, parallax backgrounds, and particle explosions
  • Animate objects at 60 frames per second (FPS) and manage multiple independent objects using Object-Oriented Programming (OOP)
  • Understand the essentials of game programming, such as design patterns, object-oriented programming, Singleton, strategy, and entity-component patterns
  • Learn how to use the Android API, including Activity lifecycle, detecting version number, SoundPool API, Paint, Canvas, and Bitmap classes
  • Build a side-scrolling shooter and an open world 2D platformer using advanced OOP concepts and programming patterns
Estimated delivery fee Deliver to Malta

Premium delivery 7 - 10 business days

€32.95
(Includes tracking information)

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Aug 29, 2018
Length: 774 pages
Edition : 2nd
Language : English
ISBN-13 : 9781788839150
Languages :
Tools :

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Estimated delivery fee Deliver to Malta

Premium delivery 7 - 10 business days

€32.95
(Includes tracking information)

Product Details

Publication date : Aug 29, 2018
Length: 774 pages
Edition : 2nd
Language : English
ISBN-13 : 9781788839150
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 110.97
Mastering Java 11
€36.99
Java Projects
€36.99
Learning Java by Building Android  Games
€36.99
Total 110.97 Stars icon
Banner background image

Table of Contents

27 Chapters
1. Java, Android and Game Development Chevron down icon Chevron up icon
2. Java: First Contact Chevron down icon Chevron up icon
3. Variables, Operators and Expressions Chevron down icon Chevron up icon
4. Structuring Code with Java Methods Chevron down icon Chevron up icon
5. The Android Canvas Class – Drawing to the Screen Chevron down icon Chevron up icon
6. Repeating Blocks of Code with Loops Chevron down icon Chevron up icon
7. Making Decisions with Java If, Else and Switch Chevron down icon Chevron up icon
8. Object-Oriented Programming Chevron down icon Chevron up icon
9. The Game Engine, Threads, and The Game Loop Chevron down icon Chevron up icon
10. Coding the Bat and Ball Chevron down icon Chevron up icon
11. Collisions, Sound Effects and Supporting Different Versions of Android Chevron down icon Chevron up icon
12. Handling Lots of Data with Arrays Chevron down icon Chevron up icon
13. Bitmap Graphics and Measuring Time Chevron down icon Chevron up icon
14. The Stack, the Heap, and the Garbage Collector Chevron down icon Chevron up icon
15. Android Localization -Hola! Chevron down icon Chevron up icon
16. Collections, Generics and Enumerations Chevron down icon Chevron up icon
17. Manipulating Bitmaps and Coding the Snake class Chevron down icon Chevron up icon
18. Introduction to Design Patterns and much more! Chevron down icon Chevron up icon
19. Listening with the Observer Pattern, Multitouch and Building a Particle System Chevron down icon Chevron up icon
20. More Patterns, a Scrolling Background and Building the Player's ship Chevron down icon Chevron up icon
21. Completing the Scrolling Shooter Game Chevron down icon Chevron up icon
22. Exploring More Patterns and Planning the Platformer Project Chevron down icon Chevron up icon
23. The Singleton Pattern, Java HashMap, Storing Bitmaps Efficiently and Designing Levels Chevron down icon Chevron up icon
24. Sprite-sheet animations, Controllable Player and Parallax Scrolling Backgrounds Chevron down icon Chevron up icon
25. Intelligent Platforms and Advanced Collision Detection Chevron down icon Chevron up icon
26. What next? Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.1
(11 Ratings)
5 star 54.5%
4 star 9.1%
3 star 27.3%
2 star 9.1%
1 star 0%
Filter icon Filter
Top Reviews

Filter reviews by




Sand George Ionut Sep 14, 2019
Full star icon Full star icon Full star icon Full star icon Full star icon 5
good bok
Amazon Verified review Amazon
Sandra Porter Jun 18, 2019
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I do know other programming languages like VB.NET but wanted to learn Java for a while and how to program Android devices. This book really is for beginners and you do not have any previous knowledge. As it says at the beginning of the book, if you do know some of the stuff, you'll just be quicker through the first few chapters. He explains everything in plain English and just brings in the technical terminology slowly so that you will be able to communicate with the the tech community. What I really like is that important subjects are explained from different angles. So even though you might not have understood something the first time round you probably will the second time around. You can download the code for every chapter which was very useful at the beginning.This edition is very much up to date.
Amazon Verified review Amazon
Amazon Customer Dec 28, 2018
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Great
Amazon Verified review Amazon
Anon Oct 19, 2018
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I had no experience in Android programing and felt the Google tutorials were not really teaching anything but copy and paste, seriously. John's book on the other hand explained many things that Google doesn't and at the same time it has been fun to make the games. His approach is very straight forward and he does a great job of explaining everything along the way. I never felt lost and never had to copy and paste code to just make something work. I would recommend this book to everyone. I am not yet an accomplished Android programmer but thanks to John I am on my way now.
Amazon Verified review Amazon
janusz Jan 23, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
It was not too easy and not too hard, just right for someone to learn some new concepts.I learned something so nice!Good read.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela