Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-06-2004, 10:25   #1 (permalink)
Neuer Abuser
 
Benutzerbild von Shoom
 
Registriert seit: Apr 2004
Ort: Vor dem Computer
Beiträge: 68
maus listener

Hi!

hab schon überall (innerhalb meines Horizonts) nach nem vernünftigen Tutorial oder Thread für mein Problem gesucht, aber nix gefunden...

vielleicht kann mir ja einer helfen...
Ich will per mouseListener (hab ich vorher noch nie mit zu tun gehabt) einen MC entlang einer Kurve je nach Mausposition ausrichten. Hab aber überhaupt keine Ahnung von dem Kram!

Das ganze soll zum Schluss Teil eines kleinen Fußballspiels werden, wo man den Abschusswinkel am Ball mit der Maus kontrollieren kann...

Für Tipps und nützliche Links zum Thema wär ich sehr verbunden!
Danke!
__________________
When you cross my mind best look both ways
----------------------------
-->Thirsting-Ear<--

Geändert von Shoom (18-06-2004 um 10:29 Uhr)
Shoom ist offline   Mit Zitat antworten
Alt 18-06-2004, 10:41   #2 (permalink)
Coder
 
Benutzerbild von bewerber2
 
Registriert seit: Sep 2002
Ort: München
Beiträge: 657
Exclamation

Also ich mache sowas immer mit onEnterFrame():

Code:
this.onEnterFrame = function ()
{
     machIrgendwas(_xmouse, _ymouse);
}
__________________
...
Link zu meiner Homepage
bewerber2 ist offline   Mit Zitat antworten
Alt 18-06-2004, 10:57   #3 (permalink)
Neuer Abuser
 
Benutzerbild von Shoom
 
Registriert seit: Apr 2004
Ort: Vor dem Computer
Beiträge: 68
sorry, das hilft mir nicht wirklich weiter, weil ich mit "machIrgendwas" nicht viel anfangen kann...
__________________
When you cross my mind best look both ways
----------------------------
-->Thirsting-Ear<--
Shoom ist offline   Mit Zitat antworten
Alt 18-06-2004, 11:05   #4 (permalink)
Coder
 
Benutzerbild von bewerber2
 
Registriert seit: Sep 2002
Ort: München
Beiträge: 657
Es geht ja nur ums Prinzip, wo Du Dich "reinhängen" kannst. Statt machIrgendwas() wirst Du Deine Routine aufrufen und ihr die x- und y-Koordinaten der Mouse übergeben. Und in dieser Routine steuerst Du dann deinen MC in Abhängigkeit von diesen übergebenen Koordinaten.

...oder erwartest Du jetzt, daß Dir jemand das Programm schreibt?
__________________
...
Link zu meiner Homepage
bewerber2 ist offline   Mit Zitat antworten
Alt 18-06-2004, 11:09   #5 (permalink)
Neuer Abuser
 
Benutzerbild von Shoom
 
Registriert seit: Apr 2004
Ort: Vor dem Computer
Beiträge: 68
Ich erwarte keinesfalls das mir einer das Programm schreibt!
Ich habe nur leider auch keine Ahnung wie ich so eine Routine die meinen MC steuert schreibe, und ich soll das ganze mit Listenern machen...

Ich will mich da ja wohl reinknien, denn ich muss das ja lernen, ich hab nur keine wirkliche Anlaufstelle...
Ich währe für entsprechende Tuts oder sonstige Links echt dankbar.
__________________
When you cross my mind best look both ways
----------------------------
-->Thirsting-Ear<--
Shoom ist offline   Mit Zitat antworten
Alt 18-06-2004, 13:11   #6 (permalink)
Neuer Abuser
 
Benutzerbild von Shoom
 
Registriert seit: Apr 2004
Ort: Vor dem Computer
Beiträge: 68
*schluchz*
kann oder will mir keiner helfen?
__________________
When you cross my mind best look both ways
----------------------------
-->Thirsting-Ear<--
Shoom ist offline   Mit Zitat antworten
Alt 18-06-2004, 16:06   #7 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
dich soltle nur Math.atan2 interessieren damit kriegste den Winkel der Maus zum 0,0 koordinatenpunkt des films in Bogenmaß raus.
angewendet sieht das so aus:
PHP-Code:
//mauslistener
mList={}
//pfad des auszurichtenden mcs angeben
mList.mc=_root.obj
//falls das objekt der maus um 90° versetzt folgt kannste hier 
//korrigieren
mList.winkelkorrektur=0
mList
.onMouseMove=function(){
//da atan2 sich auf den nullpunkt des films bezieht musste
//die mauskoordinaten relativ dazu berechnen
    
var y=this.mc._y-this.mc._parent._ymouse
    
var x=this.mc._x-this.mc._parent._xmouse
//in atan2 eingesetzt, ins gradmaß umgerechnet und die winkelkorrektur einbeziehen
    
this.mc._rotation=Math.atan2(y,x)*180/Math.PI-winkelkorrektur
}
Mouse.addListener(mList
das würde zB nen pfeil mit namen "obj" im root der maus ausrichten

ODER

wolltest du ein objekt auf nem halbkreis der maus auf den xkoordinaten folgen lassen?

gruß
deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 19-06-2004, 14:33   #8 (permalink)
Neuer Abuser
 
Benutzerbild von Shoom
 
Registriert seit: Apr 2004
Ort: Vor dem Computer
Beiträge: 68
hey danke deluxe!

Das mit Math.atan2 hab ich schon selber hinbekommen, trotzdem danke!
Aber wie du schon richtig vermutete hast will ich meinen MC auf nem Kreisbogen von 60° per Maus xKoordinate bewegen, das mit der Ausrichtung zum Mittelpunkt hin klappt schon ganz gut! Wär echt nett wenn du für den Bogen auch noch was parat hättest, ich kenn mich mit Sinus und so leider nicht so aus!
__________________
When you cross my mind best look both ways
----------------------------
-->Thirsting-Ear<--
Shoom ist offline   Mit Zitat antworten
Alt 19-06-2004, 20:54   #9 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
PHP-Code:
f=createEmptyMovieClip("feld",1)
b=f.createEmptyMovieClip("ball",1)
with(b){
    
lineStyle(0)
    
beginFill(0xFF0000)
    
moveTo(6,0)
    for(var 
i=0;i<360;i++) {
        
lineTo(Math.cos(i*Math.PI/180)*6,Math.sin(i*Math.PI/180)*6);
    }
    
endFill()
}

b.init=function(){
    
//mittelpunkt des bogens festlegen
    
this.m={x:200,y:100}
    
//"amplitude", hier nen 1/6 kreis
    
this.ausschnitt=60
    
//startposition auf teilkreis
    
this.w=0
    
//verschiebung, ausgehende von der 6 Uhr position gegen den uhrzeigersinn
    
this.woff=240
    
//raidus des teilkreises
    
this.r=100
    
    
//geschwindigkeit auf der kreisbahn
    
this.speed=2
    
//erstellung des teilkreise-nur zum grafischen zweck
    
for(var i=0;i<this.ausschnitt;i++){
        var 
x=Math.cos((i+this.woff)*Math.PI/180)*this.r+this.m.x
        
var y=Math.sin((i+this.woff)*Math.PI/180)*this.r+this.m.y
        this
._parent.lineStyle(2)
        
this._parent.moveTo(x,y)
        
this._parent.lineTo(x+1,y+1)
    }
    
//hier findet die eigentliche bewegung des balles statt
    
this.onEnterFrame=function(){
        
//richtungs umkehrung je nach position
        
this.w<=this.dir=0
        this
.w>=this.ausschnitt this.dir=0
        
//und je nach position winkel de/inkrementieren
        
if(this.dirthis.w+=this.speed
        
if(!this.dirthis.w-=this.speed
        
//x,y koordinaten berechnen; Math.PI/180 dient zur berechnung des bogenmaßes
        //(anteil des winkel an 2PI)
        
this._x=Math.cos((this.w+this.woff)*Math.PI/180)*this.r+this.m.x
        this
._y=Math.sin((this.w+this.woff)*Math.PI/180)*this.r+this.m.y
    
}
}
b.init() 
denke das sollte dir weiterhelfen
auf die berechnung von "w" kommt es an
bei der berechnugn von w kannste natürlich anstatt stur hoch und runter zu zählen, die xposition der maus ins spiel bringen


deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 20-06-2004, 13:59   #10 (permalink)
Neuer Abuser
 
Benutzerbild von Shoom
 
Registriert seit: Apr 2004
Ort: Vor dem Computer
Beiträge: 68
Whoo!

Erstmal ein dickes Dankeschön!
Ich komme heute leider nicht mehr dazu es auszuprobieren, aber das sieht schon genau nach dem aus was ich gesucht habe! Ich meld mich, wenn es geklappt hat (und auch wenn es nicht klappt )!!
__________________
When you cross my mind best look both ways
----------------------------
-->Thirsting-Ear<--
Shoom ist offline   Mit Zitat antworten
Alt 21-06-2004, 10:12   #11 (permalink)
Neuer Abuser
 
Benutzerbild von Shoom
 
Registriert seit: Apr 2004
Ort: Vor dem Computer
Beiträge: 68
jetzt müsste ich nur noch wissen wie ich, wenn ich die Position nach der Maus ausrichte, zum einen den Ball (bzw. Pfeil bei mir) auch in die richtige Richtung verschiebe (bisher läuft er genau entgegengesetzt), und zum anderen die Bewegung nur auf den Teilkreis beschränke, der Ball also nicht darüber "hinausschiesst"...

Wenn du oder jemand anderes mir da auch noch helfen könnte wär ich echt happy!

ich häng mal dran was ich mir bislang zusammengeflust hab!
Angehängte Dateien
Dateityp: zip pfeil.zip (2,9 KB, 15x aufgerufen)
__________________
When you cross my mind best look both ways
----------------------------
-->Thirsting-Ear<--

Geändert von Shoom (21-06-2004 um 10:15 Uhr)
Shoom ist offline   Mit Zitat antworten
Alt 21-06-2004, 13:54   #12 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
PHP-Code:
    this.onEnterFrame=function(){ 
        
        
this._root._xmouse+100
     
//per trace die grenzen rausgesucht
        
if(this.w>340this.w=340
        
if(this.w<260this.w=260
//cosinus und sinus vertauscht
        
this._x=Math.sin((this.w+this.woff)*Math.PI/180)*this.r+this.m.
        this
._y=Math.cos((this.w+this.woff)*Math.PI/180)*this.r+this.m.
//.... 

grüße
deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 21-06-2004, 15:53   #13 (permalink)
Neuer Abuser
 
Benutzerbild von Shoom
 
Registriert seit: Apr 2004
Ort: Vor dem Computer
Beiträge: 68
Danke!

Ich muss mir zwar erstmal über den ganzen Kram klarwerden und hab noch ne ewig lange Liste an Problemen damit, aber ich bin recht zuversichtlich dass das noch was wird...
...noch ne kleine Frage: Wie bekomme ich den Winkel des Pfeiles auf dem Teilkreis? Ich weiß, dass der da schon drinsteckt, aber die Variable w kann ich nicht gebrauchen. Den bräuchte ich um einen perspektivisch skalierten Pfeil hinzubekommen...

Ich glaube ich versuche zuviel auf einmal und sollte wohl erstmal Gehen lernen bevor ich mit dem Laufen anfange...
__________________
When you cross my mind best look both ways
----------------------------
-->Thirsting-Ear<--
Shoom ist offline   Mit Zitat antworten
Alt 21-06-2004, 19:09   #14 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
den winkel haste doch schon
ausgehend von der rotation ist auf dem 60° teilkreis

auf der rechten seite -30° und auf der linken +30°
addierste 30° zu deiner rotation dazu bekommste deine wert rechtsbeginnend von 0-60°
PHP-Code:
        mcPfeil._rotation=Math.atan2(ab)*180/Math.PI -90
        trace
(mcPfeil._rotation+30

gruß
deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 22-06-2004, 10:21   #15 (permalink)
Neuer Abuser
 
Benutzerbild von Shoom
 
Registriert seit: Apr 2004
Ort: Vor dem Computer
Beiträge: 68
Ein ganz extra-dickes Dankeschön an dich, Deluxe!
Nicht nur das es jetzt soweit funktioniert, ich habe es auch noch verstanden und gut was dazugelernt!
Hast echt was drauf! Bin dir was schuldig...
__________________
When you cross my mind best look both ways
----------------------------
-->Thirsting-Ear<--
Shoom 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 19:57 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele