Dynamisches C++ Schulprojekt [Hilfe gesucht!]



  • kleiner Tipp: mit google findet man Hunderte von guten Tutorials - gerade zu so grundlegenden Themen wie Arrays. Hier nur das erstbeste, was ich gefunden habe:
    [url] http://www.informit.de/books/c++21/data/kap12.htm [/url]

    und wie gesagt: [url] www.google.de [/url]



  • Nun habe ich mal an unserem projekt weitergearbeitet und bin dank euch auch schon einige schritte weiter gekommen - DANKE!

    ich habe es geschaft dank jo eine korrekte kollisionsabfrage zu erstellen. auch eine timer-funktion (stoppuhr) wurde erstellt. Alles super.

    Jedoch hab ich als anfänger jetzt noch folgendes problem:
    ich wollte fuer die punkteberechnung zusatzpunkte einbringen... (bonus-punkte)
    Diese soll ein player bekommen, wenn er an einer bestimmten stelle ist. Ist ja auch soweit kein problem. ich dachte mir das so:

    int Bonus;
    Bonus=StrToInt(Label11->Caption);
    if(Image1->Top>300)
     {
     Bonus = Bonus + 100;
     }
    Label11->Caption=IntToStr(Bonus);
    

    Gehen tut das auch. Ich finde nur kein ereignis zu dem ich diese funktion hinzufügen könnte. wenn ich es zu onkeypress mache, zählt er jedesmal, wenn die if bedingung wahr ist 100 dazu bei einem tastendruck. wenn ich es in einen timer einbinde zählt er mit seiner intervall-geschwindigkeit solange hinzu, bis die bedingung nicht mehr wahr ist.
    das bringt mir leider nicht so viel. ich will, dass nur EINMAL 100 dazu gezählt werden...

    vielleicht hat ja jemand ne lösung, wäre super!

    Des weiteren mache ich mir gedanken, wie wir am besten die map so abdecken, damit man nicht sehen kann, wo man hinlaufen muss. also ähnlich wie bei age of empires ein schatten einbauen. nur, wie man das am besten realisiert - kein plan 😞

    vielleicht weiss ja jemand, wie ich per code scrollen kann... oder sowas!

    wer da ne idee hat - waere auch super!!

    Hier ist mein bisheriges projekt:
    http://www.rza-clan.cnpro.de/jp-th/programmieren.rar

    [ Dieser Beitrag wurde am 06.02.2003 um 20:36 Uhr von MiG editiert. ]



  • if(Image1->Top>300)
    {
    Bonus = Bonus + 100;
    }

    bedeutet wenn Top größer 300. D.h. solange Top größer 300 ist zähle 100 zum Bonus dazu. Von daher muss es lauten

    if(Image1->Top == 300)
    {
    Bonus = Bonus + 100;
    }

    wobei du da dann noch einbauen musst das man ihn nur einmal beim 300 erreichen bekommt, sowas wie

    if(Image1->Top == 300 && Bonusgeben == false)



  • Am besten auch so machen das jeder dein Programm starten kann, sprich
    Unter Projekt->Optionen

    dort unter Packages "Mit Laufzeitpackages compilieren" deaktivieren und unter "Linker" Dynamische RTL verwenden DE!!aktivieren



  • ah, genau das hab ich gesucht

    Bonus==false
    


  • @ Helfender

    die funktion hab ich bereits auch schon gesucht! hab nur leider die englische version und finde den eintrag im packages ordner nicht 😞



  • Das zweite Häckchen von unten bei Packages deaktivieren 🙂 !



  • denke habs jetzt geschaft. hab auch gleich die neue version aufn server geladen

    Link: http://www.rza-clan.cnpro.de/jp-th/programmieren.rar



  • Geht immer noch nicht, du musst noch was deaktivieren.
    Auf jeden Fall kannst du Code sparen indem du ein paar der schwarzen Images einsparst, mit wenigern kannst du genau den gleichen Effekt erzielen.
    Z.B. Unten links neben dem Ziel, da brauche ich nur 3 Timages, anstatt 5.



  • Original erstellt von MiG:
    **der meint:
    'TForm1::Kollisionsabfrage(AnsiString Art)' is not a member of TForm1
    **

    wie wärs mit eintragen in die header Datei



  • woar mach da mal double buffering rein is ja übel 😮 😮 😮



  • Mh. Komsich.

    Ich hatte die gleiche Frage (Kollisionsabfrage) gestellt und keine so qualifizierten Beiträge bekommen *g*

    Aber Mig in meiner Klasse ist, nur ne andre Gruppe, hab ich das alles ja mitbekommen.

    Wir hatten aber schon vorher ne eigene Lösung gefunden. Ohne Extra Funktion. Wenn das Image an eine Bestimme Linie kommt, wird die Taste in der richtung gesperrt, die man nicht mehr weiterlaufen darf.

    if(x<=100 && x>=50 && y==120=
    {
    stop[0]=1;
    }
    
    switch(Key)
    {
    case 'w': if(stop[0]!=0)
    {
    Image....
    }
    

Anmelden zum Antworten