Funktionen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Bassmaster

Betreff: Funktionen

BeitragMo, Jan 14, 2008 22:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ich versuche gerade dieses Programm in eine Funktion zu packen

aber der meint immer "Function can only appear in main program"

Aber wo is hier jetzt das main programm

Code: [AUSKLAPPEN]

Graphics 640, 480 , 32, 0

SetBuffer BackBuffer()


; Bilder laden.

Global stars = LoadImage("stars.png") ; Sterne
Global runner = LoadAnimImage ("runner.png", 48,56, 0, 12) ;figur
Global runner2 = LoadAnimImage ("runner2.png", 48,56, 0, 12) ;figur
test()



Local frame,player_pos_x,WarteZeit

MaskImage runner ,102,0,102

While Not KeyHit(1)
Cls


TileImage stars, x_star, 1
DrawImage runner, player_pos_x, 420, frame



If MilliSecs()-WarteZeit=>100 Then
frame=frame+1    ;damit kann man bestimmen wie schnell die figur z.b. laufen soll

If frame=12 Then frame=0
WarteZeit=MilliSecs()

EndIf


x_star = x_star - 3
If x_star = 201 Then x_star = 1


Function test()

If KeyDown(203) Then player_pos_x=player_pos_x-2 ;-->Links
If KeyDown(205) Then player_pos_x=player_pos_x+2 ;-->Rechts

End Function


Flip   
Wend



Irgendwie fällt mit BB schwerer als C++ hab ich so das Gefühl. Denn bei c++ da sieht man sofort was wozu gehört das kann doch eigentlich in BB net viel schwerer sein -.-

Hier z.b. ein altes Programm von mir sollte mal ein Text Adventuer werden aber habe ich nie zu ende gemacht und da müsste man auch noch eine menger verbessern und ändern. ^^
Code: [AUSKLAPPEN]

#include <iostream>
using namespace std;

class spiel
{
private:
int start;

public:
int begin();

};
// definiton der memberfunktionen für die klasse spiel


int spiel::begin()
{
cout<<"(1) Spiel starten\n";
cout<<"(2) Spiel Beenden\n";
cout<<"\n";
cout<<"Nummer eingeben: ";
cin>>start;
return start;
}


//---------------------------------------------------------------------------

class wohin_gehen
{
private:
int da_hin_gehen;

public:
umgebung();

};



int wohin_gehen::umgebung()
{
system("CLS");
cout<<"Wohin wollt ihr gehen? \n";
cout<<"\n";
cout<<"(1) Wald\n";
cout<<"(2) Stadt\n";
cout<<"(3) Dorf\n";
cout<<"\n";
cout<<"Nummer: ";
cin>>da_hin_gehen;


return da_hin_gehen;
}

//---------------------------------------------------------------------------

class landschaft
{

private:


public:
int wald();
// int stadt(); //
// int dorf(); //


};

int landschaft::wald()
{
cout<<"Du bist im Wald\n";
return 0;
}






//---------------------------------------------------------------------------

int main()
{

spiel r;

int start = r.begin();

        if (start==1)
        {
          wohin_gehen r;

           int da_hin_gehen=r.umgebung();
                if (da_hin_gehen==1)
{
        system("CLS");
          landschaft r;
           r.wald();

           }

}




fflush(stdin);
getchar();
}



wofür der c++ source code das einer weiß wie ich denke wenn ich den BB source code sehe bevor wieder wer meint flamen zu müssen .....[/code]
 

ChristianK

BeitragMo, Jan 14, 2008 22:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Du solltest deinen Code mit Tab einrücken, dann siehst du, was zusammen gehört. Die Funktion steht nämlich in deiner Hauptschleife, sie muss aber außerhalb davon sein ( am besten am Anfang oder Ende des Programms, das ist am übersichtlichsten ).
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

Bassmaster

BeitragMo, Jan 14, 2008 22:47
Antworten mit Zitat
Benutzer-Profile anzeigen
ok thx die Fehlermeldung ist zwar weg aber dafür hab ich jetzt einen logischen Fehler drin Crying or Very sad

wieso will den nu die Figur nicht mehr laufen. Ich werd noch wahnsinning damit Shocked

Code: [AUSKLAPPEN]

;funktionen 
Function test()

If KeyDown(203) Then player_pos_x=player_pos_x-2 ;-->Links
If KeyDown(205) Then player_pos_x=player_pos_x+2 ;-->Rechts

End Function



Graphics 640, 480 , 32, 0
SetBuffer BackBuffer()


; Bilder laden.

Global stars = LoadImage("stars.png") ; Sterne
Global runner = LoadAnimImage ("runner.png", 48,56, 0, 12) ;figur
Global runner2 = LoadAnimImage ("runner2.png", 48,56, 0, 12) ;figur



   Local frame,player_pos_x,WarteZeit

   MaskImage runner ,102,0,102

   While Not KeyHit(1)
   Cls


TileImage stars, x_star, 1
DrawImage runner, player_pos_x, 420, frame




   If MilliSecs()-WarteZeit=>100 Then
   frame=frame+1    ;damit kann man bestimmen wie schnell die figur z.b. laufen soll
   
   If frame=12 Then frame=0
   WarteZeit=MilliSecs()
   
   EndIf


x_star = x_star - 3
If x_star = 201 Then x_star = 1


test()

Flip   
Wend



[/code]
 

ChristianK

BeitragMo, Jan 14, 2008 22:49
Antworten mit Zitat
Benutzer-Profile anzeigen
"player_pos_x" muss Global sein, damit man den Wert mit einer Funktion verändern kann.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

Bassmaster

BeitragMo, Jan 14, 2008 22:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo jetzt gehts endlich.

THX Smile
 

Dreamora

BeitragDi, Jan 15, 2008 5:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Vergleich mit C++ hinkt hier ein wenig finde ich ... wer C++ kann und solche Fehler nicht sieht sollte die erste Aussage revidieren. Selbst wenn er nur behauptet die Grundzüge von C++ zu kennen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group