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

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-06-2006, 23:41   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 6
point and click adventure game

hallo,
ich sitze gerade in den anfängen der entwicklung eines adventure-games. und schon tauchen probleme auf, und zwar:
ich möchte, dass die figur (halt in klassischer click and point manier) sachen anschauen, nehmen, benutzen etc. kann. am sinnvollsten wäre das doch mit einer if-else schleife, oder?
im ersten schlüsselbild habe ich die befehl definiert:
gehezu.onPress = function() {
befehl="gehe zu";
}
usw. klappt auch. wenn ich auf den entsprechenden button klicke, erschent im dynamsichen textfeld "gehe zu"...
auf dem zu betrachtenden/benutzenden etc ding habe ich dann die if-else-schleife gelegt:
on (release) {
if (befehl=="schaue an") {
figur.sprechen="hier liegt ein ding rum";
}
if (befehl=="nimm") {
figur.sprechen="das kann ich nicht nehmen";
}
if (befehl=="benutze") {
figur.sprechen="das kann ich nicht benutzen";
}
else {
figur.sprechen="";
}
}
kann mir einer sagen, warum das nicht klappt? bei den ersten beiden befehlen reagiert er gar nicht, bei dem letzten macht er was er soll, aber der satz verschwindet auch nicht, wenn man wieder woanders draufklickt...

ich hab echt keine idee, und würde mich freuen, wenn mir jemand weiterhilft. auch über tips in richtung adventure-game-tutorials oder engines freu ich mich natürlich. habe gesehen, dass einige hier im forum so etwas in der art schon realisiert haben, vielleicht darf man sich da ja mal den code angucken???

danke und gruss
jöddi
joeddi ist offline   Mit Zitat antworten
Alt 20-06-2006, 07:52   #2 (permalink)
Pharao a.D.
 
Benutzerbild von Tut-ench-aton
 
Registriert seit: Jul 2004
Ort: 29°58'33.34'' N, 31°07'49.29'' O
Beiträge: 430
Ich würde mal sagen:
PHP-Code:
on (enterFrame) {
    switch(
befehl){
        case 
"schaue an" figur.sprechen="hier liegt ein ding rum";     break
        case 
"nimm"      figur.sprechen="das kann ich nicht nehmen";   break
        case 
"benutze"   figur.sprechen="das kann ich nicht benutzen"; break
        default          : 
figur.sprechen="";
    }

vorausgesetzt figur.sprechen ist eine textfeldvariable und das Skript liegt überhalb des MovieClips figur.
PS: Ich hab dein Skript mal vereinacht.

Geändert von Tut-ench-aton (20-06-2006 um 07:53 Uhr)
Tut-ench-aton ist offline   Mit Zitat antworten
Alt 20-06-2006, 16:05   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 6
ja danke das funktioniert!
und danke auch für die vereinfachung. ich denk halt irgendwie (noch) nicht in as-sprache...
gruss
jöddi
joeddi ist offline   Mit Zitat antworten
Alt 23-06-2006, 15:27   #4 (permalink)
gebrauchter user
 
Registriert seit: Jul 2001
Ort: Austria
Beiträge: 200
Zitat:
Zitat von joeddi
am sinnvollsten wäre das doch mit einer if-else schleife, oder?
im ersten schlüsselbild habe ich die befehl definiert:
gehezu.onPress = function() {
befehl="gehe zu";
}
usw. klappt auch. wenn ich auf den entsprechenden button klicke, erschent im dynamsichen textfeld "gehe zu"...
auf dem zu betrachtenden/benutzenden etc ding habe ich dann die if-else-schleife gelegt:
on (release) {
if (befehl=="schaue an") {
figur.sprechen="hier liegt ein ding rum";
}
if (befehl=="nimm") {
figur.sprechen="das kann ich nicht nehmen";
}
if (befehl=="benutze") {
figur.sprechen="das kann ich nicht benutzen";
}
else {
figur.sprechen="";
}
}
kann mir einer sagen, warum das nicht klappt? bei den ersten beiden befehlen reagiert er gar nicht, bei dem letzten macht er was er soll, aber der satz verschwindet auch nicht, wenn man wieder woanders draufklickt...
jöddi
gleich einmal vorweg - if else ist keine schleife.
du hast ein paar ifs und einmal if - else, damit werden vorher mal die ifs behandelt und am schluss noch die if-else bedingung, deren resultat du dann wahrscheinlich am bildschirm siehst.
du müsstet schreiben
if(..)
{
}
else if()
{
}
else if()
{
}
else
{
}

dann wäre deine sytnax vergleichbar mit dem switch-statement und würde auch funktionieren.

ein open source flash adventure hab ich mal irgendwo gesehen,
das war die umsetzung von 6th day assasin.
habs dir hier auf rapidshare hochgeladen -> http://rapidshare.de/files/23890535/6thday_fla.zip.html
ist aber halt auch sehr speziell,

lg
rocco
Rocco 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:23 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele