■ Contents
xvii
The Settings Screen ����������������������������������������������������������������������������������������������������� 537
The Simulation Classes ������������������������������������������������������������������������������������������������ 540
The Shield Block Class �����������������������������������������������������������������������������������������������������������������������541
The Shot Class ������������������������������������������������������������������������������������������������������������������������������������ 541
The Ship Class ������������������������������������������������������������������������������������������������������������������������������������ 542
The Invader Class �������������������������������������������������������������������������������������������������������������������������������543
The World Class ���������������������������������������������������������������������������������������������������������������������������������� 546
The GameScreen Class ������������������������������������������������������������������������������������������������ 552
The WorldRender Class ������������������������������������������������������������������������������������������������ 559
Optimizations ��������������������������������������������������������������������������������������������������������������� 564
Summary ���������������������������������������������������������������������������������������������������������������������� 565
■Chapter 13: Going Native with the NDK ������������������������������������������������������������� 567
What Is the Android NDK? �������������������������������������������������������������������������������������������� 567
The Java Native Interface ��������������������������������������������������������������������������������������������� 568
Setting Up the NDK ������������������������������������������������������������������������������������������������������� 569
Setting Up an NDK Android Project ������������������������������������������������������������������������������ 570
Creating Java Native Methods�������������������������������������������������������������������������������������� 570
Creating the C/C++ Header and Implementation ��������������������������������������������������������� 571
Building the Shared Library ������������������������������������������������������������������������������������������ 573
Putting It All Together ��������������������������������������������������������������������������������������������������� 575
Summary ���������������������������������������������������������������������������������������������������������������������� 577
■Chapter 14: Marketing and Monetizing ������������������������������������������������������������� 579
Monetizing Your Game �������������������������������������������������������������������������������������������������� 579
Advertising ������������������������������������������������������������������������������������������������������������������� 580
Ad Providers ���������������������������������������������������������������������������������������������������������������������������������������580
Ad Aggregation Services �������������������������������������������������������������������������������������������������������������������� 580
Game Advertising Tips ������������������������������������������������������������������������������������������������������������������������580
In-App Products ������������������������������������������������������������������������������������������������������������ 581
Virtual Currency ������������������������������������������������������������������������������������������������������������ 581