Spielercharakter verschwindet beim Spielstart

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Benutzeravatar
Außenseiter
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 58
Registriert: 14.10.2007, 20:04

Spielercharakter verschwindet beim Spielstart

Beitrag von Außenseiter »

Problem: Spielerfigur taucht nach Klick auf "Neues Spiel" nicht an den angegebenen Koordinaten (player.ChangeRoom(Raum, X, Y);) auf.
Status: Problem überbrückt/improvisiert. Details siehe letzte Änderung des Beitrags unter "Edit" ganz am Ende dieses Textes.

Detailbeschreibung:
Ich hab endlich wieder Zeit um etwas an AGS herumzubasteln und hab mir auch flux die neueste Version 3.1 geladen. Davor hatte ich Version 3.0. verwendet glaube ich.

Ich hab also die alten Daten reingeladen und jetzt die Auflösung von VGA (320x240) auf SVGA (640x480) hochgeschraubt weils die Schrift besser darstellt und auf dem neuen PC besser läuft.

Soweit so gut, hab rumgebastelt und neue Sachen reingestellt, ging alles wunderbar. Auch die Spieltests die ich gemacht habe.

Dann wollte ich aber den Startraum des Spielers verändern um was auszutesten (kombiniere Gegenstand A mit B). Dummerweise tauchte der Spieler jetzt aber nicht an den angegebenen Koordinaten auf.
Ich dachte zuerst das läge daran, dass die Koordinaten durch das Strecken der Grafik bei der Konvertierung falsch wären.
Nach etwas Rumprobieren verlegte ich den Spieler wieder in den alten Raum zurück, aber auch da tauchte er plötzlich nicht mehr auf!

Da ich vorher schon ein paar andere Charaktere verschoben hatte fiel mir jetzt wieder ein dass die Koordinaten stimmen mussten - lediglich der Charakter ist plötzlich dauerhaft unsichtbar, kann sich aber auch nicht bewegen. Es ist als wäre er UNTER dem Bild gelandet, so dass die Walkable Areas für ihn nicht begehbar sind. Aber ich habe die Koordinaten überprüft und es scheint alles zu stimmen.

Mir kam dann der Gedanke der Charakter sei unsichtbar wegen irgendeines Fehlers, also wollte ich am Ende von Raum 1 (dem Menü) ne Funktion Player_LeaveRoom { cEgo.Visible = true;} oder sowas einbauen. Dummerweise gibts das nicht. Ich habe bemerkt dass ich ein leerzeichen zu viel reingesetzt habe, aber das war's scheinbar auch nicht.

Hier der Codebatzen vom Hauptmenü:

Code: Alles auswählen

function btnNeuspiel_OnClick(GUIControl *control, MouseButton button)
{ 
  player.ChangeRoom(2, 286, 396);
  gGui1.Visible=false;
  mouse.UseDefaultGraphic(); 
  gIconbar.Visible = true;
}
Dazugehörig noch der Code von Raum 1:

Code: Alles auswählen

function room_Load()
{
gStatusline.Visible = false;
mouse.GetModeGraphic(eModePointer);
}

function hHauptmenu_AnyClick()
{
  mouse.UseModeGraphic(eModePointer);
  gGui1.Clickable = true;
  mouse.GetModeGraphic(eModeUsermode1);
  gGui1.Centre();
  gGui1.Visible = true;
}

function room_Leave()
{
 gStatusline.Visible = true;
}
In diesem Raum ist natürlich eingestellt dass der Spieler nicht sichtbar ist, in allen anderen Räumen hab ich SpielerSichtbar aber natürlich auf true geschalten.

Um die Sache mit den Koordinaten nochmal ganz abzuklopfen hab ich einen neuen Raum mit den neuen Idealmaßen erstellt und eingerichtet, aber da ist er auch nicht aufgetaucht.
Ich hab in die Symbolleiste (Sierramäßig) ein Kartenicon eingebaut, damit man jederzeit von A nach B wechseln kann. Ganz in der Art von Conquests for the Longbow, vielleicht kennts ja wer. Wenn ich jedenfalls das Icon anklicke und den Spieler irgendwohin schicke dann taucht er auch wieder auf.

Ich denk bestimmt wieder zu umständlich und die Lösung ist die ganze Zeit total einfach und offensichtlich in nem SChreibfehler oder sowas :|









Edit:
Ich hab das Programm jetzt ausgetrickst. Ich hab vorerst mal einfach nur player.ChangeRoom(2); draus gemacht und bei Raum1 als Startkoordinaten (Starting Room über das Charaktermenü) diejenigen festgelegt, die ich gerne für Raum 2 gehabt hätte.
resultat: Man sieht den Spieler nicht im Hauptmenü rumtanzen (und das ist gut so), aber wenn man jetzt auf neues Spiel klickt taucht er in Raum zwei dort auf, wo er sein sollte. Das ist eine improvisierte Lösung und das kann man auch so laufen lassen, aber mich wunderts trotzdem woher das Problem auf einmal kam :-k
Ich verzweifle derzeit an:
- Eigene GUI zum Laden und Speichern erschaffen

Grund zur Freude:
Hab die Dialogsprache verstanden und kann jetzt lauter lustige Extras einbauen
Benutzeravatar
Helme
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 147
Registriert: 23.01.2009, 10:13

Re: Spielercharakter verschwindet beim Spielstart

Beitrag von Helme »

Schon mal in den Generel settings unter 'Use low-resolution co-ordinates in script' nachgeschaut?
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Re: Spielercharakter verschwindet beim Spielstart

Beitrag von KhrisMUC »

Für mich hört es sich eher so an als hättest Du in dem Raum statt einer walkable area einen walkbehind eingezeichnet...?
player.ChangeRoom(...) wird übrigens immer erst am Ende einer Funktion ausgeführt, nach allen folgenden Befehlen.

Die beiden "mouse.GetModeGraphic(...);"-Zeilen bewirken nichts. Du brauchst wahrscheinlich "mouse.UseModeGraphic(...)".

Code beim Verlassen eines Raums kann man mit on_event/eEventLeaveRoom realisieren.
Use gopher repellent on funny little man
Benutzeravatar
Außenseiter
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 58
Registriert: 14.10.2007, 20:04

Re: Spielercharakter verschwindet beim Spielstart

Beitrag von Außenseiter »

Entschuldigung erstmal, dass ich mich so lange nicht gemeldet habe :)
Die Option dass er die Koordinaten der niedrigen Auflösung übernimmt habe ich angekreuzt. Ich hatte das mit verschiedenen Backups auch mal ohne das durchgespielt und kam zu dem Schluss dass es damit am besten funktioniert und ich nur ein paar Charaktere wieder zurechtschieben muss ;)

Bisher gabs damit keine weiteren Probleme und ich glaube auch nicht dass es daran liegt weil wie gesagt alle anderen Positionierungen noch bzw. wieder stimmen.
Für mich hört es sich eher so an als hättest Du in dem Raum statt einer walkable area einen walkbehind eingezeichnet...?
Das ist genau das was passiert: Statt drauf zu laufen ist er dahinter - aber ich hab die walkable natürlich nicht als walkbehind eingezeichnet ^^
Wird auch dadurch belegt, dass ich beim erneuten Betreten des Raumes via der Kartenfunktion den Charakter ganz normal im Raum stehen habe. Sprich: Es ist keine Walkbehind, mir ist da kein Versehen unterlaufen.

Danke für die anderen Tips! Ich verbessere den Code sofort (das mit dem Mauszeiger hat mich schon lange gestört).
Ich verzweifle derzeit an:
- Eigene GUI zum Laden und Speichern erschaffen

Grund zur Freude:
Hab die Dialogsprache verstanden und kann jetzt lauter lustige Extras einbauen
Antworten