Habt ihr nen Schatten?!
- Fugu
- Hobby-Archäologe
- Beiträge: 168
- Registriert: 04.10.2005, 00:51
- Kontaktdaten:
Habt ihr nen Schatten?!
...oder zumindest ne Ahnung bzw. Erfahrung ob man SchattenMaps in AGS einbauen kann? Sprich nen transparenten Schattenlayer der über über character und background liegt...Bisher hab ich nur herausbekommen, wie man im Hi-ColorModus Transparenzwerte bei Objekten bzw Charaktären einstellen kann.
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Du könntest einfach ein bildschirmgroßes Objekt benutzen.
Für unterschiedlich starke Schatten nimmst Du dann einfach mehrere Objekte. Wichtig ist, dass die Baseline des Objektes ganz am unteren Bildrand ist, damit es über allen anderen dargestellt wird.
Allerdings verlangt das AGS performancemäßig einiges ab.
Zusätzlich kann man Objekte und Sprites auch mit Hilfe der Regions und deren Lichtwerten abdunkeln.
So lassen sich durchaus schöne Effekte erzielen.
Nachtrag: Es gibt auch noch den Befehl SetAmbientTint, damit müsste einiges zu machen sein.
Für unterschiedlich starke Schatten nimmst Du dann einfach mehrere Objekte. Wichtig ist, dass die Baseline des Objektes ganz am unteren Bildrand ist, damit es über allen anderen dargestellt wird.
Allerdings verlangt das AGS performancemäßig einiges ab.
Zusätzlich kann man Objekte und Sprites auch mit Hilfe der Regions und deren Lichtwerten abdunkeln.
So lassen sich durchaus schöne Effekte erzielen.
Nachtrag: Es gibt auch noch den Befehl SetAmbientTint, damit müsste einiges zu machen sein.
Use gopher repellent on funny little man
- Fugu
- Hobby-Archäologe
- Beiträge: 168
- Registriert: 04.10.2005, 00:51
- Kontaktdaten:
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Fightmeyers NoisyMountain enthält eine Dunkelkammer, soweit ich mich erinnere, war das rote Licht mit der selben Methode sehr schön umgesetzt.
Use gopher repellent on funny little man
- Fightmeyer
- Riesiger Roboteraffe
- Beiträge: 7308
- Registriert: 16.12.2004, 22:51
- Wohnort: Potsdam
- Kontaktdaten:
- Fugu
- Hobby-Archäologe
- Beiträge: 168
- Registriert: 04.10.2005, 00:51
- Kontaktdaten:
interessant...mich würden halt besonders Schattenmaps interessieren, die nicht durchgehend nur den Farbwert verändern, sondern, wie zB bei Schatten unter Bäumen, hier und da Licht durch lassen...aber das müsste ja prinzipiell mit Objekten zu regeln sein...solang es net die Performance tötet, und einigermaßen sauber aussieht...
da fällt mir ein..wie sieht es eigentlich bei Charaktären aus? Also nicht- transparente Charas mit nem transparenten Schattenspot darunter...jemand ne Ahnung?
da fällt mir ein..wie sieht es eigentlich bei Charaktären aus? Also nicht- transparente Charas mit nem transparenten Schattenspot darunter...jemand ne Ahnung?
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Entweder einen zweiten Charakter, der dem ersten folgt, oder ein Objekt (dann müßte dieses Objekt allerdings in jedem Raum gesondert existieren).
Mit einem Objekt würde das ganze so aussehen:
In der repeatedly_execute:
Im Room Script:
In jedem Raum muss ein Objekt mit Namen Schatten existieren, der Parameter in der rep_ex legt die Transparenz für die Räume fest. (Natürlich kann man das auch anders lösen. Ich bin mir auch nicht sicher, ob Objekte in unterschiedlichen Räumen den gleichen Namen haben dürfen, wenn nicht, nennt man die Objekte halt Schatten1, Schatten2 usw.)
Mit einem Charakter wäre es noch einfacher, schau dir den Befehl Character.FollowCharacter an. Du musst nur dem Schattencharakter Transparenz geben und seine Baseline auf 0 setzen.
Es heißt übrigens Charaktere.
Mit einem Objekt würde das ganze so aussehen:
In der repeatedly_execute:
Code: Alles auswählen
if (player.Room==2) {
CallRoomScript(50);
}
else if (player.Room==3 || player.Room==4) {
CallRoomScript(30);
}
Code: Alles auswählen
function on_call(int value) {
oSchatten.Transparency=value;
oSchatten.X=player.x-15;
oSchatten.Y=player.y+5;
oSchatten.Baseline=player.y-1;
}
Mit einem Charakter wäre es noch einfacher, schau dir den Befehl Character.FollowCharacter an. Du musst nur dem Schattencharakter Transparenz geben und seine Baseline auf 0 setzen.
Es heißt übrigens Charaktere.
Use gopher repellent on funny little man
- Fugu
- Hobby-Archäologe
- Beiträge: 168
- Registriert: 04.10.2005, 00:51
- Kontaktdaten:
...wiedermal vielen dank!
wenn ich den Charakterschatten über Objekte löse, könnte ich so jedoch auch der jeweiligen Raumbeleuchtung angepasst die Schattenposition/form variieren (zB Schatten an der Wand oder Boden...ob das jedoch insgesamt gut aussieht...muss man sehn).
danke jedenfalls
Charaktere..sheise stümmt ja
wenn ich den Charakterschatten über Objekte löse, könnte ich so jedoch auch der jeweiligen Raumbeleuchtung angepasst die Schattenposition/form variieren (zB Schatten an der Wand oder Boden...ob das jedoch insgesamt gut aussieht...muss man sehn).
danke jedenfalls
Charaktere..sheise stümmt ja
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Die Form/Position des Schattens kannst Du auch variieren, wenn Du einen Charakter als Schatten nimmst.
Mit cSchatten.ChangeView(x); kannst Du den Schatten ändern.
Auch noch möglich wäre es mit folgendem:
In der rep_ex:
Keine Ahnung, wie gut das hinhaut, ist mehr als Denkanstoß gedacht.
Mit cSchatten.ChangeView(x); kannst Du den Schatten ändern.
Auch noch möglich wäre es mit folgendem:
Code: Alles auswählen
function drawShadow(int width, int height, int transparency) {
DynamicSprite* shadow = DynamicSprite.CreateFromExistingSprite(10); // 10=Schattensprite
shadow.Resize(width, height);
RawDrawImageTransparent(player.x-width/2, player.y-height/2, shadow.Graphic, transparency);
shadow.Delete;
}
Code: Alles auswählen
RawSaveScreen();
drawShadow(...);
RawRestoreScreen();
Use gopher repellent on funny little man
- Fugu
- Hobby-Archäologe
- Beiträge: 168
- Registriert: 04.10.2005, 00:51
- Kontaktdaten:
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
- Fightmeyer
- Riesiger Roboteraffe
- Beiträge: 7308
- Registriert: 16.12.2004, 22:51
- Wohnort: Potsdam
- Kontaktdaten:
- Fugu
- Hobby-Archäologe
- Beiträge: 168
- Registriert: 04.10.2005, 00:51
- Kontaktdaten:
- Find dA real
- Hobby-Archäologe
- Beiträge: 233
- Registriert: 28.12.2005, 00:16
-
- Adventure-Gott
- Beiträge: 4575
- Registriert: 13.07.2004, 14:04
- Wohnort: Da wo muss
- Kontaktdaten:
Nu ja, bei mir sieht's so aus...
---------------------------
Illegal exception
---------------------------
An exception 0xC0000005 occured in ACWIN.EXE at EIP = 0x004053D0 ; program pointer is +1004, ACI version 2.71.892, gtags (6,83)
AGS cannot continue, this exception was fatal. Please note down the numbers above, remember what you were doing at the time and notify CJ on the Tech forum.
in Global script (line 5)
from Global script (line 16)
Most versions of Windows allow you to press Ctrl+C now to copy this entire message to the clipboard for easy reporting.
---------------------------
OK
---------------------------
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
Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.
Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet