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

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-07-2009, 00:29   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 3
Brauche dringend Hilfe zu meinem Spiel

Mittlerweile bin ich wirklich nahe am verzweifeln und hoffe das mir hier jemand weiterhelfen kann.
Ich muss ein Spiel als Studienarbeit machen und das mit As3.
Jetzt habe ich ein paar Probleme, das erste wäre was muss ich programmieren, damit mein Floomy nicht vom linken und rechten Bildschirmrand verschwindet? Bei meinem Actionscript soll das die function grenze() sein. Dann möchte ich programmieren, das die Schokolade nur sehr selten auftaucht, wollte das mit einer if-Anweisung machen indem ich das ergebnis auf bestimmte Punktewerte setze, hat aber irgendwie nicht bei mir geklappt>__<
Und das letzte Problem ist, das auch die Objekte welche runterfallen aus der Sichtfläche verschwinden und teilweise zu simultan herunterfallen.

Hoffe mir kann jemand helfen, ich flehe euch an. Bin einfach nur noch verzweifelt so kurz vor Prüfungszeit und Abgabetermin >___<

als link der zip.Ordner vom Spiel, zum visualisieren
http://rapidshare.com/files/253594439/GD_Spiel.rar.html

hier mein bisheriger Code in der Ebene Script:

var bewegung="";
var SPEED=5;
var tempo="";
var ergebnis=0;
var grenzerechts = 620;
var grenzelinks = 0;

var s:Sound = new Sound(new URLRequest("Sweet Home.mp3"));
s.play(0,int.MAX_VALUE);



stage.addEventListener(KeyboardEvent.KEY_DOWN, RichtungGeben);
stage.addEventListener(KeyboardEvent.KEY_UP, RichtungStop);
stage.addEventListener(Event.ENTER_FRAME, onDraw);

function onDraw(e)
{
if (bewegung=="left")
{
this.Floomy.x-=SPEED;
}
if (bewegung=="right")
{
this.Floomy.x+=SPEED;
}

//essen_Bonbon
if (this.Floomy.hitTestObject(this.bonbon))
{
var punkte_B=10;
ergebnis+=punkte_B;
this.punkteanzeige.text="Punkte: "+" "+ergebnis;
bonbon.gotoAndPlay(1);
}

//essen_Lutscher
if (this.Floomy.hitTestObject(this.lutscher))
{
var punkte_L=40;
ergebnis+=punkte_L;
this.punkteanzeige.text="Punkte: "+" "+ergebnis;
lutscher.gotoAndPlay(45);
}
//essen_Schokolade
if (this.Floomy.hitTestObject(this.schoki))
{
var punkte_S=100;
ergebnis+=punkte_S;
this.punkteanzeige.text="Punkte: "+" "+ergebnis;
schoki.gotoAndStop(140);
}
}
/*
//essen_Zuckerstange
if (this.Floomy.hitTestObject(this.stange))
{
var punkte=60;
ergebnis+=punkte;
this.punkteanzeige.text="Punkte: "+" "+ergebnis;
stange.gotoAndPlay(1);
}

//essen_
if (this.Floomy.hitTestObject(this.___________))
{
var punkte=-50;
ergebnis+=punkte;
this.punkteanzeige.text="Punkte: "+" "+ergebnis;
_________.gotoAndPlay(1);
}
}

//bei einer gewissen Punktezahl werden die Objekte schneller
function tempo (this.punkteanzeige)
{
if(ergebnis >= 1000 && ergebnis <2000)
{

}*/




function RichtungStop(evt:KeyboardEvent)
{
bewegung="";
}
function RichtungGeben(evt:KeyboardEvent)
{
if (!bewegung=="") return;

if (evt.keyCode==Keyboard.LEFT)
{
bewegung="left";
this.Floomy.gotoAndPlay(16);

}
if (evt.keyCode==Keyboard.RIGHT)
{
bewegung="right";
this.Floomy.gotoAndPlay(1);
}

function grenze()
{
if(this.Floomy._x>grenzerechts || this.Floomy._x<grenzelinks)
{
this.Floomy.stop();
}

else
{
this.Floomy.RichtungGeben();
}

}
}
nipponcrown ist offline   Mit Zitat antworten
Alt 14-07-2009, 00:32   #2 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 3
brauche immernoch hilfe

Wer wirklich sehr hilfreich, wenn mir jemand weiterhelfen könnte, da ich schon mehrere Stunden/Tage in Google investiert habe und einfach nicht auf die Lösung komme.
Hab schon so viele Varianten probiert aber immer läuft mein Vieh aus der Bühnenbegrenzung raus.
Die Bühne selber ist angelegt in einer Breite von 620px und die Höhe in 400px. Ich versteh ja auch was ich übermitteln möchte, sprich, wenn die xKoordinate von Floomy <= dem linken Bühnenrand ist, soll die Bewegung von Floomy stoppen und wenn die xKoordinate von Floomy >=dem rechten Bühenrand ist, soll ebenfalls die Bewegung stoppen. Aber wo lege ich die Bühenränder fest? Mit stage.stageWidht oder so funktioniert das nicht, dann hab ich gelesen, das man die Bühne gar nicht auf die Art begrenzen kann.
Bitte hilft mir jemand weiter.

Momentan sieht der Code, der das tun sollte, so aus:

function RichtungGeben(evt:KeyboardEvent)
{
if (!bewegung=="") return;

if (evt.keyCode==Keyboard.LEFT)
{
if (this.Floomy.x>=40)
{
bewegung="left";
this.Floomy.gotoAndPlay(16);
}
}
if (evt.keyCode==Keyboard.RIGHT)
{
if(this.Floomy.x<=570)
{
bewegung="right";
this.Floomy.gotoAndPlay(1);
}

}
}
nipponcrown ist offline   Mit Zitat antworten
Alt 14-07-2009, 08:44   #3 (permalink)
Neuer User
 
Benutzerbild von mohj
 
Registriert seit: Jan 2009
Beiträge: 423
Hallo

Erstell eine weitere if Schleife, welcher die aktuelle x Position überprüft.
PHP-Code:
    if (bewegung=="left")
    {
        
this.Floomy.x-=SPEED;
        if(
Floomy.<= 0Floomy.0;
    }
    if (
bewegung=="right")
    {
        
this.Floomy.x+=SPEED;
        if(
Floomy.>= stage.stageWidth Floomy.widthFloomy.stage.stageWidth Floomy.width;
    } 
mohj ist offline   Mit Zitat antworten
Alt 14-07-2009, 15:44   #4 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 3
aaaaaaaah vielen lieben Dank, es funktioniert *freu*
Danke danke danke^^
nipponcrown 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:12 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele