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

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-11-2006, 12:46   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 23
Wie macht man das?

Vieleicht kann mir ja wer weiterhelfen und zwar wie wurde dieses Spiel gemacht:
http://bm.zuloo.de/Jump2.html

-im Bezug auf den Boden; wie macht man solche Linien (die ja gezeichnet aussehen) bzw. wie macht man es, dass die Figur immer auf den Linien steht bzw. geht.

Die Linien müssen ja dann dementsrpechen nach links oder rechts verschoben werden, wenn sich die Figur bewegt...oder wird das in diesem Fall anders gemacht?

Für Tipps wäre ich sehr dankbar!
GreatOne ist offline   Mit Zitat antworten
Alt 16-11-2006, 14:04   #2 (permalink)
-
 
Registriert seit: Jul 2003
Beiträge: 714
Evtl. hilft dir der Thread:

BMX Spiel

PS: Das nächste mal vllt. einen aussagekräftigeren Titel verwenden
messingfeld ist offline   Mit Zitat antworten
Alt 16-11-2006, 20:10   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 23
Zitat:
Zitat von messingfeld Beitrag anzeigen
Evtl. hilft dir der Thread:

BMX Spiel

PS: Das nächste mal vllt. einen aussagekräftigeren Titel verwenden
thx, das Beispiel kenn ich schon - hätte jedoch nicht gedacht, dass die Linien mit dieser Methode gezeichnet wurden, da sie so "wellig" ausschaun.


ABER das ist ja das Problem: wie kann ich den die dynamisch gezeichneten Linien von diesen BMX-Bsp. scrollen, wenn sich meine Figur bewegt?



---
Zum Titel, wie hätt ich den denn benennen sollen? "Wie macht man einen Boden und scrollt ihn dann" wäre auch nicht viel besser, oder?
GreatOne ist offline   Mit Zitat antworten
Alt 16-11-2006, 20:15   #4 (permalink)
Neuer User
 
Benutzerbild von _crypto_
 
Registriert seit: Mar 2006
Beiträge: 1.573
das einzigst wichtige ist eig:
PHP-Code:
while(level.hitTest(player._x,player._y,true)) {
    
player._y--;
    
speedY 0;

und das level kannste dann ganz gemütlich malen. schauste anhang:
Angehängte Dateien
Dateityp: rar Desktop.rar (7,0 KB, 19x aufgerufen)
__________________

Currently working on:

- --- ---

-----------------------------------------------------------------
ActionScript 3.0, C++, Java, Delphi
_crypto_ ist offline   Mit Zitat antworten
Alt 16-11-2006, 21:22   #5 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 23
Also ich hab jetzt grad meinen Boden umrahmt!
Schaut euch doch mal bitte meinen Quelltext an:
PHP-Code:
// Array für die Linienobjekte
var linien = [];
// Erstellt für jede Linie ein Objekt
function Linie(xStartyStartxEndeyEnde) {
    var 
= new Object();
    
l.xStart xStart;
    
l.yStart yStart;
    
l.xEnde xEnde;
    
l.yEnde yEnde;
    
// Steigung ausrechnen
    
l.= (l.yEnde-l.yStart)/(l.xEnde-l.xStart);
    
//
    
linien.push(l);
}
//
// Zeichnet die Linien
// DIES IST NICHT NÖTIG
function zeichnen(arr) {
    
clip this.createEmptyMovieClip("Linien"1);
    
clip.lineStyle(40x000000100);
    for (var 
0arr.lengthi++) {
        
clip.moveTo(arr[i].xStartarr[i].yStart);
        
clip.lineTo(arr[i].xEndearr[i].yEnde);
        
    }
    
clip.swapDepths(-1);
}

// starten
function startBMX() {
    
// Die einzelnen Linien
    // xStart, yStart, xEnde, yEnde
    
Linie(0190300190);
    
Linie(300190430140);
    
Linie(430140480140);
    
Linie(480140490150);    
    
Linie(490150550157);
    
Linie(550157585190);
    
Linie(585190710190);
    
    
//
    // zeichne die Linien
    
zeichnen(linien);
    
}
startBMX();


//********************************
//*****Mein eigentlicher Code*****
//********************************

gotoAndStop(2);

var 
anzahl 6//6 Kugeln in der Pistole
var barrikade false;
var 
gravi 0;
var 
yspeed 10;
var 
xspeed 10;
var 
kollSoundPlaying false;
_root.run false;
var 
links false;
var 
linksgesetzt false;

//Soundobjekte erzeugen
_root.kollSound = new Sound(_root);
_root.reloadSound = new Sound(_root);
//Anhängen der Soundfiles
_root.kollSound.attachSound("Colt.45.mp3");
_root.reloadSound.attachSound("Colt.45 Reload.mp3");


this.onEnterFrame = function() {
    
    
jack._y += gravi;
        
//Schüsse bei drücken der Strg-Taste
if (Key.isDown(Key.CONTROL)&& _root.kollSoundPlaying == false && anzahl 0) {

       
//Sound starten f. Pistole
    
_root.kollSound.start();
    
//Globaler Flag auf true
    
_root.kollSoundPlaying true;
    
//Erst wenn der Sound fertig abgespielt wurde, kann Jack wieder feuern
    //Das unterbindet Dauerfeuersalven u. überschneidende Sounds.
    
_root.kollSound.onSoundComplete = function() {
    
kollSoundPlaying false;
    }
    
jack.gotoAndPlay("shoot");        
    
anzahl--;
    
//Instanzname erzeugen - das müssen wir machen, weil wir einen als
    //Parameter bei attachMovie brauchen
    
var name "kugel"+anzahl;
    
//Erzeugen der Instanz des Balles
    
var clip this.attachMovie("kugel"nameanzahl);
    
//Positionieren der Kugel wenn Jack nach links od. rechts geht bzw. springt
    
if (links) {
        
_root.jack._xscale 100;
        if (
Key.isDown(Key.UP)) {
            
clip._x jack._x 70;
            
clip._y jack._y 20;
            }
//Ende if Key.UP
        
else{
            
clip._x jack._x 75;
            
clip._y jack._y 17;
            }
//Ende else->stehen
    
}//Ende if links
    
else{
        if (
Key.isDown(Key.UP)) {
            
clip._x jack._x 70;
            
clip._y jack._y 20;
            }
//Ende if Key.UP
        
else{
            
clip._x jack._x 75;
            
clip._y jack._y 17;
            }
//Ende else->stehen
    
}//Ende f. else -> Key.RIGHT rennen u. springen
    
    //"Geschwindigkeit" ausrechnen u. in lokale Variable speichern
    
clip.xBew 20;
    
clip.yBew 0;
    
//Skript an Ball hängen
    
clip.onEnterFrame = function() {
        
        
clip._x += this.xBew;
        
clip._y += this.yBew;
        
//Die Reichweite der Waffe soll 400px sein, dann wird die Kugel entfernt
        
if ((clip._x jack._x) > 400) { 
        
this.removeMovieClip();
        }
//Ende if Reichweite
    
}//Ende onEnterFrame
}//Ende if CTRL is down

//Nachladen NUR wenn er keine Kugeln mehr im Magazin hat
if (Key.isDown(Key.TAB) && (anzahl == 0)) {
    
_root.reloadSound.start();
    
_root.jack.gotoAndPlay("reload");
    
anzahl 6;
}

//Die Variable run soll nur gesetzt werden, wenn entweder die Taste "Links" od.
//d. Taste "Rechts" gedrückt wird
if (Key.isDown(Key.RIGHT) || Key.isDown(Key.LEFT)) {
//Wenn dies der Fall ist, dann sollen die Jack-Frames f. "run" abgespielt werden.
    
if (_root.jack._currentframe == 1_root.jack.gotoAndPlay("run");
                
        
//Nach Rechts gehen
        
if (Key.isDown(Key.RIGHT)) {
            
_root.jack._xscale 100;
            
links false;
            if (!
barrikade){
            
//scrollen nach rechts
            
boden._x = (boden._x 8);
            if (!
run) {
                
run true;
                }
//Ende if !run
            
}//Ende if !barrikade
    //Wenn Jack an ein Hindernis stößt verliert er Leben an der health-Anzeige
    //u.die var barrikade wird true somit kann er nicht weiterlaufen
            
for (i=1i<=4i++) {
                if (
jack.hitTest(_root["berg"+i]) ) {
                
barrikade true;
                
_root.health._xscale -= 5;
                if (
_root.health._xscale == 0trace("GameOver");
                if (
barrikade) return;
                } 
// end if hittest
                
_root["berg"+i]._x -= 8;
            } 
// end for
            
barrikade false;
        }
//Ende if nach Rechts gehen
        
        //Nach Links gehen
        
if (Key.isDown(Key.LEFT)) {
            
_root.jack._xscale = -100;
            
links true;
            if (!
barrikade){
            
//scrollen nach links
            
boden._x = (boden._x +8);
            if (!
run) {
                
run true;
                }
//Ende if !run
            
}//Ende if !barrikade
    //Wenn Jack an ein Hindernis stößt verliert er Leben an der health-Anzeige
    //u.die var barrikade wird true somit kann er nicht weiterlaufen
            
for (i=1i<=4i++) {
                if (
jack.hitTest(_root["berg"+i])) {
                
barrikade true;
                
_root.health._xscale -= 5;
                if (
_root.health._xscale == 0trace("GameOver");
                if (
barrikade) return;
                }
//Ende if hittest
                
_root["berg"+i]._x += 8;
            } 
// end for
            
barrikade false;
        } 
// end if nach Links gehen
}// end if gesamt rechtslinks
//Wenn jack weder links noch rechts drückt, ist "run" false u.d. 1 Frame gezeigt.
else {
 
_root.run false;
 
_root.jack.gotoAndStop(1);
}

//Springen
    // Wenn Key.UP gedrückt ist, Springen=false und Gravitation ungleich -15
    
if(Key.isDown(Key.UP) && !springen && gravi != -16){
        
jack.gotoAndPlay(5);
        
gravi-=4;
        }    
    else {
    
/* Solange Jack in der Luft ist wird die Gravitation erhöht und 
       Springen = true; damit in der Luft nicht gesprungen werden kann */
    
if(jack._y 96){
        
jack.gotoAndPlay(5);
        
gravi+=4;
        
springen true;
        }
    
// Wenn Kugel am Boden Gravitation = 0 und Springen = false
    
else {
        
gravi 0;
        
springen false;
        }
    
    if (
Key.isDown(Key.CONTROL)) {
        
jack.gotoAndStop("shoot"); 
        }
      }
    
//Ducken
if (Key.isDown(Key.DOWN)) {
    if (
Key.isDown(Key.CONTROL)) {
        
jack.gotoAndStop("shoot"); 
        }
    else {
        
jack.gotoAndStop("duck");
        if (
Key.isDown(Key.RIGHT) || (Key.isDown(Key.LEFT)))  jack.gotoAndPlay("stehen");
    }    
  }

Wie mache ich das jetzt das die Linien mitscrollen und das meine Figur immer auf den Linien geht?
GreatOne ist offline   Mit Zitat antworten
Alt 16-11-2006, 21:23   #6 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 23
Zitat:
Zitat von _crypto_ Beitrag anzeigen
das einzigst wichtige ist eig:
PHP-Code:
while(level.hitTest(player._x,player._y,true)) {
    
player._y--;
    
speedY 0;

und das level kannste dann ganz gemütlich malen. schauste anhang:
thx, für das Bsp., das werd ich mir auch gleich anschauen!
GreatOne ist offline   Mit Zitat antworten
Alt 16-11-2006, 21:51   #7 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 23
@_crypto_ das ist genau das was ich eigentlich brauche!!!


Kannst du mir auch weiterhelfen, wie ich diesen Part
PHP-Code:
while(level.hitTest(player._x,player._y,true)) {
    
player._y--;
    
speedY 0;

bei meinem oben stehenden Quelltext einbauen muss?

Denn ich hab, dass alles etwas anders gemacht z.B: mit einer Variabel "gravi" usw., deshalb bin ich ein wenig verwirrt
GreatOne ist offline   Mit Zitat antworten
Alt 17-11-2006, 09:16   #8 (permalink)
-
 
Registriert seit: Jul 2003
Beiträge: 714
Zitat:
Zitat von GreatOne Beitrag anzeigen
Zum Titel, wie hätt ich den denn benennen sollen? "Wie macht man einen Boden und scrollt ihn dann" wäre auch nicht viel besser, oder?
z.B. "Orientierung eines Objektes anhand von Linien (unebener Boden)"

Manche können es halt und andere nicht.
messingfeld ist offline   Mit Zitat antworten
Alt 17-11-2006, 16:04   #9 (permalink)
Neuer User
 
Benutzerbild von _crypto_
 
Registriert seit: Mar 2006
Beiträge: 1.573
warum machst dus es denn weiterhin mit as das level. mal es doch selber dan reicht das script von mir doch vollkommen aus.

das gravi ist gleichzusetzen mit mienem speedY.

ansonsten muss du eig nur das "level" durch Linien ersetzen, halt den MC der die linien beinhaltet und das palyer eben durch deine figur.
__________________

Currently working on:

- --- ---

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

Geändert von _crypto_ (17-11-2006 um 16:06 Uhr)
_crypto_ ist offline   Mit Zitat antworten
Alt 17-11-2006, 16:33   #10 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 23
Zitat:
Zitat von _crypto_ Beitrag anzeigen
warum machst dus es denn weiterhin mit as das level. mal es doch selber dan reicht das script von mir doch vollkommen aus.

das gravi ist gleichzusetzen mit mienem speedY.

ansonsten muss du eig nur das "level" durch Linien ersetzen, halt den MC der die linien beinhaltet und das palyer eben durch deine figur.
Das Problem ist einfach, dass ich auf gut deutsch "auf der Leitung stehe!"

Ich würde ja gerne meine fla posten, aber mein Webspace ist zur Zeit offline und
für hier ist sie zu groß (~150-200kb)!
Ich schau´s mir jetzt nochmal an...
GreatOne ist offline   Mit Zitat antworten
Alt 18-11-2006, 14:39   #11 (permalink)
Neuer User
 
Registriert seit: Apr 2006
Beiträge: 23
Soo, ich habs doch noch zusammengebracht
Also nochmal danke für den Tipp!
GreatOne 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:07 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele