Diagonale Raumbegrenzungen, geht das?
-
- Hobby-Archäologe
- Beiträge: 122
- Registriert: 15.02.2005, 14:59
Diagonale Raumbegrenzungen, geht das?
Ich wollte in meinem Spiel (nix besonderes, nur zum üben) die Räume schräg anordnen, also das man sie etwas von oben sieht und die Wände Vertikal verlaufen (der Raum ist dann kein Quadrat sondern eher eine Raute) die ansicht ähnelt dann der, aus Diablo I + II.
In AGS kann ich aber, so weit ich weiss, die Grenzen für die Räume nur senkrecht oder horizontal verlaufen lassen. Oder sind auch vertikale möglich?
Mein erster Gedanke war es, Hotspots "hinter" die Türen zu legen, mit denen man dann den Raum verlässt, sobald man sie betritt.
Wäre das eine sinnvolle Lösung, oder gibt es dafür bessere Wege?
MFG
podthepunk
EDIT:
Diagonal, ich meine natürlich DIAGONAL, sorry!
In AGS kann ich aber, so weit ich weiss, die Grenzen für die Räume nur senkrecht oder horizontal verlaufen lassen. Oder sind auch vertikale möglich?
Mein erster Gedanke war es, Hotspots "hinter" die Türen zu legen, mit denen man dann den Raum verlässt, sobald man sie betritt.
Wäre das eine sinnvolle Lösung, oder gibt es dafür bessere Wege?
MFG
podthepunk
EDIT:
Diagonal, ich meine natürlich DIAGONAL, sorry!
Zuletzt geändert von podthepunk am 23.03.2005, 18:19, insgesamt 1-mal geändert.
- Fightmeyer
- Riesiger Roboteraffe
- Beiträge: 7308
- Registriert: 16.12.2004, 22:51
- Wohnort: Potsdam
- Kontaktdaten:
-
- Hobby-Archäologe
- Beiträge: 122
- Registriert: 15.02.2005, 14:59
ui ging schnell,
Das hab ich gerade auch bemerkt. Also dürfte das kein Problem mehr sein. Danke trotzdem
Ich habe aber gerade festgestellt, dass mein Problem erst richtig mit den Walkbehind areas und deren Baselines anfängt:
Also wenn ich einen Tisch im Raum stehen habe, und der Charakter dahinter steht, ist noch alles in ordnung.
Aber sobald der Char davor steht, bzw. schräg davor und über der Baseline, wird der kopf verdeckt.
Das hab ich gerade auch bemerkt. Also dürfte das kein Problem mehr sein. Danke trotzdem
Ich habe aber gerade festgestellt, dass mein Problem erst richtig mit den Walkbehind areas und deren Baselines anfängt:
Also wenn ich einen Tisch im Raum stehen habe, und der Charakter dahinter steht, ist noch alles in ordnung.
Aber sobald der Char davor steht, bzw. schräg davor und über der Baseline, wird der kopf verdeckt.
- Fightmeyer
- Riesiger Roboteraffe
- Beiträge: 7308
- Registriert: 16.12.2004, 22:51
- Wohnort: Potsdam
- Kontaktdaten:
Das hatte ich bei meinem Spiel auch an einigen Stellen. Da muß man dann die Walkable Areas ziemlich gründlich definieren, damit solche Effekte nicht entstehen. Gerade beim diagonalen Laufen kann das sonst passieren, was natürlich ziemlich scheiße aussieht.
Da hilft dann eigentlich nur, einen mehr oder weniger rechteckigen Bereich bei den Walkable Areas auszusparen...
Da hilft dann eigentlich nur, einen mehr oder weniger rechteckigen Bereich bei den Walkable Areas auszusparen...
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Der Charakter darf nie vor dem Objekt und über der Baseline stehen, setz einfach die Baseline nach oben.
Wenn der Tisch mitten im Raum steht, ist es einfacher, ihn als Objekt einzufügen.
Wenn die walkable area dann eine rautenförmige Aussparung hat und die Baseline des Objekts horizontal durch die Mitte läuft, sollte es funktionieren.
Ich wollte auch mal ein Adventure mit isometrischer Ansicht machen, werd gleich mal testen, ob's wirklich so geht, wie ich mir das vorstelle.
btw: vertikal und senkrecht ist dasselbe
edit: hier ein beispiel
Wenn der Tisch mitten im Raum steht, ist es einfacher, ihn als Objekt einzufügen.
Wenn die walkable area dann eine rautenförmige Aussparung hat und die Baseline des Objekts horizontal durch die Mitte läuft, sollte es funktionieren.
Ich wollte auch mal ein Adventure mit isometrischer Ansicht machen, werd gleich mal testen, ob's wirklich so geht, wie ich mir das vorstelle.
btw: vertikal und senkrecht ist dasselbe
edit: hier ein beispiel
Use gopher repellent on funny little man
-
- Hobby-Archäologe
- Beiträge: 122
- Registriert: 15.02.2005, 14:59
-
- Hobby-Archäologe
- Beiträge: 122
- Registriert: 15.02.2005, 14:59
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Du könntest beispielsweise den langen Tisch in (quadratische) Unterobjekte aufteilen. Eine Gitter-Optik passt sowieso sehr gut zum iso-style. Cadaver hat's genauso gemacht:
Eine andere Möglichkeit:
In der repeatedly_execute des rooms könntest du die Baseline dynamisch je nach Charakterposition versetzen.
Eine andere Möglichkeit:
In der repeatedly_execute des rooms könntest du die Baseline dynamisch je nach Charakterposition versetzen.
Use gopher repellent on funny little man
-
- Hobby-Archäologe
- Beiträge: 122
- Registriert: 15.02.2005, 14:59
bei nicht "ganz" so langen Objekten könnte ich eine kleine Ecke der Walkable area aussparen.
Die etwas längeren dann in ein bis zwei aufteilen.
und bei GANZ grossen (trennwände im Raum o.ä.) kann ich dann die repeatedly_execute verwenden.
und ich hab gedacht das wäre ein gröseres Problem
Danke an alle
podthepunk
Die etwas längeren dann in ein bis zwei aufteilen.
und bei GANZ grossen (trennwände im Raum o.ä.) kann ich dann die repeatedly_execute verwenden.
und ich hab gedacht das wäre ein gröseres Problem
Danke an alle
podthepunk
-
- Hobby-Archäologe
- Beiträge: 122
- Registriert: 15.02.2005, 14:59
OK,
Also das mit den kleineren und mittleren Walkbehind-Areas, hab ich jetzt raus. Aber bei meiner Trennwand im Raum brauch ich einfach zuviele Areas wenn ich das auf die "Non-Scripting" Art machen will. Das heisst jetzt, ich muss scripten!
Also wenn ich eine Wand habe die schräg durch den Raum geht, von unten kinks nach oben rechts,und diese als Walkbehind festlegen will, muss ich die Baseline ständig "neu setzen" lassen.
Ich habe herausgefunden, dank eurer hilfe, dass ich das mit einem script Eintrag unter repeatedly execute, im Raum Editor bewerkstelligen kann.
Da ich aber ein totaler "Scripting Noob" bin, brauche ich genau jetzt eure Hilfe:
Was Schreibe ich nun dort hinein?
SetWalkBehindBase (3,0);
als Beispiel aber was muss ich reinschreiben damit die Position des Characters Abgefragt wird wenn er an einer bestimmten Position ist und dass dann die Baseline gesetzt wird?
Ich hab schon die neue AGS 2.7 prefinal, also wär es gut wenn ihr eure Antworten darauf beziehen könntet. Aber ich kann mir auch die Befehle dann raussuchen (sobald ich weiss welche)
EDIT:
OK ich habs,
also mein script sieht jetzt so aus:
// script for room: Repeatedly execute
if (player.x >= 158 && player.x < 168) {
SetWalkBehindBase (12,209);
}
else if (player.x >= 168 && player.x < 178) {
SetWalkBehindBase (12,204);
}
else if (player.x >= 178 && player.x < 188) {
SetWalkBehindBase (12,199);
}
else if (player.x >= 188 && player.x < 198) {
SetWalkBehindBase (12,194);
}
else if (player.x >= 198 && player.x < 208) {
SetWalkBehindBase (12,189);
}
else if (player.x >= 208 && player.x < 218) {
SetWalkBehindBase (12,184);
}
else if (player.x >= 218 && player.x < 228) {
SetWalkBehindBase (12,179);
}
else if (player.x >= 228 && player.x < 238) {
SetWalkBehindBase (12,174);
}
else if (player.x >= 238 && player.x < 258) {
SetWalkBehindBase (12,169);
}
else {
SetWalkBehindBase (12,0);
}
Damit wird die Baseline meiner Wand immer aktualisiert!
Also das mit den kleineren und mittleren Walkbehind-Areas, hab ich jetzt raus. Aber bei meiner Trennwand im Raum brauch ich einfach zuviele Areas wenn ich das auf die "Non-Scripting" Art machen will. Das heisst jetzt, ich muss scripten!
Also wenn ich eine Wand habe die schräg durch den Raum geht, von unten kinks nach oben rechts,und diese als Walkbehind festlegen will, muss ich die Baseline ständig "neu setzen" lassen.
Ich habe herausgefunden, dank eurer hilfe, dass ich das mit einem script Eintrag unter repeatedly execute, im Raum Editor bewerkstelligen kann.
Da ich aber ein totaler "Scripting Noob" bin, brauche ich genau jetzt eure Hilfe:
Was Schreibe ich nun dort hinein?
SetWalkBehindBase (3,0);
als Beispiel aber was muss ich reinschreiben damit die Position des Characters Abgefragt wird wenn er an einer bestimmten Position ist und dass dann die Baseline gesetzt wird?
Ich hab schon die neue AGS 2.7 prefinal, also wär es gut wenn ihr eure Antworten darauf beziehen könntet. Aber ich kann mir auch die Befehle dann raussuchen (sobald ich weiss welche)
EDIT:
OK ich habs,
also mein script sieht jetzt so aus:
// script for room: Repeatedly execute
if (player.x >= 158 && player.x < 168) {
SetWalkBehindBase (12,209);
}
else if (player.x >= 168 && player.x < 178) {
SetWalkBehindBase (12,204);
}
else if (player.x >= 178 && player.x < 188) {
SetWalkBehindBase (12,199);
}
else if (player.x >= 188 && player.x < 198) {
SetWalkBehindBase (12,194);
}
else if (player.x >= 198 && player.x < 208) {
SetWalkBehindBase (12,189);
}
else if (player.x >= 208 && player.x < 218) {
SetWalkBehindBase (12,184);
}
else if (player.x >= 218 && player.x < 228) {
SetWalkBehindBase (12,179);
}
else if (player.x >= 228 && player.x < 238) {
SetWalkBehindBase (12,174);
}
else if (player.x >= 238 && player.x < 258) {
SetWalkBehindBase (12,169);
}
else {
SetWalkBehindBase (12,0);
}
Damit wird die Baseline meiner Wand immer aktualisiert!