Just nu i M3-nätverket
Jump to content

Hjälp mig fixa denna kodrad


Henke1988

Recommended Posts

[color="#0000ff"]Dim[/color] i As Integer
[color="#0000ff"]For[/color] i = 0 [color="#0000ff"]To[/color] 7
[color="#0000ff"]If[/color] i = 0 Or i = 1 Or i = 2 Or i = 3 [color="#0000ff"]Then[/color]
cmdSpeedUp.[color="#0000ff"]Left[/color] = cmdEnemy.[color="#0000ff"]Left[/color]
cmdSpeedUp.Top = cmdEnemy.[color="#0000ff"]To[/color]p
cmdSpeedUp.Visible = [color="#0000ff"]True[/color]
Timer29.Enabled = [color="#0000ff"]True[/color]
[color="#0000ff"]ElseIf[/color] i = 4 Or i = 5 Or i = 6 [color="#0000ff"]Then[/color]
cmdSlowDown.[color="#0000ff"]Left[/color] = cmdEnemy.[color="#0000ff"]Left[/color]
cmdSlowDown.Top = cmdEnemy.[color="#0000ff"]To[/color]p
cmdSlowDown.Visible = [color="#0000ff"]True[/color]
Timer29.Enabled = [color="#0000ff"]True[/color]
[color="#0000ff"]ElseIf[/color] i = 7 [color="#0000ff"]Then[/color]
[color="#006400"]'PowerUp ej klar[/color]
[color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
[color="#0000ff"]Next[/color] i
[color="#0000ff"]Randomize[/color]
No = [color="#0000ff"]Rnd[/color] * 7 + 1

 

Jag vill att den ska slumpa fram ett värde på variabeln "i". Det värdes ska sedan kollas.

Om värdet är 0, 1, 2 eller 3 ska en sorts "PowerUp" dyka upp (det är ett spel i Visual Basic jag gör).

 

Saken är den att den får för sig att i = 0, 1, 2, 3, 4, 5, 6 OCH 7.

Den placerar ut alla tre typer av PowerUps.

Jag vill att den ska få för sig att den är ETT av talen, men inte alla på samma gång.

Hur ska jag göra?

 

Tackar på förhand.

Henke

 

[inlägget ändrat 2006-11-30 15:34:41 av Henke88]

Link to comment
Share on other sites

jag har inte holt på med vb, men jag vet att du inte behöver ha "for"-satsen.

ta bort for-satsen och flytta upp randomize högst upp så blir det nog rätt:)

 

Link to comment
Share on other sites

Kan inte VB, men syntaxen skall ju vara ganska lik VBA:

 

Jag vill att den ska få för sig att den är ETT av talen

 

När du skriver

For i = 0 To 7

...

Next i

 

så ber du ju faktiskt VB att sätta i= 0 och sedan loopa igenom i =0,1,2.. upp till sju. Din slumpgenerator ligger ju utanför den lopen, så det värdet blir överkört.

 

Hur ser din logik ut? vill du ha en loop? när skall lopen avbrytas osv?

 

2. När du har flera möjliga värden så är det oftast lättare att köra en

Select Case

bla bla

End Select

istället för en massa snåriga if-satser

 

[color="#0000ff"]Dim[/color] bAvsluta As Boolean
[color="#0000ff"]Dim[/color] i As Integer
[color="#0000ff"]Randomize[/color]

[color="#0000ff"]Do[/color]  [color="#006400"]' Om du vill loopa[/color]
i = [color="#0000ff"]Rnd[/color] * 7 + 1 [color="#006400"]'(vilket för övrigt INTE genererar i=0)[/color]
i = int([color="#0000ff"]Rnd[/color] * 8) [color="#006400"]' borde vara en korrektare variant[/color]

[color="#0000ff"]Select[/color] [color="#0000ff"]Case[/color] i
[color="#0000ff"]Case[/color] 0 [color="#0000ff"]To[/color] 3
[color="#006400"]' din kod[/color]
[color="#0000ff"]Case[/color] 4, 5, 6
[color="#006400"]' din kod 2[/color]
[color="#0000ff"]Case[/color] 7
[color="#006400"]' din kod 3[/color]
[color="#0000ff"]Case[/color] [color="#0000ff"]Else[/color]
[color="#006400"]' någonting blev jävligt fel...[/color]
[color="#0000ff"]End[/color] [color="#0000ff"]Select[/color]

[color="#0000ff"]If[/color] någonting [color="#0000ff"]Then[/color] bAvsluta = [color="#0000ff"]True[/color]  
[color="#006400"]' något slags villkor för att avsluta loopen[/color]

[color="#0000ff"]Loop[/color] Until bAvsluta = [color="#0000ff"]True[/color] [color="#006400"]' Om du vill loopa[/color]

 

[inlägget ändrat 2006-11-30 16:31:45 av MH2]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...