Kan man das hier vereinfachen?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Yankee

Betreff: Kan man das hier vereinfachen?

BeitragDo, März 16, 2006 18:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Also das hier ist ein kleines Spiel, wo 2 leute spielen, einer ist ein raumschiff und muss dem 2tem Spieler, ein asteroid(oder wie auch immer) ausweichen. Wenn der Asteroid das raumschff erwischt kommt ein knall und beide beginnen wieder am anfang.

Code: [AUSKLAPPEN]

Graphics 800, 800

SetBuffer BackBuffer()


rocket=LoadImage("rocket.bmp")
stein=LoadImage("rock.bmp")

knall=LoadSound("boom.wav")

stein_x=500
stein_y=500

rocket_x=30
rocket_y=40



While Not KeyDown (1)


;prufe Rocket bewegung
   If KeyDown (203)
   
      rocket_x=rocket_x-4
      
      If rocket_x<0 Then rocket_x=0
      
   EndIf
   
   
   If KeyDown(205)
   
      rocket_x=rocket_x+4
      
      If rocket_x>604 Then rocket_x=604
   
      EndIf
      
      If rocket_y>604 Then rocket_y=604
   
         
   
   If KeyDown (200)
   
      rocket_y=rocket_y-3
      
      If rocket_y<0 Then rocket_y=0
      
      EndIf
      
      If rocket_y<0 Then rocket_y=0
      
      
   
   
   If KeyDown(208)
   
      rocket_y=rocket_y+3
      
      If rocket_y>604 Then rocket_y=604
         
   EndIf

; prufe Stein bewegung
   If KeyDown (30)
   
      stein_x=stein_x-4
      
      If stein_x<0 Then stein_x=0
      
      EndIf
      
      
      If stein_y<0 Then stein_x=0
      

   
   
   If KeyDown(32)
   
      stein_x=stein_x+4
      
      If stein_x>604 Then stein_x=604
   
      EndIf
      
      If stein_y>604 Then stein_y=604
   
   
   
   If KeyDown (17)
   
      stein_y=stein_y-3
      
      If stein_y<0 Then stein_y=0
      
   EndIf
   
   
   If KeyDown(31)
   
      stein_y=stein_y+3
      
      If stein_y>604 Then stein_y=604
   
   EndIf

   
;Bildschirm neu aufbauen
   Cls
         If stein_x>604 Then stein_x=604
   
         
   DrawImage stein,stein_x,stein_y
   DrawImage rocket,rocket_x,rocket_y

   Flip


If ImagesCollide(stein, stein_x, stein_y,0, rocket, rocket_x, rocket_y,0)
   
   Text rocket_x, stein_y, "Wer auch immer den stein spielt, hat gewonnen!"
   PlaySound knall
   Delay 1000
   
   stein_x=500
   stein_y=500

   rocket_x=30
   rocket_y=40

EndIf


Brauche hilfe bei dem da, weil ich finde das da ist ihrgendwie zu groß...^^
Danke Yankee Very Happy

aMul

Sieger des Minimalist Compo 01/13

BeitragDo, März 16, 2006 18:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitte nimm die Code-Tags und rück den Programcode ein, dann wirds gleich viel übersichtlicher Smile

Außerdem ist der Code da oben alles andere als lang! Wink
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver

Yankee

BeitragDo, März 16, 2006 19:08
Antworten mit Zitat
Benutzer-Profile anzeigen
ja aber wie solll ich so schreiben damits übersichtlicher ist? Question
 

Dreamora

BeitragDo, März 16, 2006 19:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich wüsste nicht, was es an dem Code noch zu vereinfachen gäbte.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

ke^kx

BeitragDo, März 16, 2006 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest es in Functions unterteilen, dann ist es übersichtlicher, aber ansonsten würde ich auch nichts weiter verändern.

Jiriki
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM

Chester

BeitragDo, März 16, 2006 20:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Nicht zu vergessen sind Includes, aber dass würde sich bei deinem Code noch nicht lohnen.

https://www.blitzforum.de/view...731#178659 kann ich dir nur mal empfehlen.

ChEsTeR

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, März 16, 2006 22:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest die frei rumfliegenden If-Abfragen mal in die KeyDowns mit rein packen, wie es überlicherweise auch schon der Fall ist. Dann ist wenigstens mal ein bischen mehr Ordnung und 'Struktur' drin...

Anstelle If KeyDown() könnte man das ganze auch in Case packen. Der Code währe dadurch auch noch ein wenig kürzer...

Oder...Code: [AUSKLAPPEN]
;Man kann auch

;Anstelle
If KeyDown(205)
  rocket_x=rocket_x+4
  If rocket_x>604 Then rocket_x=604
EndIf

;Das hier machen
If KeyDown(205) rocket_x=rocket_x+4:If rocket_x>604 rocket_x=604

Für den letzten Vorschlag muß ich mich aber in Deckung begeben...
 

ke^kx

BeitragDo, März 16, 2006 23:01
Antworten mit Zitat
Benutzer-Profile anzeigen
*nach Hectic werf*

Sehr richtig Wink

@Yankee:
Wichtig ist im Allgemeinen ja nicht die kürze des Codes sondern die Übersichtlichkeit. Also das du Functions wie UpdatePlayers (), MovePlayers (), Shoot ()... benutzt und dadurch auch besser an bestimmten Teilen des Codes arbeiten kannst.

Jiriki
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, März 16, 2006 23:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, bleibt ja letztendlich 'Geschmackssache', wie man es macht. Ich zu meinem Teil finde das folgende nicht wirklich unübersichtlich. Zu mal eine Tastaturabfrage ja nun wirklich nicht zu dem 'Problemcode' eines Programmes gehört.
Code: [AUSKLAPPEN]
;Pruefe Rocket Bewegung
If KeyDown(203) rocket_x=rocket_x-4:If rocket_x<0 rocket_x=0
If KeyDown(205) rocket_x=rocket_x+4:If rocket_x>604 rocket_x=604
If KeyDown(200) rocket_y=rocket_y-3:If rocket_y<0 rocket_y=0
If KeyDown(208) rocket_y=rocket_y+3:If rocket_y>604 rocket_y=604

;Pruefe Stein Bewegung
If KeyDown(30) stein_x=stein_x-4:If stein_x<0 stein_x=0
If KeyDown(32) stein_x=stein_x+4:If stein_x>604 stein_x=604
If KeyDown(17) stein_y=stein_y-3:If stein_y<0 stein_y=0
If KeyDown(31) stein_y=stein_y+3:If stein_y>604 stein_y=604
Für mich perfekt und alles was die Tastaturabfrage betrifft, auf einem Blick erkennbar. Ich kann an solch geschriebenem Code Fehler wesentlich schneller überblicken. Wink


Ok, ich hau ja schon ab.... ... .. . . . . . Very Happy
 

Farami

BeitragFr, März 17, 2006 1:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Um ganz ehrlich zu sein finde ich Hectic's Code-Schnipsel von der Übersicht her auch wirklich besser... Aber nunja, ist wohl Geschmackssache...
 

ke^kx

BeitragFr, März 17, 2006 4:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, ok... Einigen wir uns auf Geschmackssache Wink Kommt halt auch ganz drauf an, was man macht, wenn man noch häufig was an den Werten ändert oder so, sollte man es besser nicht in einer Zeile machen.

Jiriki

[Edit]
Auch ist es besser wenn andere den Code noch verwenden sollen Wink Die blicken sonst nähmlich ersteinmal garnichts...
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM

Yankee

BeitragFr, März 17, 2006 19:23
Antworten mit Zitat
Benutzer-Profile anzeigen
okidoki danke an alle

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group