mein erstes Spiel

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von underground77.

    mein erstes Spiel

    hallo ich bin bei mein erstes Spiel zu machen jedoch brauch ich ein wenig Hilfe undzwar ich bin bei sowas wie Mario zu erstellen aber ich bekomm die Sprünge nicht richtig hin ich möchte das er gerade hoch springt und das man im Flug zu Seite lenken kann, das es auch wie ein Sprung aussieht also das er auch wieder runter kommt xdd naja ich bekomm das einfach nicht hinn bin über jede Hilfe dankbar oder auch über ein kleinen Code .

    danke im Vorraus
    Code geschenkt bekommst Du nicht, da hast Du nichts davon, weil Du ihn nicht verstehst und noch mehr Fragen stellst.
    Nimm einen Timer, spiele am Parameter Interval
    Nimm Die ein Label / TextBox / PictureBox, setze den Parameter Location im Timer-Takt (Event Timer_Tick) auf immer andere Werte.
    Überleg Dir eine Formel, wie Du die Location schön setzen kannst.
    Dann frag wieder.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    so weit bin ich

    so das ist mein code bisher bisher habe ich auch ohne Hilfe gelöst bekommen ich kann verstehen das
    Sie mir nicht ein Source cod schiken werden :( naja ich bin gegen sowas zwar auch weil mit genug Mühe bekommt man alles selber hin naja fast habe das mit springen und so auch schon hin bekommen habe ich aber jetz in cod nicht mit drinn weil der einfach nicht Perfekt gerade hoch Springt und man ihm in der luft beim Springen nicht lenken kann so das er auch wieder runter kommt

    hier cod bisher xdd


    Public Class Form1





    Private Sub Form1_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp

    Timer1.Start()
    Dim p As Point = Person.Location
    Select Case (e.KeyCode)



    Case Keys.Left
    p.X -= 20
    Case Keys.Right
    p.X += 20

    End Select
    Person.Location = p






    End Sub



    End Class


    ja ist noch nicht viel wie gesagt ist mein erstes Game und ich versuch mir soviel wie möglich selbst an zu eignen aber man Lernt auch dürch fertige code weil ich würde das in diesen Fall bevorzugen weil ich mir noch nie mit Games sondern andere Sachen beschäftig habe und bevor ich ein Cod verwende versuch ich zu verstehen wie er funktioniert. Weil ich sowieso mal Informatiker oder sowas in der Art werden will

    mfg: underground77 über jede weitere Hilfe dankbar :)


    :)
    Also erstmal Du sollte im Forum reichen, Sie geht zwar auch muss aber nicht sein ;)
    Dan würde ich dich bitten, dir einmal diese beiden Wikipedia Artikel durch zu lesen.
    Artikel 1, Artikel 2 (Dein Text ist echt schwer zu lesen, so ganz ohne Satzzeichen).
    Als nächtes würd ich dir den VB-Tag ans Herz legen: [vb']DEIN CODE KOMMT HIER ZWISCHEN[/vb] sas macht das ganze schon viel lesbarer.

    Wie unschwer zu erkennen benutzt du das KeyUp Event, um das ganz erstmal recht einfach zu halten, empfehle ich dir hier das KeyDown Event zu nutzen (anstatt gleich auf GetAsyncKeyState zu verweisen).
    Mhhh dein Text um 6:30 zu entschlüsseln ist echt nicht einfach :D

    Als erstes braucht du eine Fläche mit welcher deine Figur kollidieren kann.
    Von dieser Fläche benötigst du den Y Wert, also für eine einfache Kollision ohne Rectangle Intersection.

    Sobald Du diese Information hast, kannst du mit dem Y Wert deiner Figur drauf reagieren, sollte der Y Wert deiner Figur kleiner als der Wert des Bodens (der Fläche) sein ist deine Figur in der Luft.
    Um das ganze halbwegs realistisch außsehen zu lassen, kannst Du einen Beschleinigungs-Wert festlegen, mit welcher sich deine Figur später bewegt.

    Nun legst du noch einen Gravitations-Wert fest mit welchem deine Figur zum Boden (Fläche) gezogen wird.

    Ausgangssituartion:
    - Beschleunigungs-Wert ist = 0
    - Gravitations-Wert ist = -2

    Timer mit einem Intervall von 200

    - Timer.tick macht (WENN Beschleunigungs-Wert > -Gravitations-Wert DANN -> Beschleunigungs-Wert + Gravitations-Wert |UND| Figur.Y = Figur.Y - Beschleunigungs-Wert)
    - Sprung (z.B. Pfeiltaste nach oben im Key-Down Event) macht -> Beschleunigungswert = 8

    Wenn ich nicht ganz verk**** habe, sollte die Figur jetzt schön sprigen.
    Wenn Du jetzt noch möchtest, dass die Figur sich zeitgleich zur Seite bewegt, packst du deinen jetzigen Code mit dazu.
    Aber damit das ganze funktioniert, also das Vb mehre Tastendrücke registriert (z. B. pfeiltaste nach Oben + Unten) brauchst du die Funktion GetAsyncKeyState oder DirectImput!

    So wenn Du Rechtschrieb/Grammatik/Zeichensetzungsfehler findest, darfste behalten lol 8o erstmal ne Runde schlafen.

    PS: Cod ist die Abkürzung für Call of Duty (gerade gegoogelt xD), das was du meinst ist der Code.

    Dadadadauuuumm Dadadadauuuumm ellen pompeo (darf jemand bestimmtes nicht lesen deswegen klein)... danza kuduro

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „Eistee“ ()

    Falls das hier noch nicht gepostet wurde : ich machs so :
    Timer machen , wenn timer tickt abfragen : Ist leertaste(oder ne andere) gedrückt ? Wenn ja ne bool variable auf true setzen. und dann :
    if (springen == true)
    {
    p.Y -= Sprungwert;
    Sprungwert -= gravitation;

    //hier kannste jetzt abfragen ob er wieder den boden berührt, wenn ja dann springen == false
    }

    und du intialisierst noch :

    Sprungwert = 20;
    grav = 2;

    Ich programmiere kein Visual Basic und weiß deswegen nicht ob das so richtig ist vom Code her aber von der Logik auf jeden Fall .
    Mit den werten kannst du etwas rumspielen ich weiß nicht ob die gravitation 2 war oder weniger oder so ...

    Also die Logik ist so :

    Wenn du Leertaste drückst dann wird von der Y-position deiner figur 20 px abgezogen . Die 20 px werden danach um 2 gekürtzt , dann springt er nur noch 18 px hoch und dann wieder um 2 gekürtzt. Und das praktische dabei : Wenn du bei 0 angekommen bist wird immernoch -2 gerechnet . Jetzt springt er -2 hoch , das heißt er fällt runter und wird wieder schneller . Im nächsten timer.tick fällt er springt er dann -4 hoch usw.

    Ich hoffe das hat dir ein bisschen weiter geholfen ...

    So und ich geh jetzt erstmal frühstücken ...