Hallo,
Ich mache gerade eine bessere kamerabewegung in nem 2D Spiel.
Dort habe ich xOffset (Die aktuelle Kamera X Position)
und yoffset (die aktuelle kamera y position)
xOffset1 (Die Ideale x Position)
und yOffset1 (Die Ideale y position)
Nun soll nach jedem schritt immer 10%des weges zurückgelegt werden
Also bei 100 pxl sollen 10 pxl gefahren werden
bei 10pxl 1 pxl
bei 200 pxl 20pxl
Nun habe ich das folgendermaßen geschrieben:
[Java]
xOffset = ((double) xOffset + (double) (((double) xOffset1 - (double) xOffset) / 10));
yOffset = ((double) yOffset + (double) (((double) yOffset1 - (double) yOffset) / 10));
[/Java]
Dies gibt mir allerdings anscheinend eine konstante Scrollgeschwindigkeit und nicht immer 10% pro Durchgang.
Kann mir jemand helfen?
Danke für eure Hilfe ^^
Gesamter Code fürs Scrollen:
[Java]
double xOffset1 = xOffset;
double yOffset1 = yOffset;
if (aktLevel.length > maxY) {
// 30x30
if (playerX - xOffset1 > maxX / 2) {
xOffset1++;
}
if (playerY - yOffset1 > maxY / 2) {
yOffset1++;
}
if (playerX - xOffset1 < maxX / 2) {
xOffset1--;
}
if (playerY - yOffset1 < maxY / 2) {
yOffset1--;
}
// OOB-Sicherung
if (xOffset1 <= 0) {
xOffset1 = 0;
}
if (yOffset1 <= 0) {
yOffset1 = 0;
}
if (xOffset1 > aktLevel.length - 30) {
xOffset1 = aktLevel.length - 30;
}
if (yOffset1 > aktLevel.length - 30) {
yOffset1 = aktLevel.length - 30;
}
// OOB-Sicherung Ende
}
xOffset = ((double) xOffset + (double) (((double) xOffset1 - (double) xOffset) / 10));
yOffset = ((double) yOffset + (double) (((double) yOffset1 - (double) yOffset) / 10));
[/code]
Ich mache gerade eine bessere kamerabewegung in nem 2D Spiel.
Dort habe ich xOffset (Die aktuelle Kamera X Position)
und yoffset (die aktuelle kamera y position)
xOffset1 (Die Ideale x Position)
und yOffset1 (Die Ideale y position)
Nun soll nach jedem schritt immer 10%des weges zurückgelegt werden
Also bei 100 pxl sollen 10 pxl gefahren werden
bei 10pxl 1 pxl
bei 200 pxl 20pxl
Nun habe ich das folgendermaßen geschrieben:
[Java]
xOffset = ((double) xOffset + (double) (((double) xOffset1 - (double) xOffset) / 10));
yOffset = ((double) yOffset + (double) (((double) yOffset1 - (double) yOffset) / 10));
[/Java]
Dies gibt mir allerdings anscheinend eine konstante Scrollgeschwindigkeit und nicht immer 10% pro Durchgang.
Kann mir jemand helfen?
Danke für eure Hilfe ^^
Gesamter Code fürs Scrollen:
[Java]
double xOffset1 = xOffset;
double yOffset1 = yOffset;
if (aktLevel.length > maxY) {
// 30x30
if (playerX - xOffset1 > maxX / 2) {
xOffset1++;
}
if (playerY - yOffset1 > maxY / 2) {
yOffset1++;
}
if (playerX - xOffset1 < maxX / 2) {
xOffset1--;
}
if (playerY - yOffset1 < maxY / 2) {
yOffset1--;
}
// OOB-Sicherung
if (xOffset1 <= 0) {
xOffset1 = 0;
}
if (yOffset1 <= 0) {
yOffset1 = 0;
}
if (xOffset1 > aktLevel.length - 30) {
xOffset1 = aktLevel.length - 30;
}
if (yOffset1 > aktLevel.length - 30) {
yOffset1 = aktLevel.length - 30;
}
// OOB-Sicherung Ende
}
xOffset = ((double) xOffset + (double) (((double) xOffset1 - (double) xOffset) / 10));
yOffset = ((double) yOffset + (double) (((double) yOffset1 - (double) yOffset) / 10));
[/code]