Zurück   Flashforum > Flash > ActionScript > Spielkonzepte und Spieleprogrammierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-02-2007, 16:02   #1 (permalink)
Neuer User
 
Benutzerbild von _crypto_
 
Registriert seit: Mar 2006
Beiträge: 1.573
Sound-Problem

Also ich möchte gern das je näher man eienm objekt kommt, desto größer der sound.
der soll dann ab einer bestimmten stelle von 0 - 100 (Objeckt x y) und von da ab wieder
von 100 - 0 gehen. das von 0 - 100 is kein rpoblem nur wie mache ich das auf der anderen
seite?
ActionScript:
  1. // Ab 500px vor dem Objekt anfangen
  2. var fkt:Number = 500;
  3. var d:Number = Math.round((Math.floor(clip2._x - clip1._x - fkt) * -1) / (fkt / 100));
  4. (d < 1) ? d=0 : d=d;
  5. // dann (d > 100) ?   kp was ich dann mit d machen muss um von 100 - 0 zu zählen
  6.  
__________________

Currently working on:

- --- ---

-----------------------------------------------------------------
ActionScript 3.0, C++, Java, Delphi

Geändert von _crypto_ (05-02-2007 um 16:03 Uhr)
_crypto_ ist offline   Mit Zitat antworten
Alt 05-02-2007, 16:16   #2 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
Von 100 abziehen.

100 - 0 = 100
100 - 50 = 50
100 - 100 = 0

Oder meintest Du das anders?

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 05-02-2007, 16:54   #3 (permalink)
Neuer User
 
Benutzerbild von _crypto_
 
Registriert seit: Mar 2006
Beiträge: 1.573
also sagen wir ich habe auf einer karte einen punkt M.
je nähewr ich dem punkt komme desto größer soll ein gewisser
sound werden. dieser sound soll natürlich nur von 0 - 100 im Volume
geändert werden.

deswegen soll ich je näher ich M komme das volumen größer werden und
je weiter ich weggehe desto kleiner wird das volme.

das volume selber soll aber nicht kleiner als 0 und nicht größer als 100
(an punkt M) sein.
__________________

Currently working on:

- --- ---

-----------------------------------------------------------------
ActionScript 3.0, C++, Java, Delphi
_crypto_ ist offline   Mit Zitat antworten
Alt 06-02-2007, 08:58   #4 (permalink)
ontheoutsidelookingin
 
Benutzerbild von dassoud
 
Registriert seit: Jun 2001
Ort: Dortmund
Beiträge: 5.897
wenn du Math.min, Math.max und Math.abs richtig kombinierst, bist du am ziel.
__________________

33rpm
dassoud ist offline   Mit Zitat antworten
Alt 06-02-2007, 15:54   #5 (permalink)
[+]
 
Benutzerbild von André Michelle
 
Registriert seit: Dec 2002
Ort: cologne
Beiträge: 2.271
Code:
var dx: Number = mx - tx;
var dy: Number = my - ty;

var distance: Number = Math.sqrt( dx * dx + dy * dy );

var volume: Number = 100 - distance;

if( volume < 0 ) volume = 0;
	
sound.setVolume( volume );
...wobei mx, my deine Koordinaten (x,y) des Map-Punktes sind und tx,ty die Koordinaten deines Objektes.

Mich würde interessieren, wie die Lautstärke eigentlich über die Distanz abnimmt. Linear ? Quadratisch ?
Du kannst aber auch distance mit einem Wert zwischen 0 und 1 multiplizieren, um den Abklang über eine längere Distanz zu haben.
__________________
aM

blog | laboratory | tonfall | processing

Audiotool.com
André Michelle ist offline   Mit Zitat antworten
Alt 06-02-2007, 20:09   #6 (permalink)
DeRailed
 
Benutzerbild von klickverbot
 
Registriert seit: Sep 2006
Beiträge: 321
Zitat:
Zitat von André Michelle Beitrag anzeigen
Mich würde interessieren, wie die Lautstärke eigentlich über die Distanz abnimmt. Linear ? Quadratisch ?
Der Schalldruck nimmt im Verhältnis von 1/r ab, also nicht quadratisch. In dB ausgedrückt heißt das: Verdoppelt sich der Abstand, verringert sich der Schalldruck um 6dB.
klickverbot ist offline   Mit Zitat antworten
Alt 07-02-2007, 12:45   #7 (permalink)
Neuer User
 
Benutzerbild von _crypto_
 
Registriert seit: Mar 2006
Beiträge: 1.573
Zitat:
Zitat von André Michelle Beitrag anzeigen
Code:
var dx: Number = mx - tx;
var dy: Number = my - ty;

var distance: Number = Math.sqrt( dx * dx + dy * dy );

var volume: Number = 100 - distance;

if( volume < 0 ) volume = 0;
	
sound.setVolume( volume );
...wobei mx, my deine Koordinaten (x,y) des Map-Punktes sind und tx,ty die Koordinaten deines Objektes.

Mich würde interessieren, wie die Lautstärke eigentlich über die Distanz abnimmt. Linear ? Quadratisch ?
Du kannst aber auch distance mit einem Wert zwischen 0 und 1 multiplizieren, um den Abklang über eine längere Distanz zu haben.
wobei ich nur die x achse beachten muss aber trozdem danke
hab ja extra auf pytagoras verzichtet brauch ich ja bei nur 1 koordinate nicht.
habe jetz sowas genommen:

ActionScript:
  1. var sPoint:Number = 350;
  2. var distance:Number = Math.round((clip2._x - clip1._x - sPoint) * -1 / (sPoint / 100));
  3.  
  4. (distance > 100) ? distance=(200-distance) : distance;
  5. (distance < 1) ? distance=0 : distance;
wobei sPoint angibt ab wie viel pixel vor dem objekt angefangen werden soll die lautstärke zu regeln.
geht das vllt noch einfacher wenn ich nur x beachten soll und y ja nicht?
__________________

Currently working on:

- --- ---

-----------------------------------------------------------------
ActionScript 3.0, C++, Java, Delphi
_crypto_ ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:26 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele