⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch2.htm

📁 对于程序员来说可以利用JAVA来开发网络游戏!
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<HTML>

<HEAD>
   <TITLE>Chapter 2 -- Java Game Programming</TITLE>
   <META>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#CE2910">
<H1><FONT COLOR=#FF0000>Chapter 2</FONT></H1>
<H1><B><FONT SIZE=5 COLOR=#FF0000>Java Game Programming</FONT></B>
</H1>
<P>
<HR WIDTH="100%"></P>
<P>
<H3 ALIGN=CENTER><FONT COLOR="#000000"><FONT SIZE=+2>CONTENTS<A NAME="CONTENTS"></A>
</FONT></FONT></H3>

<UL>
<LI><A HREF="#JavaandWebGames" >Java and Web Games</A>
<LI><A HREF="#JavaFeaturesforGames" >Java Features for Games</A>
<UL>
<LI><A HREF="#GraphicsandAnimation" >Graphics and Animation</A>
<LI><A HREF="#UserInput" >User Input</A>
<LI><A HREF="#Sound" >Sound</A>
<LI><A HREF="#Networking" >Networking</A>
<LI><A HREF="#MediaManagement" >Media Management</A>
</UL>
<LI><A HREF="#GameDesign" >Game Design</A>
<UL>
<LI><A HREF="#BasicIdea" >Basic Idea</A>
<LI><A HREF="#Storyline" >Storyline</A>
<LI><A HREF="#PlayModes" >Play Modes</A>
</UL>
<LI><A HREF="#Summary" >Summary</A>
<LI><A HREF="#QA" >Q&amp;A</A>
<LI><A HREF="#Workshop" >Workshop</A>
<UL>
<LI><A HREF="#Quiz" >Quiz</A>
<LI><A HREF="#Exercises" >Exercises</A>
</UL>
</UL>
<HR>
<P>
On <A HREF="ch1.htm" >Day 1</A>, you learned what the Web has
to offer in terms of games. Most of the games you learned about
were not developed in Java because Java is a new technology and
programmers haven't had time to gain enough proficiency to turn
out interesting games. For the aspiring Java game developer like
yourself, this is very good news; the game market is wide open!
This level playing field in Java game development should give
you the energy to get busy thinking about your own game designs
as you go through today's lesson and the rest of the book.
<P>
Today's lesson follows up on <A HREF="ch1.htm" >Day 1</A>'s general
discussion of Web games to focus on programming Web games in Java.
Today you learn about the specific features of Java that make
it a very good language for game development. This lesson lays
the groundwork for much of the material that you cover throughout
the rest of the book. You finish up today's lesson with a brief
look at conceptual game design.
<P>
The following topics are covered in today's lesson:
<UL>
<LI>Java and Web games
<LI>Java features for games
<LI>Game design
</UL>
<H2><A NAME="JavaandWebGames"><B><FONT SIZE=5 COLOR=#FF0000>Java
and Web Games</FONT></B></A></H2>
<P>
With all the hype surrounding Java and what it will do for the
Internet, it should come as no surprise that games are being hyped
as one of the most interesting applications of Java. Indeed, that's
probably why you bought this book to begin with! Even though Java
includes many useful features for games, it still isn't quite
the ideal gaming language for the Internet.
<P>
<CENTER><TABLE BORDERCOLOR=#000000 BORDER=1 WIDTH=80%>
<TR><TD><B>Note</B></TD></TR>
<TR><TD>
<BLOCKQUOTE>
Just because Java isn't an ideal Internet gaming language doesn't mean that it doesn't deliver on many accounts. In reality there probably will never be an ideal gaming language because games have such unique programming challenges and languages tend to be 
designed for general use.</BLOCKQUOTE>

</TD></TR>
</TABLE></CENTER>
<P>
<P>
Although it's not the ideal language, Java does have much to offer
for mixing games with the Web equation. Java as a technology is
poised to bring interactivity to the Web in a general sense. Java
games are only one aspect of this &quot;interactive revolution.&quot;
Java provides a level of platform independence, security, and
network support that is still unattainable in any other language.
All these issues are of utmost importance in any technology that
is to bring interactive games to the Web.
<P>
<I>Platform independence</I> refers to the capability of a single
executable program to run on a variety of different computer systems.
<P>
This discussion might make a little more sense in the context
of an example, so let's look at one. Consider an educational Web
page attempting to discuss desert animals and how they interact
with one another. Before Java, without using complex platform-dependent
programming languages, the Web presentation would have been limited
to text and inlined graphics. Now imagine a Java game inserted
right into the Web pages, which allows students to play the role
of a desert animal contending with other desert predators. This
level of interactivity combined with the accessibility of the
Web can't be matched by any other media. Web games written in
Java will truly change the way you perceive the Web as a whole.
By the way, this example isn't just something I made up for the
purposes of this discussion; you will actually develop a game
on <A HREF="ch10.htm" >Day 10</A> that is very similar to this
example.
<H2><A NAME="JavaFeaturesforGames"><B><FONT SIZE=5 COLOR=#FF0000>Java
Features for Games</FONT></B></A></H2>
<P>
You've seen some of the aspects of Java that are beneficial in
making Web games a reality. It's now time to look at the specifics
of the functionality that Java provides for developing games for
the Web. The primary areas of importance for game programming
are the following:
<UL>
<LI>Graphics and animation
<LI>User input
<LI>Sound
<LI>Networking
<LI>Media management
</UL>
<P>
As you learn about each of these different areas of game programming,
I want to help put them into perspective by explaining how they
would impact the development of a Java Space Invaders game. This
will help you to see how each of these areas impacts a real game,
and it might also help you get ideas about designing a real game.
<H3><A NAME="GraphicsandAnimation"><B>Graphics and Animation</B></A>
</H3>
<P>
What good is a game without graphics? In most cases, not much!
Fortunately, Java delivers the goods when it comes to graphics.
The standard Java API includes wide support for all kinds of neat
graphics features such as images, color models, and 2D graphics
primitives. Although Java as a whole is still largely limited
by its relatively slow performance, the support is in place for
very powerful graphics. As future releases of Java address the
speed concerns, game programmers will be able to more fully exploit
the graphics capabilities Java provides. You get the whole scoop
on graphics later this week on <A HREF="ch5.htm" >Day 5</A>, &quot;Java
Graphics Techniques.&quot;
<P>
What about animation? Most games would be pretty boring without
it! Although the standard Java API doesn't provide any specific
animation support, it is riddled with features that make implementing
animation very easy. One of the most important aspects of Java
is its multithreaded design, which provides a powerful framework
for establishing the all-important timing necessary for animations.
You learn all about implementing animation in Java later this
week on <A HREF="ch6.htm" >Day 6</A>, &quot;Sprite Animation.&quot;
<P>
In the context of a real game, the graphics and animation form
the majority of the look of the game. In a Space Invaders game,
for example, the graphics and animation account for the aliens,
the player's ship, any barriers that the player can hide behind,
the missiles being fired back and forth, and any explosions that
take place when a missile collides with something. Furthermore,
the display of the title screen and score would also fall under
the area of graphics programming.
<H3><A NAME="UserInput"><B>User Input</B></A></H3>
<P>
User input is a very critical area of game development because
it dictates how a game &quot;feels&quot; to the game player. User
input is also important because it establishes the primary interface
between the player and the game. Java provides support for the
two major input devices in use on most computer systems these
days-the keyboard and mouse. When programming in Java, you monitor
these input devices by responding to user input events generated
when the user manipulates one of the devices.
<P>
Although it would certainly be nice if Java supported other input
devices such as joysticks and flight yokes, the reality is that
these devices aren't available on a wide variety of platforms.
Hopefully a future version of Java will provide some degree of
support for these gaming devices, because they are typically used
in addition to the keyboard and mouse.
<P>
Even without the support for game-specific input devices, the
support for the keyboard and mouse is enough to provide an effective
user interface to most games. If you're skeptical, you can judge
for yourself next week on <A HREF="ch9.htm" >Day 9</A>, &quot;Handling
User Input with Java.&quot;
<P>
Using the Space Invaders example again, the user input requirements
of the game consist of the inputs necessary to control the player's
ship and fire missiles. For a game like this in which the ship
simply moves from side to side, the best approach is probably
to just use the left and right arrow keys to handle the ship's
movement. You could also detect side to side mouse movement and
use it to control the ship. You would designate another key, such
as the spacebar, as the fire button. Likewise, a mouse click could
also serve as the fire button for the mouse interface.
<H3><A NAME="Sound"><B>Sound</B></A></H3>
<P>
Rounding out the &quot;big three&quot; areas of game development
is sound. Sound is currently the weakest area of Java's support
for gaming. Release 1.0 of Java supports playing sound waves only
in the ULAW format, which is popular on Sun workstations. Although
the current Java sound support provides built-in sound mixing
and the capability to play looped sounds, it is pretty limited
because all sounds must be in the ULAW format (which is a low-quality
sound format). Furthermore, there is no support for manipulating
sounds at a lower level, which is often useful in games. A future
release of Java will no doubt remedy many of the current limitations
in regard to sound.
<P>
<CENTER><TABLE BORDERCOLOR=#000000 BORDER=1 WIDTH=80%>
<TR><TD><B>Note</B></TD></TR>
<TR><TD>
<BLOCKQUOTE>
Sun is already busy at work on a future add-on to Java that will provide lots of neat sound features such as MIDI (Musical Instrument Digital Interface) music and support for other sound formats.</BLOCKQUOTE>

</TD></TR>
</TABLE></CENTER>
<P>
<P>
Even with its limitations, the current Java sound support is enough
to add simple sound effects and music to Java games. Actually,
the fact that Java provides a built-in sound mixer in the first
release is a big deal. Contrast this situation with that of Windows
3.1, which didn't have any sound mixing support until very late
in the product cycle.
<P>
<CENTER><TABLE BORDERCOLOR=#000000 BORDER=1 WIDTH=80%>
<TR><TD><B>Note</B></TD></TR>
<TR><TD>
<BLOCKQUOTE>
It might seem strange that I'm comparing Java to an operating system (or shell, at least) in Windows 3.1. This brings up an interesting point regarding what Java really is. Java is not just a language; it is also a runtime system that acts very much like 
an operating system at times.</BLOCKQUOTE>

</TD></TR>
</TABLE></CENTER>
<P>
<P>
You learn all about sound programming in Java, as well as the
ULAW sound format, next week on <A HREF="ch12.htm" >Day 12</A>,
&quot;Playing Sound with Java.&quot;
<P>
Going back to the Space Invaders example, the sound programming
aspect of the game consists of writing code to handle all the
sound effects in the game, as well as the background music. You
might wonder how to add music considering the fact that Java doesn't
yet support the popular MIDI music standard. The truth is that
the original Space Invaders arcade game was developed well before
the MIDI standard, so someone improvised back then! Similarly,
you have to improvise music in Java by playing looped wave sounds
repeatedly. Admittedly, this isn't the ideal approach, but it's
the only approach you have-for now.
<H3><A NAME="Networking"><B>Networking</B></A></H3>
<P>
Now that the concept of a &quot;computer in every home&quot; is
inching closer to reality, game developers can no longer ignore
the potential of multiplayer network games. The desire of game
players to connect and play games with other real people is just
too strong to ignore. This is evident in the recent surge of commercial
games that support network play. CivNet comes to mind as an example
of a popular single player game (Civilization) that has been revamped
for network play.
<P>
Networking is the one area where Java really shines because it

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -