Lichtstrahl durch Chararkter unterbrechen
- Dave_Doofy
- Verpackungs-Wegwerfer
- Beiträge: 61
- Registriert: 23.12.2010, 11:45
- Kontaktdaten:
Lichtstrahl durch Chararkter unterbrechen
Hallo AGSler,
ich habe mal wieder eine Frage zu einer Idee für ein Rätsel.
Folgende Situation:
Der Held muss einen Schweinwerfer einschalten und in die richtige Richtung drehen um einen dunklen Bereich des Raumes zu erleuchten und ein Item zu finden.
Frage:
Ich wollte den Lichtstrahl sehr konzentriert (Spot) machen, der sehr gezielt ausgerichtet werden muss.
Da der Strahl durch den halben Raum geht kann es sein das der Charakter den Lichtstrahl kreuzt.
Wie kann ich das bewerkstelligen, das der Lichtstrahl durch den Charakter unterbrochen wird, also er sozusagen im Weg steht und der Lichtsstrahl nicht weiter leuchtet und die Ecke dunkel bleibt.
Bin für jede Idee und Tip dankbar.
Vielen Dank
Grüße
Dave
PS: ein neues Demovideo ist wieder online
ich habe mal wieder eine Frage zu einer Idee für ein Rätsel.
Folgende Situation:
Der Held muss einen Schweinwerfer einschalten und in die richtige Richtung drehen um einen dunklen Bereich des Raumes zu erleuchten und ein Item zu finden.
Frage:
Ich wollte den Lichtstrahl sehr konzentriert (Spot) machen, der sehr gezielt ausgerichtet werden muss.
Da der Strahl durch den halben Raum geht kann es sein das der Charakter den Lichtstrahl kreuzt.
Wie kann ich das bewerkstelligen, das der Lichtstrahl durch den Charakter unterbrochen wird, also er sozusagen im Weg steht und der Lichtsstrahl nicht weiter leuchtet und die Ecke dunkel bleibt.
Bin für jede Idee und Tip dankbar.
Vielen Dank
Grüße
Dave
PS: ein neues Demovideo ist wieder online
Aktuelles Projekt
Jack Crow - Flucht aus der Zukunft
Demovideos unter:
http://www.youtube.com/watch?v=HECTWBRoWGI
Website mit Projektblog und kleinem Background Tutorial
http://dadsoft.jimdo.com/
Jack Crow - Flucht aus der Zukunft
Demovideos unter:
http://www.youtube.com/watch?v=HECTWBRoWGI
Website mit Projektblog und kleinem Background Tutorial
http://dadsoft.jimdo.com/
-
- Verpackungs-Wegwerfer
- Beiträge: 68
- Registriert: 02.08.2012, 11:27
Re: Lichtstrahl durch Chararkter unterbrechen
Ich weiß zwar nicht, wie du das machen willst, aber die Baseline könnte helfen. Der Lichtstrahl muss eine kleinere haben als der Charakter, glaub ich. Ich Habe mal einen Tisch als walkbehind genommen und das Objekt darauf musste ein höhere als der Tisch haben, damit es dahinter nicht verschwindet. Dann würde allerdings nur der Charakter vor dem Lichtstrahl stehen. Wenn vielleicht ein Objekt hinter dem Charakter wäre das wegen der Baselineeinstellung nur den Lichtstrahl versteckt und sonst nichts, ginge das vielleicht. Man sollte das Objekt natürlich nicht sehen können.
Mfg Rexxar
- Dave_Doofy
- Verpackungs-Wegwerfer
- Beiträge: 61
- Registriert: 23.12.2010, 11:45
- Kontaktdaten:
Re: Lichtstrahl durch Chararkter unterbrechen
Was ich mir so ausgedacht habe war, dass der LIchtstrahl mit der surface.DrawImage aufgebaut wird.
Das funktioniert auch.
Ich habe eine Region angelegt unter dem Lichtstrahl. Wenn der Held die betritt wird der Lichtstrahl neu berechnet bis zu Charakter Position:
function region1_WalksOnto()
{
int Lichtx=500;
int Lichty=1000;
while (Lichtx>cJack1.x){
DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
surface.DrawImage(Lichtx, Lichty, 416 , 80);
Lichtx--;
Lichty--;
surface.Release();
}
}
Mein Problem ist nun, wie lösche ich ein mit surface.DrawImage erzeugten Lichtstrahl?
Das funktioniert auch.
Ich habe eine Region angelegt unter dem Lichtstrahl. Wenn der Held die betritt wird der Lichtstrahl neu berechnet bis zu Charakter Position:
function region1_WalksOnto()
{
int Lichtx=500;
int Lichty=1000;
while (Lichtx>cJack1.x){
DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
surface.DrawImage(Lichtx, Lichty, 416 , 80);
Lichtx--;
Lichty--;
surface.Release();
}
}
Mein Problem ist nun, wie lösche ich ein mit surface.DrawImage erzeugten Lichtstrahl?
Aktuelles Projekt
Jack Crow - Flucht aus der Zukunft
Demovideos unter:
http://www.youtube.com/watch?v=HECTWBRoWGI
Website mit Projektblog und kleinem Background Tutorial
http://dadsoft.jimdo.com/
Jack Crow - Flucht aus der Zukunft
Demovideos unter:
http://www.youtube.com/watch?v=HECTWBRoWGI
Website mit Projektblog und kleinem Background Tutorial
http://dadsoft.jimdo.com/
-
- Verpackungs-Wegwerfer
- Beiträge: 68
- Registriert: 02.08.2012, 11:27
Re: Lichtstrahl durch Chararkter unterbrechen
Wenn du die Länge verändern kannst mach doch einfach den Lichtstrahl kürzer. (So 1x1 Pixel)Dann sieht man ihn. (Fast) nicht mehr.
Mfg Rexxar
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Re: Lichtstrahl durch Chararkter unterbrechen
Du musst vorher ein backup des Hintergrunds machen.
http://www.adventuregamestudio.co.uk/ma ... teCopy.htm
http://www.adventuregamestudio.co.uk/ma ... teCopy.htm
Use gopher repellent on funny little man
- Dave_Doofy
- Verpackungs-Wegwerfer
- Beiträge: 61
- Registriert: 23.12.2010, 11:45
- Kontaktdaten:
Re: Lichtstrahl durch Chararkter unterbrechen
Hi,
ich habe mir das mal angeschaut.
Alleine, einmal funktioniert das.
Nur wie mache ich das er ständig überprüft ob der Held auf der Region steht und dann den Strahl neu berechnet.
Ich kann die Befehle
DrawingSurface *backup = surface.CreateCopy();
und
surface.DrawSurface(backup);
nicht trennen, also einmal in room_RepExec() und der andere in region3_WalksOnto()
Auch wenn ich einen Teil in eine If-Schleife baue bekomme ich Fehlermeldung über undefined Symbol Backup
hat jemand noch eine andere Idee
Irgendwie steh ich auf dem Schlauch wie ich das machen könnte.
Grüße & thx
Dave
ich habe mir das mal angeschaut.
Alleine, einmal funktioniert das.
Nur wie mache ich das er ständig überprüft ob der Held auf der Region steht und dann den Strahl neu berechnet.
Ich kann die Befehle
DrawingSurface *backup = surface.CreateCopy();
und
surface.DrawSurface(backup);
nicht trennen, also einmal in room_RepExec() und der andere in region3_WalksOnto()
Auch wenn ich einen Teil in eine If-Schleife baue bekomme ich Fehlermeldung über undefined Symbol Backup
hat jemand noch eine andere Idee
Irgendwie steh ich auf dem Schlauch wie ich das machen könnte.
Grüße & thx
Dave
Aktuelles Projekt
Jack Crow - Flucht aus der Zukunft
Demovideos unter:
http://www.youtube.com/watch?v=HECTWBRoWGI
Website mit Projektblog und kleinem Background Tutorial
http://dadsoft.jimdo.com/
Jack Crow - Flucht aus der Zukunft
Demovideos unter:
http://www.youtube.com/watch?v=HECTWBRoWGI
Website mit Projektblog und kleinem Background Tutorial
http://dadsoft.jimdo.com/
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Re: Lichtstrahl durch Chararkter unterbrechen
Du musst backup als Raumvariable deklarieren:
Jetzt kannst Du backup in jeder anderen Funktion verwenden, z.B. in room_RepExec().
Code: Alles auswählen
DrawingSurface* backup; // ganz oben, nicht innerhalb einer Funktion
function room_AfterFadein() {
DrawingSurface* surface = Room.GetDrawingSurfaceForBackground();
backup = surface.CreateCopy();
}
Use gopher repellent on funny little man
- Dave_Doofy
- Verpackungs-Wegwerfer
- Beiträge: 61
- Registriert: 23.12.2010, 11:45
- Kontaktdaten:
Re: Lichtstrahl durch Chararkter unterbrechen
Hi,
Super!!! hat geklappt
Und funktioniert genauso wie ich es wollte
vielen Dank Dir
Grüße
Super!!! hat geklappt
Und funktioniert genauso wie ich es wollte
vielen Dank Dir
Grüße
Aktuelles Projekt
Jack Crow - Flucht aus der Zukunft
Demovideos unter:
http://www.youtube.com/watch?v=HECTWBRoWGI
Website mit Projektblog und kleinem Background Tutorial
http://dadsoft.jimdo.com/
Jack Crow - Flucht aus der Zukunft
Demovideos unter:
http://www.youtube.com/watch?v=HECTWBRoWGI
Website mit Projektblog und kleinem Background Tutorial
http://dadsoft.jimdo.com/