|
 |
Sound an script_brush binden |
valavexo
5-Minuten-Ei

Dabei seit: 07.01.2009
Beiträge: 13

|
|
| Sound an script_brush binden |
 |
Hey, ich bins noch mal
Also, folgendes Problem: Ich habe eine Gondel, bzw. einen Fahrkorb, der sich auf Kommando auch brav bewegt.
Nun wollte ich ihn noch mit einem Sound belegen, also ich will, dass während der Fahrt ein Sound abgespielt wird (ist sowas wie ne Fahrstuhl Musik, mit Gong am Ende und Gong am anfang).
Das funktioniert auch, aber leider nur soweit, dass der Sound zwar abgespielt wird, aber nur an der Stelle, wo der Spiele F gedrückt hat. Er bewegt sich also nicht mit dem Script_Brush mit.
Bei einer Tür o.ä. ist das ja kein Problem, die ändert ihren Aufenthaltsort ja nur in sofern, dass sie sich dreht, hier werden aber ca. 1000 Units zurückgelegt...
Wie bringe ich den Sound dazu an dem Script-brush_model zu "kleben" ?
Hier mein script:
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
|
main()
{
level.scr_sound["ipanema"] = "ipanema";
korbtriggers = getentarray("korbtrig","targetname");
for(i = 0; i < korbtriggers.size; i++) korbtriggers[i] thread korb_think();
}
korb_think()
{
self.korbmoving = false;
self.korbpos = true;
self.korbmodel = getent(self.target,"targetname");
while (1)
{
self waittill("trigger");
if(!self.korbmoving) self thread korb_move();
}
}
korb_move()
{
self.korbmoving = true;
if(self.korbpos)
{
self.korbmodel playsound("ipanema");
self.korbmodel movex(-1244,5.25);
self.korbmodel waittill("movedone");
self.korbpos = false;
}
else
{
self.korbmodel playsound("ipanema");
self.korbmodel movex(1244,5.25);
self.korbmodel waittill("movedone");
self.korbpos = true;
}
self.korbmoving = false;
} |
|
Wie gesagt, script selbst ist fehlerfrei, habs nur der vollständigkeit wegen gepostet.
__________________ Ein Computer ist immer nur so dumm, wie der Anwender.
Oder der Programmierer.
|
|
|
|
|
valavexo
5-Minuten-Ei

Dabei seit: 07.01.2009
Beiträge: 13

|
|
Original von Marvin
er meint dass sich der sound nicht mit der gondel mit bewegt und am trigger kleben bleibt.
Jein... Also der Sound bewegt sich nicht mit der Gondel, richtig,
aber er bleibt leider auch nicht am Trigger kleben, sonst könnte ich das ja mit
self enableLinkTo();
self linkto(self.korbmodel);
lösen (also den Trigger an das brush_model kleben)
Der Sound bleibt einfach an der Stelle wo er aktiviert wurde, egal ob sich drumrum alles bewegt oder nicht...
Ich glaube als Kernfrage kann ich das so formulieren:
Wie knüpfe ich einen Sound an ein sich bewegendes Objekt?
__________________ Ein Computer ist immer nur so dumm, wie der Anwender.
Oder der Programmierer.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von valavexo: 24.11.2009 16:57.
|
|
|
|
|
|
|
Ich hab Dein Script mal etwas gepimpt.
Da ich des Radiants nicht mächtig bin, kann ich es leider nicht testen.
Wie Du nun was einbaust, hab ich grad mal im TS nachgefragt:
Du musst alle Brushes mit dem targetname "korb" anwählen, rechte Maustaste --> ungroup entity
Alles angewählt lassen, rechte Maustaste --> targetname "korb" (für alle Teile des Korbs) eingeben.
Hier mal das Script:
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
|
main(){
level.korbDown = true;
level.korbMoving = false;
thread korb_start();
}
korb_start(){
korb = getentarray ("korbtrig","targetname");
if(isdefined(korb))
for (i = 0; i < korb.size; i++)
korbtriggers[i] thread korb_think();
}
korb_think(){
while (1){
self waittill ("trigger");
if (!level.korbMoving)
thread korb_move();
}
}
korb_move(){
korb = getentarray ("korbtrig","targetname");
korbmodel = getent ("korb", "targetname");
level.korbMoving = true;
speed = 5;
distance = 5600;
if (level.korbDown){
korbmodel playloopsound ("korb_move");
korbmodel movex (distance, speed);
korbmodel waittill ("movedone");
korbmodel stoploopsound();
level.korbDown = false;
}
else{
korbmodel playloopsound ("korb_move");
korbmodel movex (distance - (distance * 2), speed);
korbmodel waittill ("movedone");
korbmodel stoploopsound();
level.korbDown = true;
}
level.korbMoving = false;
} |
|
Wenns klappt, musst Dich bei Graves bedanken.
ToM
__________________

|
|
|
|
|
valavexo
5-Minuten-Ei

Dabei seit: 07.01.2009
Beiträge: 13

|
|
Funktioniert alles wunderbar,
hab nur noch die Distance und den Soundnamen entsprechend angepasst, und in der Zeile
korbtriggers[i] thread korb_think();
korbtriggers in korb umbenannt,
weil es korbtriggers jetzt ja nicht mehr gab.
(Nur der Vollständigkeit halber)...
Danke Graves, danke Nightwing, ich war echt drann aufzugeben^^.
__________________ Ein Computer ist immer nur so dumm, wie der Anwender.
Oder der Programmierer.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von valavexo: 26.11.2009 15:25.
|
|
|
|
|
|
|
|
 |
Impressum ||Datenschutzerklärung
|