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

📄 shootingspaceshipdeu.html

📁 java tutorial all about java game design
💻 HTML
📖 第 1 页 / 共 2 页
字号:
          {<br>
                  <ul>x_pos = x;<br>
                  y_pos = y;<br></ul>
          }<br><br>

          // Bewegt das Raumschiff in x - Richtung<br>
          public void moveX(int speed)<br>
          {<br>
                  <ul>x_pos += speed;<br></ul>
          }<br><br>

          // Erzeugt einen Schuss an der aktuellen Position des Schiffes<br>
          //und liefert diesen zur&uuml;ck<br>
          public Shot generateShot()<br>
          {<br>
                  <ul>Shot shot = new Shot(x_pos, y_pos);<br><br>

                  return shot;<br></ul>
          }<br><br>

          // zeichnet den Spieler<br>
          public void drawPlayer(Graphics g)<br>
          {<br>
                  <ul>g.setColor(Color.red);<br>
                  int [] x_poly = {x_pos, x_pos - 10, x_pos, x_pos + 10};<br>
                  int [] y_poly = {y_pos, y_pos + 15, y_pos + 10, y_pos + 15};<br>
                  g.fillPolygon(x_poly, y_poly, 4);<br></ul>
          }<br></ul>
  }<br></ul>
  <h3>Die Klasse Main</h3>
  <p align="justify">Und zum Abschluss nochmal die Klasse Main. Ich habe alle, f&uuml;r die Erzeugung und "Verwaltung" der Sch&uuml;sse unwichtigen Teile (Doppelpufferung...) aus dem Sourcecode hier entfernt (die Abschnitte, in denen etwas fehlt sind mit "..." gekennzeichnet). Diese Teile findet ihr dann im Sourcecode, den ihr runterladen k&ouml;nnt.</p>

  <ul>import java.applet.*;<br>
  import java.awt.*;<br><br>

  public class Main extends Applet implements Runnable<br>
  {<br>
          <ul>// Variablen<br>
          ...<br>
          private Player player;<br>
          private Shot [] shots;<br><br>

          // Konstanten<br>
          private final int shotSpeed = -2;<br>
          ...<br><br>

          // double buffering<br>
          private Image dbImage;<br>
          private Graphics dbg;<br><br>

          public void init()<br>
          {<br>
                  <ul>...<br>
                  // Erzeugen des Schussarrays<br>
                  shots = new Shot[5];<br></ul>
          }<br><br>

         ...<br><br>

          public void run ()<br>
          {<br><br>

                  <ul>while (true)<br>
                  {<br>
                          <ul>
                          // Durchlaufe das Schussarray, bewege die Sch&uuml;sse und <br>
                          // teste, ob ein Schuss das Spielfeld verlassen hat. <br>
                          // Hier k&ouml;nnten auch weitere Tests folgen (z. B. nach<br>
                          // Kollisionen mit Gegnern...<br>
                          for(int i=0; i&lt;shots.length; i++)<br>
                          {<br>
                                  <ul>if(shots[i] != null)<br>
                                  {<br>
                                          <ul>// Sch&uuml;sse bewegen<br>
                                          shots[i].moveShot(shotSpeed);<br><br>

                                          // Testen ob der Schuss das Spielfeld verlassen<br>                                          // hat, wenn ja, l&ouml;sche ihn aus dem Array<br>
                                          if(shots[i].getYPos() &lt; 0)<br>
                                          {<br>
                                                  <ul>// Schuss aus dem Array l&ouml;schen <br>
                                                  shots[i] = null;<br></ul>
                                          }<br><br>

                                          // Weitere Operationen einf&uuml;gen<br>
                                          // ...<br>
                                          // z. B. testen nach Kollisionen...<br>
                                          // ...<br></ul>
                                  }<br></ul>
                          }<br><br>

                          // Spieler bewegen<br>
                          ...<br><br>

                          ...<br></ul>
                  }<br></ul>
          }<br><br>

          public boolean keyDown(Event e, int key)<br>
          {<br>
                  <ul>...<br><br>

                  else if(key == 32)<br>
                  {<br>
                          <ul>// neuen Schuss generieren und im Array speichern<br>
                          for(int i=0; i&lt;shots.length; i++)<br>
                          {<br>
                                  // nur dann im Array speichern, wenn ein Platz frei ist<br>
                                  <ul>if(shots[i] == null)<br>
                                  {<br>
                                          <ul>shots[i] = player.generateShot();<br>
                                          // break, um Schuss nur einmal zu speichern<br>
                                          break;<br></ul>
                                  }<br></ul>
                          }<br></ul>
                  }<br><br>

                 ...<br></ul>
          }<br><br>

          public void paint (Graphics g)<br>
          {<br>
                  <ul>// Spieler zeichnen<br>
                  ...<br><br>

                  // Sch&uuml;sse zeichnen<br>
                  for(int i=0; i&lt;shots.length; i++)<br>
                  {<br>
                          <ul>if(shots[i] != null)<br>
                          {<br>
                                  <ul>shots[i].drawShot(g);<br></ul>
                          }<br></ul>
                  }<br></ul>
          }<br></ul>
  }<br></ul>

  <h3>Zusammenfassung</h3>
  <p align="justify">Also, wie ihr euch nun hoffentlich &uuml;berzeugen konntet ist das Ganze wirklich extrem einfach. Die verwendete Technik, n&auml;mlich das Speichern der Schussobjekte in einem Array und durchlaufen des Arrays in jedem run - Methoden - Aufruf und die dortige Anwendung von move... - Methoden auf die gespeicherten Objekte, ist eine wichtige Technik und kann auf viele andere Situationen &uuml;bertragen werden. Ich hoffe, dass ich euch mit diesem Tutorial ein wenig helfen konnte, viel Spa&szlig; weiterhin und ihr findet den Sourcecode und das Beispielapplet wie immer am Ende dieses Kapitels (also zwei Zeilen tiefer ;-).</p>
  <a href="SourceCodes/ShootingSpaceship/ShootingSpaceship.zip">SourceCode download (*.zip -  Datei)</a><br>
  <a href="Applets/ShootingSpaceship/ShootingSpaceship.html">Applet ansehen</a>
  <h4>N&auml;chstes Kapitel</h4>
<a href="PlatformGameBasicsDeu.html">Grundlagen eines Platfrom - Games</a>
  <!-- InstanceEndEditable -->
</div>
</td>
</tr>

<tr>
<td colspan="11" style="background-color:#990000" align="center">
<table width="100%" style="padding:0"><tr>
  <td width="88" bgcolor="#993300"><div align="center" style="font-size:10px; color: #FFFFFF;">  <a href="#top"> to top </a></div></td>
  <td><div align="center" style="font-size:10px; color: #FFFFFF;">
<a href="mailto:javacooperation@gmx.de">Fabian Birzele</a>, 2001-2004.<br>
web-design: <a href="http://www.freehand.str.ru/">Vadim Murzagalin</a>, 2004.
</div></td>
<td width="88">
</td>
</tr>
</table>

</td>

</tr>

</table>
</div>

</body>
<!-- InstanceEnd --></html>

⌨️ 快捷键说明

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