TobbeOo Skrevet 19. mai 2009 Del Skrevet 19. mai 2009 Heisann. Nå om dagen holder jeg på med et enkelt tekst basert spill. Kommet fram til ditt og datt, men har et par problemer. Noe av det er at når man "angriper" noen, tar man jo en del liv. Løsning er og ha en txt box som er "strength", og når du da angriper så tar du Strength, putter det i en boks, timer som tar random noe lignende rand.next ("txtStrengthCa")-= (1,5) og det samme bare med pluss. På den måten får man tatt random damage innen for rimelige grenser basert på stats. Anyways, det ble litt tafatt, så HER kommer det virkelige problemet, (et av de) Har nå sittet med Photoshop og lagd 9 bilder. Grønne fine bilder av tallene 1-9. Men jeg vil at når man tar 4 liv, skal bildet komme opp. Dette gikk greit, bare se på koden under. Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick Dim rand As New Random() txtPStrengthca.Text = txtPStrength.Text txtPStrengthca.Text -= rand.Next(1, 2) txtPStrengthca.Text += rand.Next(1, 5) If checkBattle.Checked = True Then If txtTempD.Text = 1 Then picG1.Visible = True Else picG1.Visible = False End If If txtTempD.Text = 2 Then picG2.Visible = True Else picG2.Visible = False End If If txtTempD.Text = 3 Then picG3.Visible = True Else picG3.Visible = False End If If txtTempD.Text = 4 Then picG4.Visible = True Else picG4.Visible = False End If If txtTempD.Text = 5 Then picG5.Visible = True Else picG5.Visible = False End If If txtTempD.Text = 6 Then picG6.Visible = True Else picG6.Visible = False End If If txtTempD.Text = 7 Then picG7.Visible = True Else picG7.Visible = False End If If txtTempD.Text = 8 Then picG8.Visible = True Else picG8.Visible = False End If If txtTempD.Text = 9 Then picG9.Visible = True Else picG9.Visible = False End If End If Det som er irriterende er og legge inn alle bildene, men det er helt OK. Men det som er ille, er at vis man tar 11 liv må jeg skrive unik kode for det da, alt fra 10 til gud vet? Noe jeg har i hodet er noe med if txtbox contains 1, så skal bildet komme fram, og vis contains 2, skal det bildet komme fram på den måten at det er 2-3 bilde grupper vedsiden av hverandre, noe sånn som _____ _____ |Bilde| |Bilde| |1 - 9| |1 - 9| |-----| |-----| . Noen ideer til og gjøre dette på en enklere måte en og skrive samme kode med forskjellige tall mange ganger? Takk på forhånd, Tobbe Lenke til kommentar
brgr Skrevet 29. mai 2009 Del Skrevet 29. mai 2009 Hvordan i huleste ser den formen din ut egentlig. Skjønner egentlig ikke din tanke gang i det hele tatt. Men men. Du kan legge bildene i en bestemt mappe og legge disse i en array. Finn ut antall liv en tar. Så lage en loop som viser bildet som inneholder det sifferet. Muligens en litt enklere måte å gjør dette på. Legger disse bildene i en Array Du må også lage ett bilde for 0 verdien da ettersom denne også kan bli representert som 1 0. Under Sub New så blir bildene lagt inn i arrayet. Sub Draw(inLives as Integer) vil "tegne" verdiene som er aktuelle i pictureboxen. Håper koden er forståelig og bare spør om noe hvis det skulle være noe uklarheter her. Public Class Form1 Dim images(9) As Image Dim pictBox As PictureBox Sub New() InitializeComponent() 'Viktig for att formen skal virke! For x As Integer = 0 To 9 images(x) = New Drawing.Bitmap("path-to-image\image-" & x & ".png") Next pictBox = New PictureBox pictBox.Name = "stat_livestaken" 'gjerne ett navn som forklarer meningen med bildeboksen pictBox.Left = 20 'hvor langt ifra venstreside av form pictBox.Top = 100 'hvor langt ifra toppen av form pictBox.Width = 200 'lengde pictBox.Height = 100 'høyde pictBox.BackColor = Me.BackColor pictBox.Visible = False Me.Controls.Add(pictBox) End Sub Sub Draw(ByVal inLives As Integer) Dim grap As Drawing.Graphics grap = Drawing.Graphics.FromImage(pictBox.Image) grap.Clear(Me.BackColor) For x As Integer = 0 To inLives.ToString.Length - 1 Dim relX As Integer = x * 20 'avstand fra venstre grap.DrawImage(images(CInt(x.ToString)), New Point(relX, 0)) Next End Sub End Class Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå