Charakterkollision & Backgroundspeech

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
NFD
Frischling
Frischling
Beiträge: 1
Registriert: 05.01.2003, 13:52

Charakterkollision & Backgroundspeech

Beitrag von NFD »

1.: Gibt es einen Befehl der Charakterkollisionen von vorneherein vermeidet, oder muss man dafür immer einen neuen Befehl schreiben-->
if (AreCharactersColliding(EGO,MAN)==1)
{ colliding code here }
Wie muss dann der colliding code aussehen und in welcher Funktion muss er stehen?
Ich habe es mit einem MoveCharacterBlocking-Code versucht, aber das ist keine besonders gute Lösung.

2.: Ich möchte, dass ein Charakter einige Sätze sagt, ohne dass das Spiel unterbrochen wird, also DisplaySpeechBackground. Aber in welche Funktion kommt das? Da der Charakter es wiederholen soll, habe ich es mit der repeatedly execute function versucht, aber dann stürzt es ab (Error: too many screen overlays created.)
Benutzeravatar
DasJan
Adventure-Treff
Adventure-Treff
Beiträge: 14683
Registriert: 17.02.2002, 17:34
Wohnort: London
Kontaktdaten:

Re:Charakterkollision & Backgroundspeech

Beitrag von DasJan »

1.
Da fällt mir spontan nix ein. Das Problem ist ja, dass sich NPCs auch bewegen können und daher sowas ziemlich kompliziert wird. Wenn die NPCs immer an derselben stelle stehen, würde ich einfach ein kleines Loch in die Walkable Area machen.

2.
RepeatedlyExecute passt schon. Du musst nur immer mit abfragen, ob der Char gerade schon was sagt. Er darf nur sprechen, wenn er nicht schon was anderes sagt. Mir ist gerade der Befehl entfallen, vielleicht kannst du die TalkingView da benutzen.

Das Jan
"If you are the smartest person in the room, you are in the wrong room."
theDon
Rätselmeister
Rätselmeister
Beiträge: 2219
Registriert: 11.06.2002, 18:22
Wohnort: gone (forever)
Kontaktdaten:

Re:Charakterkollision & Backgroundspeech

Beitrag von theDon »

halt einfach beide charaktere an, wenn sie zusammenstoßen...
Wer Ironie oder beleidigende Inhalte in diesem Beitrag findet, darf sie behalten.

http://www.thwboard.de | http://oph-qfb.sourceforge.net
Benutzeravatar
DasJan
Adventure-Treff
Adventure-Treff
Beiträge: 14683
Registriert: 17.02.2002, 17:34
Wohnort: London
Kontaktdaten:

Re:Charakterkollision & Backgroundspeech

Beitrag von DasJan »

Und wie soll man das feststellen, Don?

Das Jan
"If you are the smartest person in the room, you are in the wrong room."
theDon
Rätselmeister
Rätselmeister
Beiträge: 2219
Registriert: 11.06.2002, 18:22
Wohnort: gone (forever)
Kontaktdaten:

Re:Charakterkollision & Backgroundspeech

Beitrag von theDon »

du nimmst die koordinaten von jeder person, fabrizierst ein rechteck darum (bounding box) und guckst dann, ob die sich überlappen...
Wer Ironie oder beleidigende Inhalte in diesem Beitrag findet, darf sie behalten.

http://www.thwboard.de | http://oph-qfb.sourceforge.net
Benutzeravatar
DasJan
Adventure-Treff
Adventure-Treff
Beiträge: 14683
Registriert: 17.02.2002, 17:34
Wohnort: London
Kontaktdaten:

Re:Charakterkollision & Backgroundspeech

Beitrag von DasJan »

Das ist sicher nicht zweckmäßig. Graphisch können sie sich schon überlappen, wenn sie voreinander stehen. Ich würde eher den Abstand der Koordinaten (Pythagoras) prüfen, der keinen bestimmten Wert unterschreiten darf, obwohl ne waagerechte Ellipse sicher korrekter wär.

Das Problem ist nur: Stehen bleiben ist irgendwie uncool, hilft keinem wirklich weiter.

Das Jan
"If you are the smartest person in the room, you are in the wrong room."
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

Irgendwo bei den neuen Einträgen wird dieses Problem diskutiert. Ich habe das Thema, glaube ich, mit einer (mehr oder eniger) intelligenten Lösung gemacht
Link is here
Klick mal drauf
Un guck rein
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge

Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.

Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Antworten