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 eBook?

Product feature icon Instant access to your Digital eBook purchase
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

Billing Address

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

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 : 9781788836722
Languages :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
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

Billing Address

Product Details

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

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

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.