Jumpee Rabbit Reloaded

    • Beta
    • Closed Source

    Es gibt 116 Antworten in diesem Thema. Der letzte Beitrag () ist von RushDen.

      Ich verstehe den Showroom überhaupt nicht als Ort, wo Hilfe zu ungelösten Problemen erbeten wird.

      Wusste für den Moment kein anderes Wort als Workshop bzw wusste ich nicht wie ichs am besten beschreiben sollte. Natürlich (sagt ja auch der Name) sollte klar sein wofür ein Showroom da ist.

      Im ShowRoom stellt man etwas Fertiges vor, und bittet um Feedback, ob es gefällt, und natürlich um Bug-Reports.

      Genau das ist die Vorraussetzung die manchmal nicht einmal Ansatzweise zutrifft. Man kann halt teilweise schwer Feedback geben wenn man ein Programm weder starten kann noch richtig nutzen kann weil
      es nie getestet wurde. Ich denke aber wir hier können das Problem nicht lösen, denn beim nächsten Progrämmchen von Andi gehts von vorne los....
      Was ich für meinen Teil NICHT möchte ist das hier das Niveau so weit sinkt das die Community nach Aussen und für Neulinge so wirkt als wären hier nur vollpubertierende möchtegern Programmierer unterwegs.
      Vielleicht muss es ja soweit kommen das die Regeln für den Showroom angepasst werden müssen bzw. wie schonmal vorgeschlagen es ein Gremium gibt das unparteiisch die Programme näher unter die Lupe nimmt
      bevor sie in den Showroom kommen.
      Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.

      Snaptu schrieb:

      das Niveau so weit sinkt...
      nochmal meine Meinung, nicht unbedingt die der Moderation:
      Ich finde die Programme im ShowRoom samt und sonders unprofessionell. Das ist jetzt keine Beleidigung, sondern das ist einfach so: Was ich mir unter professioneller Software vorstelle, sieht wesentlich anders aus (naja - vlt. 1% könnten als Freeware-Gimmicks vlt. bestehen).
      Und das ist auch kaum zu vermeiden, denn die ShowRoom-SW ist nunmal Hobby-SW, von einzelnen, meist unausgebildeten Hobby-Programmierern geschrieben, ohne Berufspraxis - also sie kann gar keinen auch nur annähernd professionellen Anspruch erheben - meist macht sie sich damit nur lächerlich.
      Ich kann irgendwie die Agression nicht nachvollziehen, dass ein Feedback nicht angenommen wird, denn:

      1. Keiner zwingt euch dazu, eure Freizeit dafür zu opfern. Wenn ihr also der Meinung seit, Software von Benutzer xy wird eh nicht geupdated, dann schaut doch den Thread gar nicht an. Einfach komplett ignorieren.
      2. Das Lehrerhafte "Uhhhh :(( Er ist auf meine Kritik nicht eingegangen...". Habt doch einfach Mitleid, dass er den Horizont noch nicht hat. Er ist halt noch schlecht im programmieren. War wohl jeder am Anfang. Sollte er eine Kritikresistenz haben, wird er damit nicht weit kommen. Schade für ihn.

      Ist mir zum Beispiel bei @Trade aufgefallen, der sich hier wirklich jedes mal die Mühe macht, Kritikpunkte zu finden und sich jedes zweite mal schwarz ärgert, dass er ignoriert wird. Ich bewundere deine Kondition, ich hätte es schon lange gelassen, da der Großteil ja doch nicht berücksichtigt wird.
      Ich weiß nicht, was das Problem daran wäre, wenn seine Software einfach garkeine Rückmeldung bekommt, bevor sie nicht offensichtlich brauchbar ist, denn eine direktere Rückmeldung als noch nicht einmal wert, getestet zu werden gibts glaub ich nicht. Bis sie es dann wert ist.

      Programmierer schrieb:

      Er ist halt noch schlecht im programmieren


      Genau solche aussagen ärgern mich. Ich Programmiere nun schon seit 2011, das ist länger wie bei anderen. Ich habe schon Programme geschrieben die durchaus Komplexer sind als dieses, schaue MySpy, das mit der WinAPI arbeitet oder nMal, Schaue Outbar (bitte nur neue Version) die Komplett mit GDI+ erstellt wurde.

      Ich Arbeite nun auch mit C++ und habe damit auch einen Direct2D Wrapper für .Net geschrieben, dieser hängt aber noch in der Freischaltung.
      Meine Projekte Genesis Game Engine | GFX | smartli.me - Der smarte URL shortener

      Sorry, ist meine Subjektive Meinung.

      Vielleich sollte man
      Er ist halt noch schlecht im programmieren

      in

      Programme, die offensichtlich schlecht programmiert wurden, betrachte man den standard

      ändern, was schon etwas objektiver ist.

      Fakt allerdings ist: Das Programm ist nicht gut programmiert. Da du der Autor bist, schlussfolgerte ich (vielleicht fehl), dass der Programmierer noch nicht viel Erfahrung hat.

      Edit: Bemerkenswert, das habe ich noch nicht gemacht, ich weiß nicht, ob das schwer ist. Aber an der Qualität des aktuellen Programms ändert das nichts.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Programmierer“ ()

      Andy16823 schrieb:

      Ich Programmiere nun schon seit 2011
      Jahre sind zwar ein Richtwert, geben jedoch keine Auskunft darüber, wie gut man ist.

      Andy16823 schrieb:

      die durchaus Komplexer sind als dieses

      Komplexität liegt im Auge des betrachters. Jemand, der sich professionell mit Spieleprogrammierung beschäftigt, würde dieses hier als Trivial abtun.
      Natürlich ist dies ein Kleines und Simples Projekt. Das Spiel an sich ohne Engine hat gerade mal ~300 Zeilen. Ich rede ja nicht nur von dem Programmieren von Spielen, da bin ich neu :) ich habe viel mehr die o.g. Applikationen, Dll's gemeint
      Meine Projekte Genesis Game Engine | GFX | smartli.me - Der smarte URL shortener

      Also ich denke das was du hier ablieferst tut schon mehr oder weniger was es soll, jetzt solltest du dir nur noch aneignen konform und sauber zu coden und die GUI nach MS Standard aufzubauen dann wär alles super.
      Metal-Schweiz wurde nun offiziell veröffentlich nach all den Jahren :)

      Vielleicht sollte die Moderation an dieser Stelle darüber denken, ob eine Untergrenze für

      Andy16823 schrieb:

      dies ein Kleines und Simples Projekt.

      oder ähnliche Projekte gesetzt werden sollte.
      Die Zeilenanzahl ist meiner Meinung nach nicht von Relevanz.
      Eher jedoch, dass das Programm genau das tut, was es verspricht.
      Man könnte zum Beispiel hier im Showroom ein Programm veröffentlichen, dass das CD Laufwerk ausfährt, wäre sicher in < als 300 Zeilen machbar, und würde trotzdem seinen Zweck erfüllen.
      Kompakt, nützlich und nicht allzu hässlich und man könnte es veröffentlichen, da sehe ich kein Problem.
      Ich denke, dass man es einfach mal gut sein lassen sollte. Es ist nicht richtig, auf Kompetenzbasis zu urteilen. Ich möchte jetzt nicht arrogant erscheinen, aber ein Großteil der Programme, die im Forum sind, SIND trivial, nicht mal Fehler werden richtig behandelt oder verhindert, schlecht durchdacht oder sonst was. Aber ich finde, dass es auf sowas einfach nicht ankommt. Wenn wir hier einen "Elite"-Showroom haben wollten für Mitglieder des Forums, die wohl quasi allesamt nicht zur Programmierelite gehören, wäre der Showroom leer.
      Ich finde es eher asozial, dass auf Leuten herumgehackt wird, nur weil sie - zumindest von oben herab (nicht meine Meinung) so beurteilt - qualitativ unangemessene Software liefern und sich der Fortschritt eben nur sehr langsam tut. Ich denke, dass es wohl nicht zu viel verlangt ist, dass man auch Personen, die nicht mit den eigenen Denkmustern, -geschwindigkeiten oder sonst einer gesellschafts- oder selbstbezogenen Norm kongruent sind, durchaus tolerieren kann. Es kann einfach nicht sein, dass man versucht, solche Leute zu beleidigen, herunterzumachen oder sonst irgendwie arrogant zu behandeln, ein solches Verhalten sehe ich als untragbar an. Ich denke, dass jeder das Recht auf freie Entfaltung erhalten sollte, solange es gleichzeitig das Recht dieser freien Entfaltung für alle Anderen einräumt. Ob jemand nun langsamer vorgeht, als jemand anderes, spielt doch wohl hier keine Rolle? Deswegen bitte ich euch einfach nochmal darum: Belasst es jetzt einfach mal dabei, es kann einfach nicht sein, dass hier im Thread rumgehackt, kritisiert, beleidigt oder Arroganz ausgekippt wird und sich zwischendurch mal jemand auch für Andy16823 einsetzt. Welchen Schaden tragt ihr bitte durch das Verhalten davon? Vermutlich keinen, also bitte haltet euch einfach mal zurück, was das alles angeht. Äußert Kritik freundlich und als Vorschlag, von mir aus baut irgendwelche Floskeln ein, wenn ihr euch sonst übergangen vorkommt oder verwendet irgendwelche Stilmittel. Andy16823 bemüht sich laut eigener Aussage darum, Kritik umzusetzen und wieso unterstellt man ihm dann weiterhin, er wäre Kritik gegenüber nicht weiter offen? Er hat sich entschieden, für Kritik offen zu sein, er hat keinen Grund zu lügen und damit ist die Sache aus meiner Perspektive erledigt.
      Außerdem unterliegen Wertungen über anderen Personen immer jenen Parametern, die ihr selber kennt und die ihr herausgegriffen habt, d.h. sie müssen nicht zutreffend sein, nur weil ihr denkt, dass etwas so ist, wie es ist. In meinen Augen würde man sowas als Vorurteil bezeichnen.
      Wenn es jetzt nichts weiteres zu sagen gibt, würde ich sagen, dass ich das Thema demnächst schließe. Wenn es eine Weiterentwicklung der Software gibt, wäre es in meinen Augen besser und angemessen, ein neues Thema zu eröffnen, da es kaum einen Sinn hat, ein derart abgedriftetes Thema noch weiterzuführen.

      Gruß
      ~blaze~

      ErfinderDesRades schrieb:

      Ich finde die Programme im ShowRoom samt und sonders unprofessionell.

      ErfinderDesRades schrieb:

      Und das ist auch kaum zu vermeiden, denn die ShowRoom-SW ist nunmal Hobby-SW, von einzelnen, meist unausgebildeten Hobby-Programmierern geschrieben, ohne Berufspraxis - also sie kann gar keinen auch nur annähernd professionellen Anspruch erheben - meist macht sie sich damit nur lächerlich.

      ...

      ErfinderDesRades schrieb:

      Das ist jetzt keine Beleidigung

      aber das sagt mir ein unausgebildeter Programmierer ohne jegliche Berufserfahrung von dem ich dazu noch überhaupt nie etwas im Showroom gesehen habe? Die Tatsache, dass hier einfach wahnsinnig viel Müll gepostet wird ändert nichts an der Tatsache, dass manche Nutzer durchaus sehr ordentliche um nicht zu sagen "professionelle" Software posten. Wenn du dir mal anschaust, was teilweise "professionelle Programmierer" abliefern so kann da so manche Software mithalten. Finde z.B. die Sachen von nikeee sehr ordentlich gemacht. Software hält sich an Guidlines, hat eine große Codeabdeckung durch Komponententests, ist Dokumentiert,... Oder auch Die Dinge von Quadsoft wurden bereits in diversen Zeitschriften veröffentlicht und so weiter und so fort. Kurz: a) Finde ich dein Urteil hier zu hart und b) wüsste ich nicht weshalb es laut deiner Erläuterung genau dir zustehen sollte ein Urteil über nahezu sämtliche gepostete Software zu fällen.

      Ich halte mich hier jetzt aber aus der sinnlosen Diskussion so oder so raus. Tatsache ist jedoch, dass man auf etwas mehr Qualität im Showroom durchaus achten könnte. Immerhin gibt es durchaus Software mit Potential welche durch sehr viel Mist überdeckt wird. Und hier sollte man einfach einen Riegel vorschieben und bevor man etwas freischält das KURZ testen und wenn das schon in den ersten 5 Minuten 10 Bugs hat einfach NICHT freischalten.


      Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
      So nun mal wieder zum Thema zurück. Hier habe ich den Sourcecode

      GamePanel

      Java-Quellcode

      1. package Game;
      2. import java.awt.Color;
      3. import java.awt.Font;
      4. import java.awt.Rectangle;
      5. import java.util.Vector;
      6. import com.assets.assetmanager;
      7. import com.types.Scene;
      8. import com.types.gameobject.RenderModes;
      9. import com.ui.UIManager;
      10. import com.ui.Control.BorderStyles;
      11. import com.ui.Control.ImageStyles;
      12. import com.ui.Control.TextStyles;
      13. import com.ui.controls.Label.BackgroundStyles;
      14. import com.vector.size;
      15. import com.vector.vector2;
      16. public class GamePanel extends com.game.Game {
      17. public com.assets.assetmanager Assets;
      18. public boolean WalkLeft = false;
      19. public int Points = 0;
      20. public int Lives = 5;
      21. public Game Parent;
      22. public boolean CanJump;
      23. public int Level = 1;
      24. public GamePanel(long Looptime, Game parent) {
      25. super(Looptime);
      26. // TODO Auto-generated constructor stub
      27. this.Parent = parent;
      28. // Adds assets
      29. this.Assets = new com.assets.assetmanager();
      30. this.Assets.addAsset("Background", getClass().getResource("Assets/bg.jpg"));
      31. this.Assets.addAsset("Hase_Links", getClass().getResource("Assets/Hase_Links.png"));
      32. this.Assets.addAsset("Hase_Rechts", getClass().getResource("Assets/Hase_Rechts.png"));
      33. this.Assets.addAsset("Karotte", getClass().getResource("Assets/karotte.png"));
      34. this.Assets.addAsset("Plattform", getClass().getResource("Assets/grass_64x64.png"));
      35. this.Assets.addAsset("Plattform2", getClass().getResource("Assets/Plattform.png"));
      36. // Adds the Game Sprite
      37. com.rendering.spritetextures sprite_textures = new com.rendering.spritetextures(Assets.loadAsset("Hase_Links"), Assets.loadAsset("Hase_Rechts"), Assets.loadAsset("Hase_Rechts"), Assets.loadAsset("Hase_Rechts"));
      38. com.physik.gravity sprite_gravitation = new com.physik.gravity(true, 0, 25);
      39. this.setSlectedSprite(new com.types.sprite("Player", new vector2(15,15), new com.vector.size(48,48), sprite_textures));
      40. this.getSelectedSprite().setGravity(sprite_gravitation);
      41. // Adds the Scene Manager
      42. this.setSceneManager(new com.types.SceneManager());
      43. this.getSceneManager().AddScene(this.buildScene());
      44. this.setMapBuffer(this.getSceneManager().BuildScene());
      45. // Adds a UI Manager
      46. com.ui.UIManager UIManager = new com.ui.UIManager();
      47. UIManager.setName("Menue");
      48. UIManager.setEnabled(true);
      49. com.ui.controls.Panel Background_Panel = new com.ui.controls.Panel(this);
      50. Background_Panel.setBorderStyle(BorderStyles.NORMAL_STYLE);
      51. Background_Panel.setImageStyle(ImageStyles.NONE);
      52. Background_Panel.setBackgroundColor(new Color(Color.black.getRed(), Color.black.getGreen(), Color.black.getBlue(), 160));
      53. Background_Panel.setLocation(new vector2(0,0));
      54. Background_Panel.setSize(new com.vector.size(900,600));
      55. Background_Panel.setName("Background_Panel");
      56. Background_Panel.setEnabled(true);
      57. UIManager.AddControl(Background_Panel);
      58. com.ui.controls.Label Title_Label = new com.ui.controls.Label(this);
      59. Title_Label.setBorderStyle(BorderStyles.NONE);
      60. Title_Label.setImageStyle(ImageStyles.NONE);
      61. Title_Label.setTextStyle(TextStyles.CENTER_ALLIGN);
      62. Title_Label.setBackgroundStyle(BackgroundStyles.TRANSPARENT_COLOR);
      63. Title_Label.setForeColor(Color.WHITE);
      64. Title_Label.setBorderColor(Color.WHITE);
      65. Title_Label.setFont(new Font("Arial", Font.BOLD, 30));
      66. Title_Label.setSize(new com.vector.size(900,100));
      67. Title_Label.setLocation(new vector2(0,0));
      68. Title_Label.setText("Jumpee Rabbit Reloaded");
      69. Title_Label.setName("Titel");
      70. Title_Label.setEnabled(true);
      71. UIManager.AddControl(Title_Label);
      72. com.ui.controls.Button Neu_Button = new com.ui.controls.Button(this);
      73. Neu_Button.setBorderStyle(BorderStyles.NORMAL_STYLE);
      74. Neu_Button.setImageStyle(ImageStyles.NONE);
      75. Neu_Button.setTextStyle(TextStyles.CENTER_ALLIGN);
      76. Neu_Button.setBackgroundColor(new Color(Color.black.getRed(), Color.black.getGreen(), Color.black.getBlue(), 220));
      77. Neu_Button.setBorderColor(Color.WHITE);
      78. Neu_Button.setForeColor(Color.WHITE);
      79. Neu_Button.setFont(new Font("Arial", Font.BOLD, 15));
      80. Neu_Button.setName("Neues_Spiel");
      81. Neu_Button.setText("Neues Spiel");
      82. Neu_Button.setLocation(new vector2(300, 150));
      83. Neu_Button.setSize(new com.vector.size(300, 50));
      84. Neu_Button.setEnabled(true);
      85. Neu_Button.AddOnClickListener(Event.NeuesSpielListener);
      86. UIManager.AddControl(Neu_Button);
      87. com.ui.controls.Button Fortsetzen_Button = new com.ui.controls.Button(this);
      88. Fortsetzen_Button.setBorderStyle(BorderStyles.NORMAL_STYLE);
      89. Fortsetzen_Button.setImageStyle(ImageStyles.NONE);
      90. Fortsetzen_Button.setTextStyle(TextStyles.CENTER_ALLIGN);
      91. Fortsetzen_Button.setBackgroundColor(new Color(Color.black.getRed(), Color.black.getGreen(), Color.black.getBlue(), 220));
      92. Fortsetzen_Button.setBorderColor(Color.WHITE);
      93. Fortsetzen_Button.setForeColor(Color.WHITE);
      94. Fortsetzen_Button.setFont(new Font("Arial", Font.BOLD, 15));
      95. Fortsetzen_Button.setName("Fortsetzen");
      96. Fortsetzen_Button.setText("Spiel Fortsetzen");
      97. Fortsetzen_Button.setLocation(new vector2(300, 220));
      98. Fortsetzen_Button.setSize(new com.vector.size(300, 50));
      99. Fortsetzen_Button.setEnabled(true);
      100. Fortsetzen_Button.AddOnClickListener(Event.FortsetzenListner);
      101. UIManager.AddControl(Fortsetzen_Button);
      102. com.ui.controls.Button Settings_Button = new com.ui.controls.Button(this);
      103. Settings_Button.setBorderStyle(BorderStyles.NORMAL_STYLE);
      104. Settings_Button.setImageStyle(ImageStyles.NONE);
      105. Settings_Button.setTextStyle(TextStyles.CENTER_ALLIGN);
      106. Settings_Button.setBackgroundColor(new Color(Color.black.getRed(), Color.black.getGreen(), Color.black.getBlue(), 220));
      107. Settings_Button.setBorderColor(Color.WHITE);
      108. Settings_Button.setForeColor(Color.WHITE);
      109. Settings_Button.setFont(new Font("Arial", Font.BOLD, 15));
      110. Settings_Button.setName("Einstellungen");
      111. Settings_Button.setText("Einstellungen");
      112. Settings_Button.setLocation(new vector2(300, 290));
      113. Settings_Button.setSize(new com.vector.size(300, 50));
      114. Settings_Button.setEnabled(true);
      115. UIManager.AddControl(Settings_Button);
      116. com.ui.controls.Button Beenden_Button = new com.ui.controls.Button(this);
      117. Beenden_Button.setBorderStyle(BorderStyles.NORMAL_STYLE);
      118. Beenden_Button.setImageStyle(ImageStyles.NONE);
      119. Beenden_Button.setTextStyle(TextStyles.CENTER_ALLIGN);
      120. Beenden_Button.setBackgroundColor(new Color(Color.black.getRed(), Color.black.getGreen(), Color.black.getBlue(), 220));
      121. Beenden_Button.setBorderColor(Color.WHITE);
      122. Beenden_Button.setForeColor(Color.WHITE);
      123. Beenden_Button.setFont(new Font("Arial", Font.BOLD, 15));
      124. Beenden_Button.setName("Beenden");
      125. Beenden_Button.setText("Spiel Beenden");
      126. Beenden_Button.setLocation(new vector2(300, 360));
      127. Beenden_Button.setSize(new com.vector.size(300, 50));
      128. Beenden_Button.setEnabled(true);
      129. Beenden_Button.AddOnClickListener(Event.BeendenListener);
      130. UIManager.AddControl(Beenden_Button);
      131. this.addUIManager(UIManager);
      132. // Adds HUD
      133. com.ui.UIManager HUDManager = new com.ui.UIManager();
      134. HUDManager.setName("HUDManager");
      135. HUDManager.setEnabled(true);
      136. com.ui.controls.Label LivesLabel = new com.ui.controls.Label(this);
      137. LivesLabel.setBorderStyle(BorderStyles.NONE);
      138. LivesLabel.setImageStyle(ImageStyles.NONE);
      139. LivesLabel.setTextStyle(TextStyles.LEFT_ALLIGN);
      140. LivesLabel.setBackgroundStyle(BackgroundStyles.TRANSPARENT_COLOR);
      141. LivesLabel.setForeColor(Color.WHITE);
      142. LivesLabel.setFont(new Font("Arial", Font.BOLD, 14));
      143. LivesLabel.setText("Punkte: 0");
      144. LivesLabel.setLocation(new vector2(15,15));
      145. LivesLabel.setSize(new com.vector.size(150, 50));
      146. LivesLabel.setName("HUDLivesLabel");
      147. LivesLabel.setEnabled(true);
      148. HUDManager.AddControl(LivesLabel);
      149. com.ui.controls.Label PointsLabel = new com.ui.controls.Label(this);
      150. PointsLabel.setBorderStyle(BorderStyles.NONE);
      151. PointsLabel.setImageStyle(ImageStyles.NONE);
      152. PointsLabel.setTextStyle(TextStyles.LEFT_ALLIGN);
      153. PointsLabel.setBackgroundStyle(BackgroundStyles.TRANSPARENT_COLOR);
      154. PointsLabel.setForeColor(Color.WHITE);
      155. PointsLabel.setFont(new Font("Arial", Font.BOLD, 14));
      156. PointsLabel.setText("Leben: 5");
      157. PointsLabel.setLocation(new vector2(750,15));
      158. PointsLabel.setSize(new com.vector.size(150, 50));
      159. PointsLabel.setName("HUDPointsLabel");
      160. PointsLabel.setEnabled(true);
      161. HUDManager.AddControl(PointsLabel);
      162. this.addUIManager(HUDManager);
      163. // Setup the Default Game Settings & Listeners
      164. this.SetBackgroundImage(this.Assets.loadAsset("Background"));
      165. this.addOnUpdateListener(Event.UpdateListener);
      166. this.setColliderType(ColliderTypes.BOTTOM_COLLIDER);
      167. this.addOnCollisionListener(Event.CollisionListener);
      168. this.setAutoGravity(true);
      169. }
      170. public Scene buildScene()
      171. {
      172. com.types.Scene default_scene = null;
      173. default_scene = new com.types.Scene();
      174. default_scene.setName("DefaultScene");
      175. default_scene.setEnabled(true);
      176. Vector<Rectangle> pickup_matrix = com.util.DefaultMatrix.BuildMatrix(10, 15, 10, 200, 32, 32, 300, 400);
      177. Vector<Rectangle> plattform_matrix = com.util.DefaultMatrix.BuildMatrix(20, 30, 200, 400, 200, 48, 50, 70);
      178. for( Rectangle plattform_rect : plattform_matrix)
      179. {
      180. com.types.gameobject plattform_object = new com.types.gameobject("Plattform", new com.vector.vector2(plattform_rect.x, plattform_rect.y), new com.vector.size(plattform_rect.width, plattform_rect.height), this.Assets.loadAsset("Plattform2"));
      181. plattform_object.setRenderMode(RenderModes.ON_GAME_BUILD);
      182. plattform_object.setCollider(true);
      183. plattform_object.setTag("Plattform");
      184. default_scene.AddGameObjekt(plattform_object);
      185. }
      186. for ( Rectangle pickup_rect : pickup_matrix)
      187. {
      188. com.types.gameobject pickup_object = new com.types.gameobject("Pickup", new com.vector.vector2(pickup_rect.x, pickup_rect.y), new com.vector.size(pickup_rect.width, pickup_rect.height), this.Assets.loadAsset("Karotte"));
      189. pickup_object.setRenderMode(RenderModes.ON_GAME_PAINT);
      190. pickup_object.setEnabled(true);
      191. pickup_object.setTag("Pickup");
      192. default_scene.AddGameObjekt(pickup_object);
      193. }
      194. default_scene.setSize(new com.vector.size(plattform_matrix.get(plattform_matrix.size() -1).x + 250, 600));
      195. default_scene.setLocation(new com.vector.vector2(0, 0));
      196. return default_scene;
      197. }
      198. }



      Game

      Java-Quellcode

      1. package Game;
      2. import java.awt.BorderLayout;
      3. import javax.swing.JFrame;
      4. public class Game extends JFrame{
      5. public static void main(String[] args)
      6. {
      7. Game game = new Game();
      8. game.setDefaultCloseOperation(game.DO_NOTHING_ON_CLOSE);
      9. game.setSize(900,600);
      10. game.setTitle("Jumpee Rabbit");
      11. game.setLayout(new BorderLayout());
      12. GamePanel panel = new GamePanel(60, game);
      13. game.add(panel, BorderLayout.CENTER);
      14. game.setVisible(true);
      15. panel.requestFocus();
      16. }
      17. }



      Events

      Java-Quellcode

      1. package Game;
      2. import java.awt.event.KeyEvent;
      3. import com.physik.collider.Collider;
      4. import com.physik.collider.CollisionInformation;
      5. import com.ui.Control.ClickStates;
      6. public class Event {
      7. public static com.ui.events.OnClickListener FortsetzenListner = new com.ui.events.OnClickListener(){
      8. @Override
      9. public void OnClick(Object arg0, ClickStates arg1) {
      10. // TODO Auto-generated method stub
      11. com.ui.controls.Button btn = (com.ui.controls.Button) arg0;
      12. GamePanel game = (GamePanel) btn.getHandler();
      13. game.getUIManager("Menue").setEnabled(false);
      14. game.StartGame();
      15. }
      16. };
      17. public static com.ui.events.OnClickListener BeendenListener = new com.ui.events.OnClickListener(){
      18. @Override
      19. public void OnClick(Object arg0, ClickStates arg1) {
      20. // TODO Auto-generated method stub
      21. com.ui.controls.Button btn = (com.ui.controls.Button) arg0;
      22. GamePanel game = (GamePanel) btn.getHandler();
      23. game.StopGame();
      24. game.Parent.dispose();
      25. }
      26. };
      27. public static com.ui.events.OnClickListener NeuesSpielListener = new com.ui.events.OnClickListener(){
      28. @Override
      29. public void OnClick(Object arg0, ClickStates arg1) {
      30. // TODO Auto-generated method stub
      31. com.ui.controls.Button btn = (com.ui.controls.Button) arg0;
      32. GamePanel game = (GamePanel) btn.getHandler();
      33. game.getSceneManager().AddScene(game.buildScene());
      34. game.getSceneManager().setSceneIndex(game.getSceneManager().getSceneIndex()+1);
      35. game.setMapBuffer(game.getSceneManager().BuildScene());
      36. game.Lives = 5;
      37. game.Points = 0;
      38. game.Level = 1;
      39. game.getSelectedSprite().getLocation().setX(15);
      40. game.getSelectedSprite().getLocation().setY(15);
      41. game.getUIManager("Menue").setEnabled(false);
      42. game.getUIManager("Menue").GetUIControl("Titel").setText("Jumppe Rabbit Reloaded");
      43. game.getUIManager("Menue").GetUIControl("Fortsetzen").setEnabled(true);
      44. game.StartGame();
      45. }
      46. };
      47. public static com.game.events.OnCollisionListener CollisionListener = new com.game.events.OnCollisionListener(){
      48. @Override
      49. public void OnCollision(Object arg0, CollisionInformation arg1) {
      50. // TODO Auto-generated method stub
      51. GamePanel game = (GamePanel) arg0;
      52. game.CanJump = true;
      53. game.getSelectedSprite().getLocation().setY(arg1.getGameObject().getLocation().getY() - game.getSelectedSprite().getSize().getHeight());
      54. }
      55. };
      56. public static com.game.events.OnUpdateListener UpdateListener = new com.game.events.OnUpdateListener(){
      57. @Override
      58. public void OnUpdate(Object arg0) {
      59. // TODO Auto-generated method stub
      60. GamePanel game = (GamePanel) arg0;
      61. // Offset the Complete world
      62. game.getSceneManager().AddSceneLocationX(-5, true);
      63. // Movement
      64. if(game.getInput()==(int) KeyEvent.VK_LEFT)
      65. {
      66. game.getSelectedSprite().getLocation().setX(game.getSelectedSprite().getLocation().getX() - 15);
      67. game.getSelectedSprite().setSelectedTexture(game.getSelectedSprite().getTextures().getTextureLeft());
      68. game.WalkLeft = true;
      69. }
      70. else if(game.getInput() == (int) KeyEvent.VK_RIGHT)
      71. {
      72. game.getSelectedSprite().getLocation().setX(game.getSelectedSprite().getLocation().getX() + 5);
      73. game.getSelectedSprite().setSelectedTexture(game.getSelectedSprite().getTextures().getTextureRight());
      74. game.WalkLeft = false;
      75. }
      76. else if(game.getInput() == (int) KeyEvent.VK_SPACE && game.CanJump == true)
      77. {
      78. game.getSelectedSprite().getLocation().setY(game.getSelectedSprite().getLocation().getY() - 220);
      79. if(game.WalkLeft)
      80. {
      81. game.getSelectedSprite().getLocation().setX(game.getSelectedSprite().getLocation().getX() - 65);
      82. }
      83. else
      84. {
      85. game.getSelectedSprite().getLocation().setX(game.getSelectedSprite().getLocation().getX() + 50);
      86. }
      87. game.CanJump = false;
      88. }
      89. else if(game.getInput() == (int) KeyEvent.VK_ESCAPE)
      90. {
      91. game.StopGame();
      92. game.getUIManager("Menue").setEnabled(true);
      93. }
      94. // Pickup Collider
      95. com.physik.collider.Collider Collider = new com.physik.collider.Collider();
      96. com.physik.collider.CollisionInformation Collinfo = Collider.GetViewCollisions(game.getSceneManager().GetGameObjects("Pickup"), game.getSelectedSprite(), game.getWidth(), game.getHeight());
      97. if(Collinfo.getCollision())
      98. {
      99. game.getSceneManager().GetScene().RemoveGameObject(Collinfo.getGameObject());
      100. game.Points += 20;
      101. }
      102. // Ceck Lives
      103. if(game.getSelectedSprite().getLocation().getY() > game.getHeight())
      104. {
      105. game.Lives--;
      106. game.getSelectedSprite().getLocation().setX(15);
      107. game.getSelectedSprite().getLocation().setY(15);
      108. if(game.Lives == 0)
      109. {
      110. game.StopGame();
      111. game.getUIManager("Menue").setEnabled(true);
      112. game.getUIManager("Menue").GetUIControl("Titel").setText("Spiel Leider Beendet");
      113. game.getUIManager("Menue").GetUIControl("Fortsetzen").setEnabled(false);
      114. }
      115. }
      116. // Ceck Level End
      117. int oWidth = game.getSceneManager().GetScene().getLocation().getX();
      118. int oEndWith = - game.getSceneManager().GetScene().getSize().getWidth() + game.getWidth();
      119. if(oWidth < oEndWith)
      120. {
      121. game.StopGame();
      122. game.getUIManager("Menue").setEnabled(true);
      123. game.getUIManager("Menue").GetUIControl("Titel").setText("Level " + game.Level + " erfolgreich Beendet");
      124. game.Level++;
      125. game.getSceneManager().AddScene(game.buildScene());
      126. game.getSceneManager().setSceneIndex(game.getSceneManager().getSceneIndex() + 1);
      127. game.setMapBuffer(game.getSceneManager().BuildScene());
      128. game.getSelectedSprite().getLocation().setX(15);
      129. game.getSelectedSprite().getLocation().setY(15);
      130. }
      131. // Update HUD UIManager
      132. game.getUIManager("HUDManager").GetControl("HUDLivesLabel").setText("Leben: +" + game.Lives);
      133. game.getUIManager("HUDManager").GetControl("HUDPointsLabel").setText("Punkte: " + game.Points);
      134. }
      135. };
      136. }

      Meine Projekte Genesis Game Engine | GFX | smartli.me - Der smarte URL shortener

      Hallo leute, da es mit dem Letztem Update viele beschwerden kammen, habe ich nun ein etwas größeres Update für euch. Dabei ist
      • Hover Effekte der GUI
      • Springen verbessert
      • Sperre für das Verlassen des Bildschirmes.
      • Menü mit Esc Öffnen und Schließen
      • Nicht mehr in der Größe veränderbar

      Leider noch nicht dabei
      • Sound
      • Animation

      Ich würde euch nun bitten, das der Thread nicht wie nach dem Letztem Update verläuft. Wenn euch was aufällt, dann bitte in dem Selben ton, den auch Ihr in euren Projekten Erwartet.
      Meine Projekte Genesis Game Engine | GFX | smartli.me - Der smarte URL shortener

      Das Springen sieht immer noch komisch aus und die Bewegung des Hasen auch. Man bekommt nur das Gefühl die Plattformen bewegen sich.
      Beim Klick auf "Einstellungen" passiert nix.
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
      Zurzeit kann ich die Datei nicht als Zip Hochladen, da ich das Spiel mit Linux Entwickle und auch noch im Linux bin. Wenn du mir sagen würdest, was genau komisch ausseht, könnte ich es beheben. Die Einstellungen werde ich nicht erstellen, bis ich den Sound und die Animation habe. Denn erst für das macht es richtig sin.
      Meine Projekte Genesis Game Engine | GFX | smartli.me - Der smarte URL shortener

      @thefiloe : auch wenn es scheint, du widersprechest mir energisch, so sind wir doch vollkommen einer Meinung - du sagst es nur in anderen Worten:

      thefiloe schrieb:

      ... dass hier einfach wahnsinnig viel Müll gepostet wird...
      ... manche Nutzer durchaus sehr ordentliche um nicht zu sagen "professionelle" Software posten...
      Wer ich bin, was ich weiß, gelernt oder gepostet habe, oder auch beruflich mache, tut dabei doch absolut nichts zur Sache - mein "Urteil" erhebt auch keinerlei Allgemein-Anspruch, ich sag ausdrücklich "ich finde...".
      Ich drücke es im Grunde sogar höflicher aus, und ich hab halt den Anteil ernstzunehmender SW auf 1% geschätzt - was immer man unter "ernstzunehmen" verstehen mag - das ist halt das Problem: ich könnte es selbst nicht vernünftig definieren.

      Und das wird auch das Problem einer strengeren SCA-Jury sein: gescheite Kriterien zu erarbeiten.
      Ein anderes Problem wird werden: Was machen wir mit den alten SCA-Items - müssen die alle neu bewertet werden, und evtl. > 90% davon rausgeschmissen?
      Ja, muss wohl, denn sonst kann ein Abgelehnter reklamieren, dass da ja noch viel schwächeres herumfährt, als sein (abgelehntes) Werk.
      Auch wird man evtl. extra Jury-Mitarbeiter gewinnen müssen - wer soll die eigentlich auswählen (mich zB. werdet ihr nicht wollen :evil: )?

      Aber bitte diese (nun hoffentlich fruchtbarer werdende) Diskussion im vb-paradise.de/index.php/Board/3-Boarddiskussionen/ führen.

      Edit: ach guck: Ähnliches wird dort ja bereits diskutiert - sogar schon seit 2 Tagen: im Greenlight-Thread - (ich fürchtefast, ich bin der letzte , ders mitkriegt ;) )

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

      aber das sagt mir ein unausgebildeter Programmierer ohne jegliche Berufserfahrung von dem ich dazu noch überhaupt nie etwas im Showroom gesehen habe?


      Wer gibt dir eigendlich das Recht solch aussagen in den Raum zu stellen ? Finde ich ein Wenig unhöflich von dir. Keine hat das Recht andere anhand von Postings zu bewerten. Evtl. liegt es daran das @ErfinderDesRades mehr im Sourcecode Austausch tätig ist ??? Genau das ist er nämlich. Er hilft bei fast jeder frage mit Kompetenten Antworten und du ?
      Meine Projekte Genesis Game Engine | GFX | smartli.me - Der smarte URL shortener

      Könntest du das bitte begründen ? was genau für den A***** ist ? Bei mir startet es mehrmals und welchen Speicher frisst es. Wenn du mir das sagst, dann kann ich auch schauen.

      Grüße Andy
      Meine Projekte Genesis Game Engine | GFX | smartli.me - Der smarte URL shortener