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 a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
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 : 9781788839150
Languages :
Tools :

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

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 included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.