<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.mafiasi.de/index.php?action=history&amp;feed=atom&amp;title=2010-12-14_GameMaker_AG-Protokoll</id>
	<title>2010-12-14 GameMaker AG-Protokoll - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mafiasi.de/index.php?action=history&amp;feed=atom&amp;title=2010-12-14_GameMaker_AG-Protokoll"/>
	<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php?title=2010-12-14_GameMaker_AG-Protokoll&amp;action=history"/>
	<updated>2026-10-16T16:46:42Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Fachschaft Informatik</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://wiki.mafiasi.de/index.php?title=2010-12-14_GameMaker_AG-Protokoll&amp;diff=15426&amp;oldid=prev</id>
		<title>1steenfa: Bot: Kosmetische Änderungen</title>
		<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php?title=2010-12-14_GameMaker_AG-Protokoll&amp;diff=15426&amp;oldid=prev"/>
		<updated>2012-06-08T15:01:10Z</updated>

		<summary type="html">&lt;p&gt;Bot: Kosmetische Änderungen&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 8. Juni 2012, 15:01 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l43&quot;&gt;Zeile 43:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 43:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Außerdem kann durch Aufruf von &amp;quot;GameEnded()&amp;quot; die Bewegung deaktiviert werden.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Außerdem kann durch Aufruf von &amp;quot;GameEnded()&amp;quot; die Bewegung deaktiviert werden.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Interessante Dinge: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;[http://unity3d.com/support/documentation/ScriptReference/Physics.Raycast.html Physics.Raycast()&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;], &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;[http://unity3d.com/support/documentation/ScriptReference/Input.GetButtonDown.html Input.GetButtonDown()&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;] und &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;[http://unity3d.com/support/documentation/ScriptReference/Rigidbody-angularDrag.html Rigidbody.angularDrag&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Interessante Dinge: [http://unity3d.com/support/documentation/ScriptReference/Physics.Raycast.html Physics.Raycast()], [http://unity3d.com/support/documentation/ScriptReference/Input.GetButtonDown.html Input.GetButtonDown()] und [http://unity3d.com/support/documentation/ScriptReference/Rigidbody-angularDrag.html Rigidbody.angularDrag].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Wir erstellen des Weiteren ein Skript mit GUI.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Wir erstellen des Weiteren ein Skript mit GUI.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** function OnGUI() definieren&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** function OnGUI() definieren&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** GUI.xx oder GUILayout.xx im Rumpf aufrufen&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** GUI.xx oder GUILayout.xx im Rumpf aufrufen&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Offizielles Tutorial hierzu: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;[http://unity3d.com/support/documentation/Components/GUI%20Scripting%20Guide.html klick&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Offizielles Tutorial hierzu: [http://unity3d.com/support/documentation/Components/GUI%20Scripting%20Guide.html klick]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Klasse GUI in der Scripting-Referenz: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;[http://unity3d.com/support/documentation/ScriptReference/GUI.html GUI&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Klasse GUI in der Scripting-Referenz: [http://unity3d.com/support/documentation/ScriptReference/GUI.html GUI]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Unser Script &amp;quot;PlayerGUI&amp;quot;, der dem Spieler nzeigt, ob er noch spielt, gewonnen oder verloren hat, und dem entsprechend einen Knopf für Neustart oder das nächste Level anzeigt:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Unser Script &amp;quot;PlayerGUI&amp;quot;, der dem Spieler nzeigt, ob er noch spielt, gewonnen oder verloren hat, und dem entsprechend einen Knopf für Neustart oder das nächste Level anzeigt:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l96&quot;&gt;Zeile 96:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 96:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  GUI.Box(Rect(10,10,200,24), message);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  GUI.Box(Rect(10,10,200,24), message);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Hierbei interessant: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;[http://unity3d.com/support/documentation/ScriptReference/Application.LoadLevel.html Application.LoadLevel&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;] und &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;[http://unity3d.com/support/documentation/ScriptReference/Application-loadedLevel.html Application.loadedLevel&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Hierbei interessant: [http://unity3d.com/support/documentation/ScriptReference/Application.LoadLevel.html Application.LoadLevel] und [http://unity3d.com/support/documentation/ScriptReference/Application-loadedLevel.html Application.loadedLevel].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Jetzt muss man nur noch unseren WinTrigger so anpassen, dass er in PlayerMovement und PlayerGUI (beide unserer Kugel als Komponente gegeben) jeweils GameEnded() aufruft, bei PlayerGUI mit einem boolean-Parameter (win), der angibt, ob der Trigger das Ziel oder ein &amp;quot;verloren&amp;quot;-Bereich ist:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Jetzt muss man nur noch unseren WinTrigger so anpassen, dass er in PlayerMovement und PlayerGUI (beide unserer Kugel als Komponente gegeben) jeweils GameEnded() aufruft, bei PlayerGUI mit einem boolean-Parameter (win), der angibt, ob der Trigger das Ziel oder ein &amp;quot;verloren&amp;quot;-Bereich ist:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l113&quot;&gt;Zeile 113:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 113:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Fügt man nun mehrere Level zu den Build Settings hinzu, erhält man ein Spiel mit mehreren Leveln.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Fügt man nun mehrere Level zu den Build Settings hinzu, erhält man ein Spiel mit mehreren Leveln.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mit der GUI und einer Scene, in der einfach kein steuerbarer Spieler ist, ließe sich z.B. ein Hauptmenü erstellen.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mit der GUI und einer Scene, in der einfach kein steuerbarer Spieler ist, ließe sich z.B. ein Hauptmenü erstellen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Ich habe Prefabs vergessen. Shame on me. Wer mag, darf sich bis zum nächsten Treffen (welches ja eine Weile hin ist) über Prefabs schlau machen: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;[http://unity3d.com/support/documentation/Manual/Prefabs.html Prefabs&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;]. Mit Prefabs kann man GameObjects (ggf. samt Children) als Vorlagen speichern, z.B. den Spieler, und dann in jedem Level einfach nur noch einfügen. Genauso das Ziel oder auch einen sich wiederholenden Baustein. Auf Wunsch wird eine Änderung an einem Prefabs auf alle seine Instanzen angewendet. Sehr praktisch und wichtig!&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Ich habe Prefabs vergessen. Shame on me. Wer mag, darf sich bis zum nächsten Treffen (welches ja eine Weile hin ist) über Prefabs schlau machen: [http://unity3d.com/support/documentation/Manual/Prefabs.html Prefabs]. Mit Prefabs kann man GameObjects (ggf. samt Children) als Vorlagen speichern, z.B. den Spieler, und dann in jedem Level einfach nur noch einfügen. Genauso das Ziel oder auch einen sich wiederholenden Baustein. Auf Wunsch wird eine Änderung an einem Prefabs auf alle seine Instanzen angewendet. Sehr praktisch und wichtig!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Sonstiges ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Sonstiges ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l119&quot;&gt;Zeile 119:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 119:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Wir sehen uns am ersten Dienstag nach der vorlesungsfreien Zeit wieder!&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Wir sehen uns am ersten Dienstag nach der vorlesungsfreien Zeit wieder!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Kategorie: GameMaker AG-Protokolle]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Kategorie:GameMaker AG-Protokolle]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki-fsrwiki_:diff:1.41:old-11960:rev-15426:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>1steenfa</name></author>
	</entry>
	<entry>
		<id>https://wiki.mafiasi.de/index.php?title=2010-12-14_GameMaker_AG-Protokoll&amp;diff=11960&amp;oldid=prev</id>
		<title>SaschaGraeff: hat ?GameMaker AG-Protokoll 14.12.2010? nach ?2010-12-14 GameMaker AG-Protokoll? verschoben: Datums-Ordnung</title>
		<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php?title=2010-12-14_GameMaker_AG-Protokoll&amp;diff=11960&amp;oldid=prev"/>
		<updated>2011-01-20T07:51:30Z</updated>

		<summary type="html">&lt;p&gt;hat ?&lt;a href=&quot;/index.php/GameMaker_AG-Protokoll_14.12.2010&quot; class=&quot;mw-redirect&quot; title=&quot;GameMaker AG-Protokoll 14.12.2010&quot;&gt;GameMaker AG-Protokoll 14.12.2010&lt;/a&gt;? nach ?&lt;a href=&quot;/index.php/2010-12-14_GameMaker_AG-Protokoll&quot; title=&quot;2010-12-14 GameMaker AG-Protokoll&quot;&gt;2010-12-14 GameMaker AG-Protokoll&lt;/a&gt;? verschoben: Datums-Ordnung&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 20. Januar 2011, 07:51 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;de&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(kein Unterschied)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>SaschaGraeff</name></author>
	</entry>
	<entry>
		<id>https://wiki.mafiasi.de/index.php?title=2010-12-14_GameMaker_AG-Protokoll&amp;diff=11575&amp;oldid=prev</id>
		<title>134.100.4.25: Die Seite wurde neu angelegt: Protokoll der GameMaker AG-Sitzung am 14.12.2010  Anwesende Personen: ~11  Beginn: 13:05 Uhr  == Ablauf == * Wir erweitern PlayerMovement, sodass man bremsen und mehrfa...</title>
		<link rel="alternate" type="text/html" href="https://wiki.mafiasi.de/index.php?title=2010-12-14_GameMaker_AG-Protokoll&amp;diff=11575&amp;oldid=prev"/>
		<updated>2010-12-15T10:11:31Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: Protokoll der GameMaker AG-Sitzung am 14.12.2010  Anwesende Personen: ~11  Beginn: 13:05 Uhr  == Ablauf == * Wir erweitern PlayerMovement, sodass man bremsen und mehrfa...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Protokoll der GameMaker AG-Sitzung am 14.12.2010&lt;br /&gt;
&lt;br /&gt;
Anwesende Personen: ~11&lt;br /&gt;
&lt;br /&gt;
Beginn: 13:05 Uhr&lt;br /&gt;
&lt;br /&gt;
== Ablauf ==&lt;br /&gt;
* Wir erweitern PlayerMovement, sodass man bremsen und mehrfach springen kann:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var speed : float;&lt;br /&gt;
var brake : float;&lt;br /&gt;
var jumpPower : float;&lt;br /&gt;
var jumpCount : int = 3;&lt;br /&gt;
var pivot :Transform;&lt;br /&gt;
&lt;br /&gt;
private var alive : boolean = true;&lt;br /&gt;
private var jumpCounter : int = 3;&lt;br /&gt;
&lt;br /&gt;
function GameEnded()&lt;br /&gt;
{&lt;br /&gt;
 alive = false;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function FixedUpdate () &lt;br /&gt;
{&lt;br /&gt;
 if(alive)&lt;br /&gt;
 {&lt;br /&gt;
  rigidbody.AddForce(pivot.forward * Mathf.Clamp(Input.GetAxis(&amp;quot;Vertical&amp;quot;), 0, 1) * speed * Time.deltaTime);&lt;br /&gt;
  rigidbody.angularDrag = Mathf.Clamp(Input.GetAxis(&amp;quot;Vertical&amp;quot;), -1, 0)* -brake;&lt;br /&gt;
&lt;br /&gt;
  //Sieh unter Dir nach, ob da Boden ist&lt;br /&gt;
  if(Physics.Raycast(transform.position, -Vector3.up, 0.25+0.05))&lt;br /&gt;
  {&lt;br /&gt;
   jumpCounter = jumpCount;&lt;br /&gt;
  }&lt;br /&gt;
  //Wenn wir Space drücken und wir noch Sprünge übrig haben&lt;br /&gt;
  if(Input.GetButtonDown(&amp;quot;Jump&amp;quot;) &amp;amp;&amp;amp; jumpCounter &amp;gt; 0)&lt;br /&gt;
  {			&lt;br /&gt;
   rigidbody.AddForce(Vector3.up * jumpPower, ForceMode.Impulse);&lt;br /&gt;
   jumpCounter--;&lt;br /&gt;
  }&lt;br /&gt;
 }	&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Außerdem kann durch Aufruf von &amp;quot;GameEnded()&amp;quot; die Bewegung deaktiviert werden.&lt;br /&gt;
* Interessante Dinge: [[http://unity3d.com/support/documentation/ScriptReference/Physics.Raycast.html Physics.Raycast()]], [[http://unity3d.com/support/documentation/ScriptReference/Input.GetButtonDown.html Input.GetButtonDown()]] und [[http://unity3d.com/support/documentation/ScriptReference/Rigidbody-angularDrag.html Rigidbody.angularDrag]].&lt;br /&gt;
&lt;br /&gt;
* Wir erstellen des Weiteren ein Skript mit GUI.&lt;br /&gt;
** function OnGUI() definieren&lt;br /&gt;
** GUI.xx oder GUILayout.xx im Rumpf aufrufen&lt;br /&gt;
** Offizielles Tutorial hierzu: [[http://unity3d.com/support/documentation/Components/GUI%20Scripting%20Guide.html klick]]&lt;br /&gt;
** Klasse GUI in der Scripting-Referenz: [[http://unity3d.com/support/documentation/ScriptReference/GUI.html GUI]]&lt;br /&gt;
&lt;br /&gt;
* Unser Script &amp;quot;PlayerGUI&amp;quot;, der dem Spieler nzeigt, ob er noch spielt, gewonnen oder verloren hat, und dem entsprechend einen Knopf für Neustart oder das nächste Level anzeigt:&lt;br /&gt;
&amp;lt;pre&amp;gt;enum PlayerState&lt;br /&gt;
{&lt;br /&gt;
　playing,won,lost&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
private var state : PlayerState = PlayerState.playing;&lt;br /&gt;
&lt;br /&gt;
function GameEnded(won : boolean)&lt;br /&gt;
{&lt;br /&gt;
 if(won)&lt;br /&gt;
 {&lt;br /&gt;
  state = PlayerState.won;&lt;br /&gt;
 }&lt;br /&gt;
 else&lt;br /&gt;
 {&lt;br /&gt;
  state = PlayerState.lost;&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function OnGUI()&lt;br /&gt;
{&lt;br /&gt;
 var message : String;&lt;br /&gt;
 switch(state)&lt;br /&gt;
 {&lt;br /&gt;
  case PlayerState.won:&lt;br /&gt;
   message = &amp;quot;Du bist der King&amp;quot;;	&lt;br /&gt;
   if(GUI.Button(Rect(10,44,200,24), &amp;quot;Weiter...&amp;quot;))&lt;br /&gt;
   {&lt;br /&gt;
    Application.LoadLevel(Application.loadedLevel+1);&lt;br /&gt;
   }&lt;br /&gt;
  break;&lt;br /&gt;
  case PlayerState.lost:&lt;br /&gt;
   message =&amp;quot;Du Idiot!&amp;quot;;&lt;br /&gt;
   if(GUI.Button(Rect(10,44,200,24), &amp;quot;Neustart...&amp;quot;))&lt;br /&gt;
   {&lt;br /&gt;
    Application.LoadLevel(Application.loadedLevel);&lt;br /&gt;
   }&lt;br /&gt;
  break;&lt;br /&gt;
  default:&lt;br /&gt;
   message = &amp;quot;Macht hinne!&amp;quot;;				&lt;br /&gt;
  break;&lt;br /&gt;
 }&lt;br /&gt;
 GUI.Box(Rect(10,10,200,24), message);&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Hierbei interessant: [[http://unity3d.com/support/documentation/ScriptReference/Application.LoadLevel.html Application.LoadLevel]] und [[http://unity3d.com/support/documentation/ScriptReference/Application-loadedLevel.html Application.loadedLevel]].&lt;br /&gt;
&lt;br /&gt;
* Jetzt muss man nur noch unseren WinTrigger so anpassen, dass er in PlayerMovement und PlayerGUI (beide unserer Kugel als Komponente gegeben) jeweils GameEnded() aufruft, bei PlayerGUI mit einem boolean-Parameter (win), der angibt, ob der Trigger das Ziel oder ein &amp;quot;verloren&amp;quot;-Bereich ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;var win : boolean = false; &lt;br /&gt;
&lt;br /&gt;
function OnTriggerEnter(other : Collider)&lt;br /&gt;
{&lt;br /&gt;
 if(other.CompareTag(&amp;quot;Player&amp;quot;))&lt;br /&gt;
 {&lt;br /&gt;
  other.BroadcastMessage(&amp;quot;GameEnded&amp;quot;, win);&lt;br /&gt;
 }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Muss einem Objekt mit Collider mit isTrigger gegeben werden (haben wir schon erstellt).&lt;br /&gt;
&lt;br /&gt;
== Ergebnis ==&lt;br /&gt;
* Fügt man nun mehrere Level zu den Build Settings hinzu, erhält man ein Spiel mit mehreren Leveln.&lt;br /&gt;
Mit der GUI und einer Scene, in der einfach kein steuerbarer Spieler ist, ließe sich z.B. ein Hauptmenü erstellen.&lt;br /&gt;
* Ich habe Prefabs vergessen. Shame on me. Wer mag, darf sich bis zum nächsten Treffen (welches ja eine Weile hin ist) über Prefabs schlau machen: [[http://unity3d.com/support/documentation/Manual/Prefabs.html Prefabs]]. Mit Prefabs kann man GameObjects (ggf. samt Children) als Vorlagen speichern, z.B. den Spieler, und dann in jedem Level einfach nur noch einfügen. Genauso das Ziel oder auch einen sich wiederholenden Baustein. Auf Wunsch wird eine Änderung an einem Prefabs auf alle seine Instanzen angewendet. Sehr praktisch und wichtig!&lt;br /&gt;
&lt;br /&gt;
== Sonstiges ==&lt;br /&gt;
* Vielen Dank an Ina für die Binärkekse!&lt;br /&gt;
* Wir sehen uns am ersten Dienstag nach der vorlesungsfreien Zeit wieder!&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: GameMaker AG-Protokolle]]&lt;/div&gt;</summary>
		<author><name>134.100.4.25</name></author>
	</entry>
</feed>