vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

Visual-Basic Einsteiger
Bewegungen und Hindernisse 
Autor: CapsE
Datum: 17.10.10 12:11

Hallo Leute,
ich arbeite gerade an einem kleinem, rundenbasiertem Strategiespiel bei dem Man seine Armee bestehend aus mehreren runden Einheiten über das Schlachtfeld bewegen soll.

Ich habe der Einfachheit halber eine Einheiten-Klasse erstellt in der alle Eigenschaften der Einheiten geregelt werden. Diese Klasse erstellt sobald sie erstellt wird auch eine Picturebox die dann das Bild der Einheit anzeigt (Ich hab es auch schon mit zeichnen probiert aber irgendwie gibt es dazu soo viele Themen das man den Wald vor lauter Bäumen nicht mehr sieht)

Ich hab auch schon einen Code mit dem sich die PictureBoxen bewegen lassen. Mein erstes (großes) Problem ist jetzt eine Art Collisionsabfrage hinzubekommen sodass die Einheiten nicht durch alles einfach durchlaufen können.

Mein zweites Problem ist das wenn sich eine der eigenen und eine der gegnerischen Einheiten überlagern (Das soll möglich sein quasi als angriff) der Hintergrund wieder auftaucht, weil die PictureBoxen eckig und die Geladenen Bilder Rund sind (als .png mit Transparentem Rand).
Was ich so bis jetzt rausgefunden habe muss ich wohl oder übel irgendwie zeichnen um das alles hinzubekommen ob nun sichtbar oder nur in ein Array um die Flächen der Einheiten zu speichern und abzufragen.

Ich hoffe irgendwer kann mir helfen

Public Sub LoadUnit(ByVal ID As Integer, ByVal Name As String, ByVal Team As _
  Integer)
        VName = Name
        VID = ID
        VTeam = Team
        Dim PicBox As New PictureBox
        PicBox.Name = ID & "Pic"
        AddHandler PicBox.Click, AddressOf PicBoxClick
        VPicBox(VID) = PicBox
        'Soldat
        If Name = "Rekruten" Then
            Me.UpdatePic(My.Resources.Rekruten)
            VBewegung = 400
            VGröße = 200
        ElseIf Name = "Paladin" Then
            Me.UpdatePic(My.Resources.Paladin)
            VBewegung = 400
            VGröße = 200
        End If
        'PicBox der Einheit erstellen
        PicBox.Location = New System.Drawing.Point(0, 0)
        PicBox.Visible = True
        PicBox.Width = VGröße
        PicBox.Height = VGröße
        PicBox.SizeMode = PictureBoxSizeMode.StretchImage
        Form1.Controls.Add(PicBox)
    End Sub
 
    Public Sub PicBoxClick(ByVal Sender As Object, ByVal e As EventArgs)
        VAktiv = True
        Form1.Aktiv = Me
        MoveControl.Show()
    End Sub
Hier der Code meiner Einheiten erstellung evtl. hilft das

PS: Ich bin auch für neue Vorschläge am Bewegungs Prinzip offen oder auch für Eckige Einheiten wenn es sein muss. Nur 4eckige Felder find ich blöd.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Bewegungen und Hindernisse1.340CapsE17.10.10 12:11
Re: Bewegungen und Hindernisse920Preisser17.10.10 12:44
Re: Bewegungen und Hindernisse933CapsE17.10.10 15:40
Re: Bewegungen und Hindernisse914Dirk18.10.10 09:42
Re: Bewegungen und Hindernisse870marvin_9417.10.10 16:09
Re: Bewegungen und Hindernisse911CapsE22.10.10 21:56
Re: Bewegungen und Hindernisse879marvin_9422.10.10 23:35
Re: Bewegungen und Hindernisse857CapsE22.10.10 23:44
Re: Bewegungen und Hindernisse849marvin_9423.10.10 14:41

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-2025 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