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

📄 landscapedeu.html

📁 java tutorial all about java game design
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<html><!-- InstanceBegin template="/Templates/template.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<!-- InstanceBeginEditable name="doctitle" -->
<title>Java Cooperation: landscapegenerator</title>
<!-- InstanceEndEditable --><meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link href="jc_style.css" rel="stylesheet" type="text/css">
<script src="klayers.js"></script>

<script>

function cancelCloseMenu(){
        if(self.tm) clearTimeout(tm) // cancel delayed closing
}

function showMenu(){
        if(!self.menu || !self.submenu){
                menu=layer("menulayer")
                submenu=layer("submenulayer")
        }

        cancelCloseMenu()

        submenu.moveTo(menu.getAbsoluteLeft(), menu.getAbsoluteTop() + menu.getHeight()) // move second menu relatively
        submenu.show()
}

function initiateHideMenu(){
        tm=setTimeout("hideMenu()",400) // 1 second delay to close a submenu
}

function hideMenu(){
        submenu.hide()
}

</script>

<!-- InstanceBeginEditable name="head" --><!-- InstanceEndEditable -->
</head>
<body bgcolor="#ffffff" leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0">
<div align="center">
  <a name="top"></a>
  <table bgcolor="#737373" border="0" cellpadding="0" cellspacing="0" width="618">
  <tr>
<td rowspan="8" bgcolor="#000000"><img src="Pics/spacer.gif" width="1" height="1" border="0" alt=""></td>
   <td bgcolor="#000000"><img src="Pics/spacer.gif" width="131" height="1" border="0" alt=""></td>
   <td bgcolor="#000000"><img src="Pics/spacer.gif" width="13" height="1" border="0" alt=""></td>
   <td bgcolor="#000000"><img src="Pics/spacer.gif" width="58" height="1" border="0" alt=""></td>
   <td bgcolor="#000000"><img src="Pics/spacer.gif" width="94" height="1" border="0" alt=""></td>
   <td bgcolor="#000000"><img src="Pics/spacer.gif" width="81" height="1" border="0" alt=""></td>
   <td bgcolor="#000000"><img src="Pics/spacer.gif" width="48" height="1" border="0" alt=""></td>
   <td bgcolor="#000000"><img src="Pics/spacer.gif" width="23" height="1" border="0" alt=""></td>
   <td bgcolor="#000000"><img src="Pics/spacer.gif" width="38" height="1" border="0" alt=""></td>
   <td bgcolor="#000000"><img src="Pics/spacer.gif" width="19" height="1" border="0" alt=""></td>
   <td bgcolor="#000000"><img src="Pics/spacer.gif" width="108" height="1" border="0" alt=""></td>
   <td bgcolor="#000000"><img src="Pics/spacer.gif" width="5" height="1" border="0" alt=""></td>

  </tr>

  <tr>
   <td rowspan="5"><a href="index.html"><img name="fab_r1_c1" src="Pics/fab_r1_c1.gif" width="131" height="71" border="0" alt="Java cooperation home"></a></td>
   <td rowspan="6" bgcolor="#737373"></td>
   <td colspan="9" height="15" bgcolor="#737373"></td>
   <td rowspan="8" bgcolor="#000000"><img src="Pics/spacer.gif" width="1" height="1" border="0" alt=""></td>
  </tr>
  <tr>
   <td colspan="5"><div class="colontitul"><!-- InstanceBeginEditable name="Colontitul" -->Tutorial<!-- InstanceEndEditable --></div></td>
   <td colspan="2" bgcolor="#737373"><img name="fab_r2_c8" src="Pics/fab_r2_c8.gif" width="57" height="19" border="0" alt="type and press Enter"></td>
   <td colspan="2">
<FORM method=GET action="http://www.google.com/search">
<TABLE bgcolor="#FFFFFF" cellpadding="0" cellspacing="0" height="10px"><tr>
<td height="10" valign="middle">
<INPUT TYPE=text name=q size=18 maxlength=60 value="" style="font-size:12px; color:#000000; border-width: 0px;">
<input type=hidden name=domains value="http://javacooperation.gmxhome.de/">
<input type=hidden name=sitesearch value="http://javacooperation.gmxhome.de/" checked>
</td></tr></TABLE>
</td>
</form>
   <td><img src="Pics/spacer.gif" width="1" height="19" border="0" alt=""></td>
  </tr>
  <tr>
   <td colspan="9" bgcolor="#666666"><img name="fab_r3_c3" src="Pics/fab_r3_c3.gif" width="474" height="8" border="0" alt=""></td>
   <td><img src="Pics/spacer.gif" width="1" height="8" border="0" alt=""></td>
  </tr>
  <tr>
   <td colspan="6"><a href="TutorialStartDeu.html"><img src="Pics/deupanel_01.gif" width="56" height="22" border="0"></a><a href="OnlineSpieleStartDeu.html"><img src="Pics/deupanel_02.gif" width="94" height="22" border="0"></a><a href="DownloadsDeu.html"><img src="Pics/deupanel_03.gif" width="76" height="22" border="0"></a><a href="LinksDeu.html"><img src="Pics/deupanel_04.gif" width="52" height="22" border="0"></a><a href="KontaktDeu.html"><img src="Pics/deupanel_05.gif" width="64" height="22" border="0"></a></td>
   <td><img name="fab_r4_c9" src="Pics/fab_r4_c9.gif" width="19" height="22" border="0" alt=""></td>
   <td width="108" height="22" bgcolor="#666666"><div align="center"><span id="menulayer" style="position: relative; background-color:#666666; width:108; height:20; vertical-align:baseline; border:1px solid #FFFFFF"><a href="#" class="text" onmouseover="showMenu(); return true" onmouseout="initiateHideMenu(); return true">Select language</a></span>
   </div>
     <div id="submenulayer" style="position: absolute; visibility: hidden; background-color: #666666; width:108px;">
         <div class="text" style="border:1px solid #FFFFFF; border-top-width:0; padding:5px">
<a href="#" onmouseover="cancelCloseMenu(); return true" onmouseout="initiateHideMenu(); return true">German</a><br>
<a href="indexEng.html" onmouseover="cancelCloseMenu(); return true" onmouseout="initiateHideMenu(); return true">English</a><br>
<a href="http://javacooperation.dev.juga.ru/index.html" onmouseover="cancelCloseMenu(); return true" onmouseout="initiateHideMenu(); return true">Russian</a>
</div>
</div>
</td>
   <td><img name="fab_r4_c11" src="Pics/fab_r4_c11.gif" width="5" height="22" border="0" alt=""></td>
   </tr>
  <tr>
   <td colspan="9"><img name="fab_r5_c3" src="Pics/fab_r5_c3.gif" width="474" height="7" border="0" alt=""></td>
  </tr>
<tr>
<td colspan="11" style="padding:18; background-color:#333333; vertical-align:top;">
<div class="text">
  <!-- InstanceBeginEditable name="EditRegion" -->
  <h2>Landschaftsgenerator</h2>
  <p align="justify">In diesem Kapitel m&ouml;chte ich euch die Technik zur Erstellung einer 2D - Landschaft, wie ich sie in dem Spiel
  <a href= "Applets/Games/Castles/Castles.html">Castles</a> verwendet habe, vorstellen.
  Auch in diesem Fall gilt wieder, dass ich auf die Main - Klasse des Applets nicht n&auml;her eingehen werde, genausowenig werde ich die Klasse Stars besprechen, die im Hintergrund die Sterne zeichnet. Beide Klassen sind jedoch denkbar einfach und sollten eigentlich kein Problem darstellen. Widmen wir uns nun also zun&auml;chst der Problemstellung.</p>
  <h3>Das Problem</h3>
  <p align="justify">Wir wollen eine bergige Landschaft erzeugen um sie in einem Spiel wie Castles zu verwenden. Die Landschaft soll in jedem Spiel anders aussehen, also zufallsgeneriert sein, was die Verwendung von *.gif's o. &auml;. ausschlie&szlig;t, und muss die F&auml;higkeit besitzen nachtr&auml;glich noch ver&auml;ndert werden zu k&ouml;nnen, z. B. wenn Bomben einschlagen... . Desweiteren darf die Menge an Daten, die gespeichert werden muss um die Landschaft festzulegen, nicht allzu gro&szlig; sein um das Spiel nicht unn&ouml;tig langsam zu machen. Zudem m&uuml;ssen wir uns auch &uuml;berlegen, wie wir die Daten speichern wollen. Es gibt f&uuml;r diese Problemstellung sicherlich viele passende und gute L&ouml;sungen, von denen ich nun auf eine genauer eingehen m&ouml;chte.</p>
  <h3>Die Idee und Beschreibung des Algorithmus</h3>
  <p align="justify">Um die Datenmenge m&ouml;glichst gering zu halten m&ouml;chte ich die Landschaft aus vielen vertikalen Linien, und nicht aus einzelnen Punken, aufbauen. Reiht man f&uuml;r die gesamte L&auml;nge der Landschaft senkrechte Linien aneinander, so entsteht, sind alle Linien gleich lang und haben den selben Start- und Endpunkt, ein Rechteck. Ein Punkt der Linie, in unserem Fall der Untere (untere Grenze des Applets) kann f&uuml;r jede Linie einer Zufallslandschaft konstant gew&auml;hlt werden. Wir m&uuml;ssen also nur den oberen Punkt, der sozusagen die Oberfl&auml;che der Landschaft bestimmt, variieren und in einem Array speichern. <br><br>
  <img src="tutorial_pics/Landscape1.gif" align="left" border="0">
  Zun&auml;chst muss klar sein, dass es keinen Nutzen bringt, jeden Oberfl&auml;chenpunkt mit Hilfe eines Zufallsgenerators zu bestimmen. Denn die so erzeugte "Landschaft" w&uuml;rde dann alles andere als eine zusammenh&auml;ngende, strukturierte Oberfl&auml;che besitzen. Das Ergebniss eines solchen Versuchs ist in dem Bild neben diesem Absatz zu sehen.<br clear=all> <br>
  Um eine zusammenh&auml;ngende, strukturierte Oberfl&auml;che zu generieren, m&uuml;ssen wir etwas tiefer in die Trickkiste greifen. Ich m&ouml;chte es zun&auml;chst etwas einfacher machen, als ich es in Castles umgesetzt habe:
  </p>

⌨️ 快捷键说明

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