Brugernavn:




Kodeord: Husk
Forside Forum Artikler Downloads Søg
 

RowlRPG - Hjææælp!

Hej Rowlere!

Jeg er igang med et lille RPG projekt, og valgte bare at kalde det RowlRPG :-P. Jeg har lidt problemer.

Problemet er at når jeg opdaterer spillerens position, så skal jeg redrawe formen, ellers vil der være et grimt spor efter playeren, det er så løst.

Men når jeg redrawer, så bliver baggrunden helt sort! Og det er ikke meningen, det skal være græs.

  1. Imports System.IO
  2. Public Class Form1
  3.      Dim numRows As Integer = 15
  4.      Dim numColumns As Integer = 15
  5.      Dim TileInfo As List(Of String) = New List(Of String)
  6.      Dim charX, charY As Integer

  7.      Enum CharacterDirection
  8.           Up = 1
  9.           Down = 2
  10.           Left = 3
  11.           Right = 4
  12.      End Enum

  13.      Private Function moveCharacter(ByVal charDirection As CharacterDirection, ByVal charSpeed As Integer, ByVal g As Graphics) As Boolean
  14.           Dim valueY As Integer = 0
  15.           Dim valueX As Integer = 0
  16.           Dim decrementIncrementX As String = "INCREMENT"
  17.           Dim decrementIncrementY As String = "INCREMENT"

  18.           Select Case charDirection
  19.                Case CharacterDirection.Up
  20.                     valueY = charSpeed
  21.                     decrementIncrementY = "DECREMENT"
  22.                Case CharacterDirection.Down
  23.                     valueY = charSpeed
  24.                     decrementIncrementY = "INCREMENT"
  25.                Case CharacterDirection.Left
  26.                     valueX = charSpeed
  27.                     decrementIncrementX = "DECREMENT"
  28.                Case CharacterDirection.Right
  29.                     valueX = charSpeed
  30.                     decrementIncrementX = "INCREMENT"
  31.           End Select

  32.           If decrementIncrementX = "INCREMENT" Then
  33.                charX += valueX
  34.           Else
  35.                charX -= valueX
  36.           End If

  37.           If decrementIncrementY = "INCREMENT" Then
  38.                charY += valueY
  39.           Else
  40.                charY -= valueY
  41.           End If
  42.           g.Clear(Color.FromArgb(0, 255, 255, 255)) ' Her redrawer jeg formen, den bliver så helt sort!
  43.           g.DrawImage(New Bitmap("C:\char.jpg"), New Point(charX, charY)) ' Her tegner jeg playeren med de nye positioner.

  44.           Return True
  45.      End Function

  46.      Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
  47.           Dim g As Graphics = CreateGraphics()

  48.           Select Case e.KeyCode
  49.                Case Keys.W
  50.                     moveCharacter(CharacterDirection.Up, 3, g)
  51.                Case Keys.A
  52.                     moveCharacter(CharacterDirection.Left, 3, g)
  53.                Case Keys.S
  54.                     moveCharacter(CharacterDirection.Down, 3, g)
  55.                Case Keys.D
  56.                     moveCharacter(CharacterDirection.Right, 3, g)
  57.                Case Keys.Up
  58.                     moveCharacter(CharacterDirection.Up, 3, g)
  59.                Case Keys.Down
  60.                     moveCharacter(CharacterDirection.Down, 3, g)
  61.                Case Keys.Left
  62.                     moveCharacter(CharacterDirection.Left, 3, g)
  63.                Case Keys.Right
  64.                     moveCharacter(CharacterDirection.Right, 3, g)
  65.           End Select
  66.      End Sub
  67.      Private Sub DrawWorld(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Paint ' Dette tegner hele banen, altså, med græs.
  68.           Dim currentRow As Integer = 0
  69.           Dim currentColumn As Integer = 0
  70.           Dim X As Integer = 0
  71.           Dim Y As Integer = 0
  72.           Dim g As Graphics = CreateGraphics()

  73.           For i = 0 To numColumns - 1
  74.                currentRow = i
  75.                currentRow = 0
  76.                X = 0

  77.                If i > 0 Then
  78.                     Y += 35
  79.                End If

  80.                For a = 0 To numRows
  81.                     currentRow = i
  82.                     g.DrawImage(New Bitmap("C:\grass.jpg"), New Point(X, Y))
  83.                     X += 35
  84.                Next
  85.           Next
  86.      End Sub

  87.      Private Sub Form1_Load_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  88.           numColumns += 1
  89.           Me.Width = 35 * numRows
  90.           Me.Height = 35 * numColumns
  91.      End Sub
  92. End Class

- Oliver
Sidst redigeret 17:53 17/11/2009

Pointfordeling

Forfatteren har lukket tråden og har valgt at fordele de 100 point således:
Olivernoerd 100 point
Oprettet af:

Visual Basic

Point afsat: 100

Lukket
17:52 17/11/2009
Never mind, har fundet noget en anden måde at lave det på. VB.NET er ikke så frit som C-sprogene.
Oprettet af:

Accepteret svar

Point modtaget: 100
19:29 17/11/2009
Du skal være oprettet og logget ind for at svare på en tråd
Copyright © Rowl.dk v/ Michael Raagaard | 2005-12 | Alle rettigheder forbeholdes