Spieleentwicklung 5 - Spielerbegrenzung

preview_player
Показать описание


Рекомендации по теме
Комментарии
Автор

Je nachdem wie schnell sich der Spieler bewegt und wie weit die Wände von der Anfangsposition weg sind könnte das dazu führen, dass du ein wenig aus dem Rand rausgehst. Einfaches Beispiel:
Position in Y ist 2. Du gehst 5 nach oben, neue Position ist -3. Ab hier kannst du dich nichtmehr nach oben bewegen, in der Wand steckst du aber schon.

MfG

Brotcrunsher
Автор

Falls du meinen Kommentar von der vorherigen folge schon gelesen hast:
Hier geht es jetzt zum Quellcode von Spieleentwicklung 4 anstatt 5 :D

the-karabin
Автор

Mit Frame.setUndecorated(true); kann man den Rand entfernen.
Dann tritt das Problem ebenfalls nicht mehr auf und es ist sowieso schöner :)

Allerdings sollte dann eine Möglichkeit zum Schließen des Programmes geschaffen werden, da der Close-Button oben Rechts fehlt.

Janhektor
Автор

Du hast mir in deinem anderen Post nicht klar schildern können, dass es sich um dieses Problem handelt.

Brotcrunsher
Автор

ja das stimmt...wegen timeSinceLastFrame.
weil es ja auf die f_pos drauf multipliziert wird, schießt die figur aus dem feld raus.
greetz

KasaxKasax
Автор

Ich probiere nach den Tutorials immer ein bisschen herum, und hab die Weltbegrenzung schon hinbekommen, halt mit ner Menge Magic Numbers, aber immerhin. Dann hab ich nen zweiten player, den man mit den Pfeiltasten, statt WASD sreuert erstellt, dann aber die positionsvariablen des zweiten spielers in die Player Klasse zu übertragen und zu vergleichen war dann wohl ne nummer zu viel, ich musste mir den Quellcode nochmal neu herunterladen, weil ich da doch einiges Verkorkst hatte XD

allgemeinheitlp
Автор

Das Problem mit dem Fensterrand könnte man theoretisch doch mit einem JPanel lösen, oder?

ruvoker
Автор

Wäre es nicht eigentlich schöner und sauberer die Position des Spielers in die Mitte des Quadrates zu setzen?

terminator
Автор

man kann einfach vom Label getSize() die Höhe abfragen. Aber erst wenn es gezeichnet wurde. Ich würde sowiso die Weltgröße als nur als Link (Methode) übergeben, es könnte sich später ja änderen.

rubberpenner
Автор

Achtung, das ist aber die schmutzige Lösung! Was ist, wenn das ganze auf nem anderen Betriebssystem gestartet wird, wenn die Ränder andere breiten haben? ;)

Brotcrunsher
Автор

wäre es nicht besser wenn man einfach bei der update funktion einfach bei der if bedingung wenn der bis zur 0 ten position kommt, dann soll er nicht "dazu addieren"?
also so:
if(up && f_posy != 5)
f_posy -=5;
if(left && f_posx != 5)
f_posx -=5;

KasaxKasax
Автор

wie viel schöner der Code mit Wrapperklassen wäre...

mr.unkreativ
Автор

Könnte man nicht mit getContentPane() und irgend'ner anderen Methode die Größe ohne Kopfleiste des Fensters ermitteln ?

AntiLetsPlay
Автор

Hehehe bei 2m 44s = "Die anderen 4 Seiten" ;)

Zegoh
Автор

wie sieht denn damit aus? :D
if (down && !(f_posY >= moveTest.wolrdSize - getBounding().height)) f_posY += 5;

derLeon
Автор

Auch fake: Hühner gehen nicht zur Schule!

Luca__
Автор

FAKE! Hühner können nicht programmieren Mr.Chicken!

Luca__