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

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-05-2010, 16:25   #1 (permalink)
Neuer User
 
Benutzerbild von schnabelmax
 
Registriert seit: Oct 2003
Ort: im garten frankreichs
Beiträge: 76
Ballistik

Liebes Forum

Ich schlage mich nun seit Gestern Morgen mit dem Thema Flagbahnen herum und bin mit meinem Latein am Ende. Zwar habe ich jetzt eine Flugbahn, sie ist mir aber nicht schön und nicht Präzise genug.

Natürlich war ich beim 'hgseib' und habe mir seine Ballistik-Studien angeschaut, es war aber nicht möglich die Ziel-Koordinaten zu Variieren. Ich hab es auch über sin/cos Versucht aber dann fliegen mir die Kugeln erst recht um die Ohren.

Meine Flugbahn:
PHP-Code:
// Bühnen action
// Zielposition ermitteln
// StartPosition ermitteln
// Ziel-Objekt ermitteln
// Flugkörper kreieren
var ball:Ball = new Ball(StartPosition_pntZielposition_pntZiel-Objekt);
addChild(ball); 
PHP-Code:
// Flugkörper Klasse
 
public class Ball extends MovieClip
 
{
    private var 
startPos_pnt:Point// Start Position
    
private var zPos_pnt:Point = new Point(); // Target
    
private var ziel_obj:Sprite// Target
        
    
private var ball_spr:Sprite;
    
// hier müssen die Zeichen Variablen stehen und später im code noch der Ball gezeinent werden (ist in der zip)

    
private var g_num:Number 0.9// Erdanziehung
    
private var schwung_num:Number 35;
    private var 
streckeX_num:Number;
    private var 
xVersatz_num:Number;
    private var 
xSchungEndeDistance:Number;
        
        
    public function 
Ball(pStartPos:PointpZielPos:PointpZiel:Sprite):void
        
{
        
this.pStartPos.x;
        
this.pStartPos.y;
        
ziel_obj pZiel;
        
ballRadius_int pR;
            
        
zPos_pnt pZielPos;
        
startPos_pnt pStartPos;
            
        
streckeX_num Math.abs(zPos_pnt.startPos_pnt.x);
        
xSchungEndeDistance streckeX_num/3;
        
xVersatz_num streckeX_num/1000;
            
        
drawBullet();
            
        
this.addEventListener(Event.ENTER_FRAMErechneFlugbahn);
        }
        
    private function 
rechneFlugbahn(e:Event):void
    
{
        var 
xDistance Math.abs(startPos_pnt.this.x);
            
        if (
xDistance xSchungEndeDistance) { // Wenn die x distanz > als das 1stes Drittel der gesamt x-Strecke ist, 
            
g_num *= 1.07// die Erdanziehung erhöhen 
            
schwung_num -= g_num// und vom Schwung abziehen
                
            // x position verschieben, nötig für große Entfernungen, y flach sonst zu schnell ab und das Ziel wird nicht erreicht
            
var xDist:Number zPos_pnt.this.x;
            var 
versatz:Number xDist xVersatz_num:-xVersatz_num;
            
zPos_pnt.+= versatz;
        } else { 
// Im ersten Drittel der Flugbahn
            
schwung_num *= g_num// Schwung verringern
        
}
            
        
this.+= (((zPos_pnt.y) - this.y) /10) - schwung_num;
        
this.+= ((zPos_pnt.this.x) /7);
            
        
checkKolision();
    }
            
    private function 
checkKolision():void // e.target = this.ENTER_FREAME
    
{            
        if (
ziel_obj.hitTestObject(this)) {
            
trace('Kolision');
            
this.removeEventListener(Event.ENTER_FRAMErechneFlugbahn);
            
this.parent.removeChild(ziel_obj);
            
this.parent.removeChild(this);
        }
    }

Anhand der Berrechnung von: (xVersatz_num = streckeX_num/1000), dem nötigen Versatz der X-Position der ZielKordinaten bei weiteren Entfernungen, kann man sehen wie 'krüppelig' meine Flugbahn geworden ist. Und überhaup ist die Kurve nicht Optimal.
Ich bin mir sicher das es eine schönere Flugbahn Variante gibt.
Angehängte Dateien
Dateityp: zip Flugbahn.zip (17,7 KB, 8x aufgerufen)
__________________
gruß schnabelmax
schnabelmax 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
dynamische Ballerzeugung (Ballistik) feder ActionScript 1 2 12-06-2006 18:13
Ballistik MX von Madokan Tschdaeff ActionScript 1 0 25-06-2003 20:11


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

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


Copyright ©1999 – 2012 Marc Thiele