vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2020
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
XY-Coordinaten verändern 
Autor: Zocker
Datum: 05.09.10 17:48

Hi Leute,

Ich bin neu hier, hab aber schon etwas erfahrung mit VB.Net gemacht und wollte wissen wie ich ein Bild/Grafik bewegen kann (XY-Coordinaten verändern). Ich hab es schon mit einem Timer und dem Stück Code hier versucht:

Puplic Class Form1
 
Private Sub Timer1() Handles Timer1.Tick
 
PictureBox1.Location.X = PictureBox1.Location.X + 1
 
End Sub
 
End Class
Es funktionierte aber nicht
Kann es sein dass man DirectX oder GDI benutzen muss um so etwas möglich zu machen?
Und wenn, wie funktioniert das?
Ich hoffe ihr könnt mir helfen denn ich versuche ein kleines Spiel zu programmieren.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XY-Coordinaten verändern 
Autor: nesh
Datum: 05.09.10 18:24

Hallo,

ich gehe mal davon aus das dein Timer auch Tickt

Bei Location.X sowie Location.Y handelt es sich um einen Ausdruck.

Das Intellisense liefert hierzu eine falsche Information.
Das setzen der Werte ist so nicht möglich......



 PictureBox1.Location = New Point(PictureBox1.Location.X + 1, _
   PictureBox1.Location.Y)
Das sollte der Timer beim Ticken machen.....


________________________________________________________________

Du kannst mit deinem Computer ALLES machen was Du willst!
Allerdings musst Du erst herausfinden wie.....
________________________________________________________________

Beitrag wurde zuletzt am 05.09.10 um 18:25:50 editiert.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XY-Coordinaten verändern 
Autor: Zocker
Datum: 06.09.10 15:07

Danke für die schnelle Antwort!
Und es hatt funktioniert!
Aber eine Frage noch:
Wofür ist eigentlich der Strich (_) im Code wichtig, und wofür steht da noch die Y-Coordinate unten drunter?

EDIT:

Das mit der Y-Coordinate verstehe ich jetzt.
Und der Strich denke ich mal ist um dem Programm anzuzeigen das es unten noch weitergeht.
Aber es funktioniert auch ohne den Strich (wenn alles in der Zeile steht).
Wofür braucht man den dann?

Beitrag wurde zuletzt am 06.09.10 um 15:12:51 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XY-Coordinaten verändern 
Autor: nesh
Datum: 06.09.10 15:11

Hallo,
nichts zu Danken. Dafür gibt es ja dieses Forum

Der Unterstrich symbolisiert einen Zeilenumbruch im Code.
Der Editor weiß somit das es sich nicht bei der neuen Zeile nicht um eine neue Zeile handelt.
Du kannst den Code auch ohne den "_" übernehmen, musst den Code dann aber in einer Zeile schreiben.


________________________________________________________________

Du kannst mit deinem Computer ALLES machen was Du willst!
Allerdings musst Du erst herausfinden wie.....
________________________________________________________________

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XY-Coordinaten verändern 
Autor: Maas
Datum: 06.09.10 15:12

*zuspät*

Maas

Beitrag wurde zuletzt am 06.09.10 um 15:12:41 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XY-Coordinaten verändern 
Autor: nesh
Datum: 06.09.10 15:14

@Maas

ich fand deine Antwort eleganter.....


________________________________________________________________

Du kannst mit deinem Computer ALLES machen was Du willst!
Allerdings musst Du erst herausfinden wie.....
________________________________________________________________

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XY-Coordinaten verändern 
Autor: Zocker
Datum: 06.09.10 15:15

Ist es denn nicht schlechter zu lesen wenn man lauter Zeilenumbrüche im Code hat?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XY-Coordinaten verändern 
Autor: nesh
Datum: 06.09.10 15:19

Das ist, im wahrsten Sinne des Wortes, Ansichtssache.

Es gibt oft Programmzeilen die einfach zu lang für eine Zeile sind.

Dann ständig im Quelltext auch noch nach rechts/links scrollen zu müssen, oder schlimmer noch, den Editor einen "virtuellen" Zeilenumbruch machen zu lassen ist oft sehr viel unübersichtlicher....


________________________________________________________________

Du kannst mit deinem Computer ALLES machen was Du willst!
Allerdings musst Du erst herausfinden wie.....
________________________________________________________________

Beitrag wurde zuletzt am 06.09.10 um 15:20:38 editiert.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XY-Coordinaten verändern 
Autor: Maas
Datum: 06.09.10 15:24

            Dim arr() As System.Text.Encoding = _
                        {System.Text.Encoding.ASCII, _
                         System.Text.Encoding.BigEndianUnicode, _
                         System.Text.Encoding.Default, _
                         System.Text.Encoding.Unicode, _
                         System.Text.Encoding.UTF32, _
                         System.Text.Encoding.UTF7, _
                         System.Text.Encoding.UTF8}
Geht so ... das kommt halt immer darauf an, wie lang die Zeile werden würde.

Hier im Forum ist das allerdings eine Sache der Seitenbreite im Browser. Die Seite ist glaube ich für 1280(?)er Bereite optimiert, somit gibt es ab einer bestimmten Länge automatisch einen Zeilenumbruch.

Maas
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XY-Coordinaten verändern 
Autor: ModeratorDaveS (Moderator)
Datum: 06.09.10 15:28

Mit VB2010 kann man es übrigens auch so schreiben
        Dim arr() As System.Text.Encoding =
                    {System.Text.Encoding.ASCII,
                     System.Text.Encoding.BigEndianUnicode,
                     System.Text.Encoding.Default,
                     System.Text.Encoding.Unicode,
                     System.Text.Encoding.UTF32,
                     System.Text.Encoding.UTF7,
                     System.Text.Encoding.UTF8}

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XY-Coordinaten verändern 
Autor: Zocker
Datum: 06.09.10 15:30

So, ich habe jetzt vor eine Gif-Animation den Zeiger langsam folgen zu lassen.
Aber ich habe keine Ahnung wie das gehen soll.
Habt ihr vielleicht eine Idee?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XY-Coordinaten verändern 
Autor: nesh
Datum: 06.09.10 16:05

Ich möchte ja nicht unhöflich werden,

aber solltest Du es nicht erst einmal selber versuchen und dich dann mit einem konkreten Problem hier an das Forum wenden ?

Oder erwartest Du einen fertigen Code ?

Einen Ansatz kann ich dir jedenfalls geben:

Werte die Position der Maus aus, setzte das dann in der gewünschren Relation zur Position der Picturebox und lasse dann einem Ticker die Position der Picturebox schrittweise in Richtung der Maus laufen.

Evtl.. würde ich es auch mit einer rekursiven Funktion machen.
Das ganze dann noch mit einem BackgroundWorker damit deine Anwendung sauber weiter läuft.
Das ganze muss dann noch Threadsicher sein da der BGWorker ja Controls anspricht die er nicht selbst erstellt hat.
Da gibt es sicher noch andere Möglichkeiten.......

Das führt jetzt aber zu weit und du solltest es erst mal mit dem Timer probieren

Zeige mal Initiative
Gerne helfe(n wir) ich dann bei einigen Codesegmenten....


________________________________________________________________

Du kannst mit deinem Computer ALLES machen was Du willst!
Allerdings musst Du erst herausfinden wie.....
________________________________________________________________

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XY-Coordinaten verändern 
Autor: Zocker
Datum: 07.09.10 15:46

Tut mir leid aber ich habe deinen Ansatz den du geschrieben hast nett wirklich verstanden.
Also was ich nicht verstanden habe:

Was ist eine Relation?
Oder eine Rekursive Funktion?
Und was bedeutet es, etwas Threadsicher zu machen?
Und dann bleiben da noch die Controls, die der Backgroundworker anspricht.

Also ich habe jetzt nicht mehr vor eine PB dem Cursor folgen zu lassen.
Sondern möchte auf Tastendruck ein Bild bewegen lassen.
Ich weiß zwar jetzt wie ich die Position verändern kann, aber ich finde nicht das Event für einen "bestimmten" Tastendruck.
Sondern immer nur wenn irgenteine Taste gedrückt wird:

Private Sub TasteGedrückt() Handles Me.KeyDown
Könnt ihr mir helfen?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XY-Coordinaten verändern 
Autor: nesh
Datum: 07.09.10 17:11

1. Erstelle eine Form mit dem Namen Form1.
2. Erstelle eine PictureBox mit dem Namen PictureBox1

Kopiere folgenden Code in den Editor

Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As _
  System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
 
        If e.KeyCode = Keys.Up Then
 
            PictureBox1.Location = New Point(PictureBox1.Location.X, _
              PictureBox1.Location.Y - 5)
 
        End If
 
        If e.KeyCode = Keys.Down Then
 
            PictureBox1.Location = New Point(PictureBox1.Location.X, _
              PictureBox1.Location.Y + 5)
 
        End If
 
        If e.KeyCode = Keys.Left Then
 
            PictureBox1.Location = New Point(PictureBox1.Location.X - 5, _
              PictureBox1.Location.Y)
 
        End If
 
        If e.KeyCode = Keys.Right Then
 
            PictureBox1.Location = New Point(PictureBox1.Location.X + 5, _
              PictureBox1.Location.Y)
 
        End If
 
    End Sub
Nun kannst du deine Pickturebox mit den Cursortasten bewegen.

Mit IF / ENDIF finde ich das persönlich nicht sehr elegant.
Habe es jedoch so gepostet da es sicherlich für dich Verständlicher ist.
Schöner wäre Select und Case.
Jetzt hoffe ich mal auf einen Code von Dir.
Baue doch die ganzen IFs EndIfs in Select Case um.....


________________________________________________________________

Du kannst mit deinem Computer ALLES machen was Du willst!
Allerdings musst Du erst herausfinden wie.....
________________________________________________________________

Beitrag wurde zuletzt am 07.09.10 um 17:19:24 editiert.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XY-Coordinaten verändern 
Autor: Zocker
Datum: 08.09.10 15:06

Also,

Ich habe jetzt vor ein Spiel wie Puschi: http://www.kgs-suedstrasse.de/Bilder/Puschi.gif
zu programmieren. Jetzt habe ich die Spielfigur die ich bewegen kann.
Nun fehlen aber noch Kollisionen.
Und ich habe keine Idee wie ich das machen soll.

Ich habe mal mit XProfan programmiert und da war ein beispiel zu so einem Spiel.
Und die art der Felder wurde als Nummer angegeben und sah im Code so aus:

... = 1,1,1,1,1,1,1,1,1
... = 1,2,0,0,0,0,0,0,1

Und immer so weiter.
So möchte ich es gerne auch machen.
Was muss ich machen um so eine Funktion zu erstellen?
z.b. LevelLinie1 = 1,0,0,0,2,0,...

Bisher sieht der Code so aus:

Public Class Form1
 
    Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As _
      System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
 
        If e.KeyCode = Keys.Up Then
 
            Player.Location = New Point(Player.Location.X, Player.Location.Y - _
              30)
            Player.Image = WindowsApplication1.My.Resources.Resources.PlayerOben
 
        End If
 
        If e.KeyCode = Keys.Down Then
 
            Player.Location = New Point(Player.Location.X, Player.Location.Y + _
              30)
            Player.Image = _
            WindowsApplication1.My.Resources.Resources.PlayerUnten
 
        End If
 
        If e.KeyCode = Keys.Left Then
 
            Player.Location = New Point(Player.Location.X - 30, _
              Player.Location.Y)
            Player.Image = _
            WindowsApplication1.My.Resources.Resources.PlayerLinks
 
        End If
 
        If e.KeyCode = Keys.Right Then
 
            Player.Location = New Point(Player.Location.X + 30, _
              Player.Location.Y)
            Player.Image = _
            WindowsApplication1.My.Resources.Resources.PlayerRechts
 
        End If
 
    End Sub
 
End Class
...und das Spiel selbst so:

http://img64.imageshack.us/i/form1.png/

Weis jemand wie ich sowas anstelle?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XY-Coordinaten verändern 
Autor: nesh
Datum: 08.09.10 20:51

Indem du vielleicht die Positionen der Figuren nach jeder Bewegung miteinader vergleichst?


________________________________________________________________

Du kannst mit deinem Computer ALLES machen was Du willst!
Allerdings musst Du erst herausfinden wie.....
________________________________________________________________

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XY-Coordinaten verändern 
Autor: Zocker
Datum: 09.09.10 15:10

Sry, aber ich weis nett was du damit meinst.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XY-Coordinaten verändern 
Autor: Zocker
Datum: 11.09.10 21:29

Wie kann ich eigentlich einen Zeilenumbruch in einer Text-Box machen?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XY-Coordinaten verändern 
Autor: nesh
Datum: 12.09.10 09:06

http://lmgtfy.com/?q=vb%20.net%20Zeilenumbruch


________________________________________________________________

Du kannst mit deinem Computer ALLES machen was Du willst!
Allerdings musst Du erst herausfinden wie.....
________________________________________________________________

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XY-Coordinaten verändern 
Autor: Zocker
Datum: 12.09.10 13:28

Danke, für die Antwort, auch wenn es eigentlich eine Google suche war.
Also ich hatte nett daran gedacht das so zu suchen, weil ich das für gewöhnlich so nett finde.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XY-Coordinaten verändern 
Autor: Zocker
Datum: 12.09.10 18:10

Also ich habe schon mal einen Audiorekorder programmiert (nur die Benutzeroberfläche).
Den Code zum aufnehmen habe ich hier gefunden:

http://www.vbarchiv.net/tipps/details.php?id=2041

Und ich habe das programm an zwei verschiedenen PC's ausprobiert.
Aber immer kam ein Fehler beim speichern der Aufnahme.

Also an meinem Code kann es nett liegen, es muss an dem Code zum aufnehmen liegen.
Kann da mal jemand drüberschauen?
Weil ich verstehe von dem Code nett wirklich viel.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2020 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel