none
Hub? Grid? Welches Steuerelement für feste Spielbrettgröße? RRS feed

  • Frage

  • Ich möchte eine Spiele-App entwickeln mit einem Spielbrett das unabhängig vom Gerät des Users immer eine feste Breite hat (z.B. 2000px). Es ist gewollt, dass der Spieler dabei immer nach links und rechts wischen muss, um das ganze Spielbrett zu sehen. 

    Aber welches Steuerelement benutze ich da als Grundlage? Habe mit verschiedenen Steuerelementen herum probieert aber so richtig scheint keines geeignet zu sein. Grid zentriert immer alles auf die aktuelle Bildschirmgröße (falls ich es richtig verstehe). Hub scheint zu gehen und lässt sich auch über den Rand hinaus wischen aber da wäre ja alles in verschiedenen Hubs.

    Hat jemand einen Tipp?

    Freitag, 3. Januar 2014 06:53

Antworten

  • Hallo,
    was genau hast du denn mit dem Element vor? Ein grafisch aufwendiges Spiel würde ich erstmal in einer DirectX C++ App schreiben, da hast du deutlich mehr möglichkeiten. Wenn es um Spiele wie Minesweeper geht, ist natürlich auch eine andere Sprache + XAML möglich.

    Im ersten Moment würde ich ein Grid nutzen. Diesem Kannst du eine Größe zuweisen und ein Raster festlegen. Setze mal in eine neue App folgenden Code in das Innere des Grids deiner Page und starte die App:

    <ScrollViewer VerticalScrollMode="Auto" VerticalScrollBarVisibility="Auto" HorizontalScrollMode="Auto" HorizontalScrollBarVisibility="Auto">
        <Grid Height="2000" Width="3000">
            <Grid.Background>
                <LinearGradientBrush EndPoint="1,1" StartPoint="0,0">
                    <GradientStop Color="White" Offset="0"/>
                    <GradientStop Color="Black" Offset="1"/>
                    <GradientStop Color="#FF0015E8" Offset="0.496"/>
                </LinearGradientBrush>
            </Grid.Background>
        </Grid>
    </ScrollViewer>

    Du kannst grundsätzlich jedem Element eine Feste Größe zuweisen. Genauso wie Alignments um die Ausrichtung zu steuern. Des weiteren ist die Margin-Eigenschaft dein Freund in Sachen verschieben.
    Beim Grid kannst du noch die RowDefinitions und ColumnDefinitions zuweisen um Zeilen und Spalten zu erhalten.

    Wenn du frei skalierbare Elemente haben möchtest wäre ein Canvas vielleicht die bessere alternative zum Grid.

    Erkläre nochmal näher was du in dem Panel anzeien möchtest, ob es möglcichst problemlos bewegt werden soll usw.


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    • Als Antwort markiert tolox Sonntag, 5. Januar 2014 14:51
    Freitag, 3. Januar 2014 10:37

Alle Antworten

  • Hallo,
    was genau hast du denn mit dem Element vor? Ein grafisch aufwendiges Spiel würde ich erstmal in einer DirectX C++ App schreiben, da hast du deutlich mehr möglichkeiten. Wenn es um Spiele wie Minesweeper geht, ist natürlich auch eine andere Sprache + XAML möglich.

    Im ersten Moment würde ich ein Grid nutzen. Diesem Kannst du eine Größe zuweisen und ein Raster festlegen. Setze mal in eine neue App folgenden Code in das Innere des Grids deiner Page und starte die App:

    <ScrollViewer VerticalScrollMode="Auto" VerticalScrollBarVisibility="Auto" HorizontalScrollMode="Auto" HorizontalScrollBarVisibility="Auto">
        <Grid Height="2000" Width="3000">
            <Grid.Background>
                <LinearGradientBrush EndPoint="1,1" StartPoint="0,0">
                    <GradientStop Color="White" Offset="0"/>
                    <GradientStop Color="Black" Offset="1"/>
                    <GradientStop Color="#FF0015E8" Offset="0.496"/>
                </LinearGradientBrush>
            </Grid.Background>
        </Grid>
    </ScrollViewer>

    Du kannst grundsätzlich jedem Element eine Feste Größe zuweisen. Genauso wie Alignments um die Ausrichtung zu steuern. Des weiteren ist die Margin-Eigenschaft dein Freund in Sachen verschieben.
    Beim Grid kannst du noch die RowDefinitions und ColumnDefinitions zuweisen um Zeilen und Spalten zu erhalten.

    Wenn du frei skalierbare Elemente haben möchtest wäre ein Canvas vielleicht die bessere alternative zum Grid.

    Erkläre nochmal näher was du in dem Panel anzeien möchtest, ob es möglcichst problemlos bewegt werden soll usw.


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    • Als Antwort markiert tolox Sonntag, 5. Januar 2014 14:51
    Freitag, 3. Januar 2014 10:37
  • Hab es getestet. Sieht eigentlich schon super aus mit deinem Code. Da habe ich wohl viel zu kompliziert gedacht. Aber wie kann ein User ohne Touch-Display scrollen?

    Freitag, 3. Januar 2014 20:09
  • Der ScrollViewer zeigt ziehbare Leisten an, wenn man die Maus bewegt. Dafür sorgen auch die 4 zugewiesenen Eigenschaften. Bei Auto entcheidet der ScrollViewer ob die Leisten angezeigt werden sollen.

    Touch
         
    Maus-Bedienung


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    Freitag, 3. Januar 2014 20:37
  • Vielen Dank.
    Sonntag, 5. Januar 2014 14:51