C# - Hilfe benötigt :/

Hallo alle miteinander.

Ich hoffe, ich kann meinen Beitrag hier posten und vll zukünftig öfter hier nachfragen. Von der Berufsschule aus habe ich nämlich Unterricht im Fach Anwendungsentwicklung und ich merke gerade, dass mir das eigtl ziemlich viel Spaß macht. :slight_smile:
Bin aber totaler Neuling auf dem Gebiet.

Als Programmiersprache nutzen wir C#, was einen ganz hübschen Eindruck macht.

Unsere Aufgabe ist es, eine Picturebox (picChuck in meinem Projekt (habe ein kleines Chuck Norris-Bild genommen) im Fenter mittels eines Timers (tmrChuck) hin- und herfliegen zu lassen - zunächst nur waargerecht.
Bei einem Klick auf picChuck soll sich die Geschwindigkeit erhöhen und der Treffer gezählt werden.

Die Treffer werden gezählt, das habe ich ohne Probleme hinbekommen. Grundsätzlich funktioniert auch die Bewegung: Zunächst langsam, bis zum Fensterrand, von dort aus wieder zurück. Wenn man nun auf picChuck klickt, erhöht sich auch die Geschwindigkeit. Aber nur bis zu einem gewissen Punkt (?), dann wird picChuck mit jedem Klick etwas langsamer und geht wieder in die andere Richtung…

Hier der Code, der für die Bewegung u. für die Erhöhung der Geschwindigkeit zuständig ist:

// Deklarierte Variablen
        int geschwindigkeit = 0;
        int Hits = 0;

// Bewegung im Timer
        private void tmrButton_Tick(object sender, EventArgs e)
        {
            picChuck.Left += geschwindigkeit;

            if ((picChuck.Left<0)||(picChuck.Left>this.ClientRectangle.Width-picChuck.Width))
            {
                geschwindigkeit =- geschwindigkeit;
            }

        }

//Zählen der Klicks + Erhöhung der Geschwindigkeit
        private void picChuck_MouseDown(object sender, MouseEventArgs e)
        {
            geschwindigkeit = geschwindigkeit + 2;
            Hits = Hits + 1;
            lblHits.Text = "Klicks:" + Hits.ToString();
        }

Heute in der Schule, half mir ein Klassenkamerad mit einer anderen Lösung für die Bewegung. Leider weiß ich diese nicht mehr… :neutral_face:

Ich hoffe sehr, dass ihr alles wichtige verstanden habt und dass ihr mir helft. :slight_smile:
Hatte nämlich keine Lust mich in einem Coder-Forum anzumelden und ich hab’ euch bplaced-Leute sehr positiv in Erinnerung. :wink:

Gruß
Sascha

if(geschwindigkeit > 0)
{
	geschwindigkeit += 2;
}
else
{
	geschwindigkeit -= 2;
}

Das Problem ist, das du auch dann 2 addierst, wenn die Geschwindigkeit negativ ist. (Dabei wird der absolute Betrag wieder kleiner.)

Kopf meets Tischplatte. Klar, logisch. o.0

Jetzt funktioniert es, vielen Dank! Kann ich weitermachen, yeah! :smiley:

Hallöchen,

wieder benötige ich etwas Hilfe. Ich möchte einen Taschenrechner programmieren, der wie der Windows Taschenrechner funktioniert. Also die Zahlen sollen über Buttons in einer Textbox erscheinen.
Ein simples textboxname.Text = "1"; würde da natürlich nicht funktionieren.
Ist bestimmt eine ganz einfache Sache, ich kenne halt nur den Code noch nicht. :wink:

Wenn das nun funktionieren sollte, tut sich eine neue Schwierigkeit auf. Nämlich: Wie kann man mehrere Zahlen hintereinander ausrechnen?
Meine Idee wären zwei unsichtbare Labels, die addiert oder whatever werden und sich eines nach jedem Buttonklick löscht. Ist aber eine komischer Lösungsansatz, wie ich finde. Das geht doch sicher besser.

Ich hoffe, ihr könnt/wollt mir helfen! :slight_smile:

wenn du schon was benötigst um nicht Sichtbar Daten zu speichern dann doch bitte eine variable^^
Aber dir helf ich net :stuck_out_tongue: C# ist murks^^ .net taugt leider absolut nichts auch wenn es einfacher ist als C++ oder gar Assembler. Ich habe gerne die Kontrolle über mein Programm auch wenn es dann bisschen mehr Arbeit macht. Auch halte ich nicht viel von Ressourcen Verschwendung. Mir ist schon klar das C++ da nicht viel anders ist als C# aber es ist nicht ganz so protzig.