Devilmarkus Geschrieben 22. Mai 2008 Geschrieben 22. Mai 2008 Hallo zusammen, vor einiger Zeit habt Ihr mir sehr geholfen, bei einem Problem mit JAVA. Deshalb möchte ich mal an dieser Stelle Danke sagen und Euch einladen, auf meiner Webseite mein Java Projekt zu testen. JavaCPC - CPC Games to play online with your browser ist nun seit ein paar Tagen online und bietet Euch jede Menge 'echte' Spiele in einem Java-Emulator für den Schneider/Amstrad CPC an. Der Clou: Die Spiele sind keine "Roms" oder "Schnappschüsse", sondern sind 1:1 Abbilder der Disketten. Dank Eurem Forum habe ich es geschafft, diese automatisch laden zu lassen... (Siehe dazu diesen Beitrag: http://forum.fachinformatiker.de/java/114611-string-einzelne-keyevents-umwandeln-geht.html ) Nochmal Danke an Euch und viel Spass beim Spielen Markus Zitieren
Cold-Fusion Geschrieben 22. Mai 2008 Geschrieben 22. Mai 2008 gelungenes projekt, wenns auch am design ein wenig mangelt ;-) aber so werden erinnerungen an die gute alte zeit wach ;-) Zitieren
Devilmarkus Geschrieben 23. Mai 2008 Autor Geschrieben 23. Mai 2008 gelungenes projekt, wenns auch am design ein wenig mangelt ;-) Gut, dass Geschmäcker verschieden sind *grins* An der Startseite werde ich aber nochmal arbeiten... Damit bin ich selbst noch nicht ganz zufrieden. Der Rest wird aber so bleiben. Mir war es wichtiger, die Seite übersichtlich und einfach zu halten, als viel "brimborium" drumherum zu machen... Bin aber gerne für Kritik und Anregungen offen. (Schaut dazu am besten mal in mein Forum, dort gibt es einen Punkt, wo man soetwas posten kann. Dieses dann aber bitte auf Englisch, da die Seite überwiegend von Engländern, Griechen, Spaniern und Franzosen benutzt wird.) Gruss, Markus Zitieren
Cold-Fusion Geschrieben 23. Mai 2008 Geschrieben 23. Mai 2008 is trotzdem ne geile seite. schon allein wegen ik+. aber wie funktioniert das denn mit der steuerung? Zitieren
Devilmarkus Geschrieben 23. Mai 2008 Autor Geschrieben 23. Mai 2008 (bearbeitet) is trotzdem ne geile seite. schon allein wegen ik+. aber wie funktioniert das denn mit der steuerung? Normal gilt folgende Tastaturbelegung: - Normale Buchstaben und Ziffern zum schreiben - Zehnerblock rechts bei Num-Lock ein: Joystickabfrage: 4,8,6,2 - Richtungen, 5 - Feuer Man kann allerdings auf eine alternative Joystickabfrage umschalten: - Wenn der Haken gesetzt wird bei "Q,A,O,P, SPACE, CTRL Joystick" liegen die Joysticktasten dort. Q,A - Rauf/Runter O,P - Links/Rechts SPACE,CTRL(STRG) - Feuer 1, Feuer 2 Einige Spiele bieten auch an, die Tasten zu konfigurieren. Einen echten Joystick bzw ein Gamepad kann man leider nicht benutzen (Ausser, man zeigt mir, wie man Joystick-Signale in KeyEvents umwandeln kann, was cool wäre, weil man so auch die Maus auf Joysticksignale umschalten könnte) MfG Markus [Edit]: Einige Spiele verlangen, dass man 1 oder 2 drücken muss, um etwas zu erreichen. Dies kann manchmal auf F1 oder F2 liegen... (F1-F9 = F-Tasten 1-9, F12 = F0) Bearbeitet 23. Mai 2008 von Devilmarkus Zitieren
Devilmarkus Geschrieben 26. Mai 2008 Autor Geschrieben 26. Mai 2008 Jetzt mal ernsthaft: kann man Joysticksignale bzw Maussignale so umwandeln, dass sie einen KeyEvent aufrufen? Z.B.: Man bewegt die Maus nach rechts, und im Emulator wird die Taste 'Joystick Rechts' gedrückt... Etc.... Zitieren
Kuroi Geschrieben 29. Mai 2008 Geschrieben 29. Mai 2008 In Bezug auf Maussteuerung: Für allgemeine Aktionen wie Klick, Release, etc. gibt's das Interface MouseListener, für erweiterte Aktionen wie Mausbewegungen gibt's das Interface MouseMotionListener. Zitieren
Devilmarkus Geschrieben 4. Juni 2008 Autor Geschrieben 4. Juni 2008 Hallo zusammen, Ich habe nun sämtliche Suchmaschinen betätigt, aber leider nicht gefunden, was mir weiterhelfen könnte.... Folgendes Problem: Ich benötige eine Routine, welche mir anzeigt, in welche Richtung die Maus bewegt wird.... Beispiel: Man bewegt die Maus hoch -> Ausgabe: "Rauf" runter -> "Runter".... etc.... Ich weiss zwar, wie ich die X-Y Koordinaten auslesen kann, aber das hilft mir nicht wirklich weiter... Ich möchte, dass man die Maus wie einen Joystick später benutzen kann. Wie ich auf einzelne Richtungen (was mir halt fehlt) die entsprechenden Tasten zuweisen kann, weiss ich. Eine sehr simple Bewegung habe ich auch schon hinbekommen, diese scheitert aber schon daran, wenn z.B. die Maus diagonal bewegt wird. Vielleicht weiss ja jemand Rat? public void mouseMoved(MouseEvent me) { int xoldpos = xpos; int yoldpos = ypos; xpos = me.getX(); ypos = me.getY(); if (xoldpos <= xpos - 3){ Switches.direct = "Right"; xoldpos = xpos; yoldpos = ypos;} else if (xoldpos >= xpos + 3){ Switches.direct = "Left"; xoldpos = xpos; yoldpos = ypos;} // else ??? if (yoldpos >= ypos + 3){ Switches.direct = "Up"; xoldpos = xpos; yoldpos = ypos;} else if (yoldpos <= ypos - 3){ Switches.direct = "Down"; xoldpos = xpos; yoldpos = ypos;} Display.xpos = xpos; Display.ypos = ypos; } Das ist mein Versuch, aber irgendwie klappt das nicht so, wie ich es bräuchte... Zitieren
kingofbrain Geschrieben 5. Juni 2008 Geschrieben 5. Juni 2008 Servus, "klappt nicht" ist keine Fehlerbeschreibung. Weshalb weist Du xoldpos und yoldpos jeweils in den if-Abfragen noch mal Werte zu? Im einfachsten Fall (und der interessiert hier) willst Du die aktuellen Werte von x und y mit den alten Werten vergleichen. Dazu merkst Du Dir die alten Werte, vergleichst sie mit den neuen und leitest daraus die Richtung ab. Das sieht soweit ganz gut aus. Schmeiß mal den ganzen überflüssigen Code raus und probier mit einer Textausgabe, ob es passt. Wenn nicht, dann sag, was nicht passt. Peter Zitieren
geloescht_Newlukai Geschrieben 5. Juni 2008 Geschrieben 5. Juni 2008 Du überschreibst "yoldpos" wenn die Maus nach links oder rechts bewegt wurde. Dann kannst Du natürlich nicht mehr herausfinden, ob gleichzeitig auch eine Bewegung nach oben oder unten stattgefunden hat. Zitieren
Devilmarkus Geschrieben 5. Juni 2008 Autor Geschrieben 5. Juni 2008 Hallo, ich habe es heute hinbekommen.... Der Code mag zwar seltsam erscheinen, aber so funzt es: public void mouseMoved(MouseEvent me) { xoldpos = xpos; yoldpos = ypos; Display.xpos = xpos; Display.ypos = ypos; xpos = me.getX(); ypos = me.getY(); if (mousejoy){ if (xoldpos <= xpos - 1){ Switches.directR = 0; Switches.directxR = "Right"; Switches.directxL = "Stop"; } else if (xoldpos >= xpos + 1){ Switches.directL = 0; Switches.directxR = "Stop"; Switches.directxL = "Left"; } xoldpos = xpos; if (yoldpos >= ypos + 1){ Switches.directU = 0; Switches.directyU = "Up"; Switches.directyD = "Stop"; } else if (yoldpos <= ypos - 1){ Switches.directD = 0; Switches.directyU = "Stop"; Switches.directyD = "Down"; } yoldpos = ypos; } } In dem System passiert dann folgendes: public void joyReader(){ if (Switches.MouseJoy){ if (Switches.directxR.equals("Right")) keyboarda.keyPressed(KeyEvent.VK_NUMPAD6); if (Switches.directxL.equals("Left")) keyboarda.keyPressed(KeyEvent.VK_NUMPAD4); if (Switches.directyU.equals("Up")) keyboarda.keyPressed(KeyEvent.VK_NUMPAD8); if (Switches.directyD.equals("Down")) keyboarda.keyPressed(KeyEvent.VK_NUMPAD2); Switches.directL++; if (Switches.directL >= 4){ keyboarda.keyReleased(KeyEvent.VK_NUMPAD4); } Switches.directR++; if (Switches.directR >= 4){ keyboarda.keyReleased(KeyEvent.VK_NUMPAD6); } Switches.directU++; if (Switches.directU >= 4){ keyboarda.keyReleased(KeyEvent.VK_NUMPAD8); } Switches.directD++; if (Switches.directD >= 4){ keyboarda.keyReleased(KeyEvent.VK_NUMPAD2); } } } Wie gesagt: Der Code mag etwas umständlich sein, aber so funktioniert es. Testen kann man das Ganze hier: JavaCPC - CPC Games to play online with your browser Wenn der Emulator geöffnet wurde, erscheint oben Rechts ein Menü. Dort "Settings -> Joystick -> Mousejoystick" aktivieren. Man kann nun in der Oberfläche (SymbOS) den Mauspfeil mit der Maus auch bewegen... Maustasten sind auch zugewiesen. Gruss, Markus P.S.: Wenn jemand eine elegantere Lösung wüsste, dann wäre es nett, dieses hier zu posten. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.