2 Fragen zum Spiel!!! 1stens Schuss!!! 2tens Textausgabe!!!

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Hurrikan256

Betreff: 2 Fragen zum Spiel!!! 1stens Schuss!!! 2tens Textausgabe!!!

BeitragSo, Dez 21, 2008 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute.
Ein Trottel brauch hilfe Wink
Ich Programmiere im moment (1stes Projekt) ein SpaceShooter 2D und hab 2 Probleme die mir auf....na ihr wisst schon geht Rolling Eyes
1.(hoffe Punkt 1 ist richtiges Thead)
Ich möchte im Laufenden Spiel eine Textausgabe in einem Chatfenster haben. So ne Art Missionauftrag. Aber immer wenn ich das versuche Krieg ich den Text auf nem Schwarzen Screen und mein Spiel ist wech^^ Der Text ist zwar an der richtigen Stelle aber der Rest ist weg....das Nervt^^
2.
Ich will Alien Totschießen und hab mir ne schöne Kanone gebaut doch wenn ich schieße dann sieht das mehr aus wie ein Laser. Also Frage: Wie kann ich die Geschwindigkeit des Schusses einstellen. Hab es schon mit Delay versucht aber dann bleibt alles stehen und nach der angegebenen Zeit (im Delay) kommt wieder der Schnelle Schuss. Code Folgt PLS HELP!!!!! Shocked
Code: [AUSKLAPPEN]
   ;Schuss Schaden - Berechnung
While Leben > 0 And KeyHit(57)
   
   ;Schuss
For m=1 To 1
s1.strike=New Strike
s1\x = x1+18
s1\y = y1-3
s1\Schaden = 1
s1\Art = 1
Next
   For I = 1 To 500
      For s1=Each strike
         DrawImage Schuss_1,s1\x,s1\y-i
      Next
         For a1=Each alien
            For s1=Each strike
               If ImagesOverlap(Schuss_1,s1\x,s1\y-i,Enemy_1,a1\x,a1\y)= 1 Then a1\Leben = a1\Leben - s1\Schaden    
               If ImagesOverlap(Schuss_1,s1\x,s1\y-i,Enemy_1,a1\x,a1\y)= 1 Then Delete s1            
            Next
         Next
            For s1=Each strike
               If i = 500 Then Delete s1
            Next
   Next
 PlaySound(Sound1)

Wend

TimBo

BeitragSo, Dez 21, 2008 17:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

1) Ohne Code geht nichts.

2) mach bloß kein Delay.
Erhöhe in der Main-Schleife die X-Variable nicht zu sehr.

D.h. X=X+80 ist schnell, X=X+2 ist langsam

Viele Grüße
TimBo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

ozzi789

BeitragSo, Dez 21, 2008 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein Ausrufe Zeichen genügt meistens -.-*

Zu 1.
PseudoCode

cls
Zeugmalen
mit Text was schreiben
waittimer
flip

wieso das bei dir nicht geht is mir n Rätsel, dafür bräuchte ich nen Code-schnipsl

Zu 2.
Delay = Schrott Wink
Schau dir mal Createtimer / Waittimer mit Flip 0 an


mfg


Edit:
Zu spät :/
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

Hurrikan256

BeitragSo, Dez 21, 2008 17:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Erstmal Danke "!"(nur ein Ausrufezeichen)^^
Beim Ersten habt ihr mir troz fehlendem Code (Sorry...)Gut geholfen.
Beim 2ten "Createtimer / Waittimer mit Flip 0" mach ich mich mal schlau und dankö^^
Wenn ich das nicht ralle Edit ich das nachher.


Wink

EDIT:
beim zweiten Passiert das GLeiche mit Delay wie mit Waittimer. Wenn ich schieße hängt das spiel kurz und dann komm wieder diese Laser kake. Also anstadt ihrgendwas langsamer wird, macht der die I =1 to 500 erst mit dem neuen framezeugs aber Drawn tut der wieder alles auf einmal...

Tipps noch mal bitte^^

Thunder

Betreff: Re: 2 Fragen zum Spiel!!! 1stens Schuss!!! 2tens Textausgabe

BeitragSo, Dez 21, 2008 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
   ;Schuss Schaden - Berechnung
While Leben > 0 And KeyHit(57)
   
   ;Schuss
For m=1 To 1
s1.strike=New Strike
s1\x = x1+18
s1\y = y1-3
s1\Schaden = 1
s1\Art = 1
Next
   For I = 1 To 500
      For s1=Each strike
         DrawImage Schuss_1,s1\x,s1\y-i
      Next
         For a1=Each alien
            For s1=Each strike
               If ImagesOverlap(Schuss_1,s1\x,s1\y-i,Enemy_1,a1\x,a1\y)= 1 Then a1\Leben = a1\Leben - s1\Schaden    
               If ImagesOverlap(Schuss_1,s1\x,s1\y-i,Enemy_1,a1\x,a1\y)= 1 Then Delete s1            
            Next
         Next
            For s1=Each strike
               If i = 500 Then Delete s1
            Next
   Next
 PlaySound(Sound1)

Wend


Ist das die gesamte Hauptschleife?
Verwendest du Double-Buffering?
Vielleicht sehe ich was falsch, aber was bringt For m=1 to 1?
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit
 

Hurrikan256

BeitragSo, Dez 21, 2008 18:39
Antworten mit Zitat
Benutzer-Profile anzeigen
m = 1 to 1 bring mir nur, dass das schön für mich anfänger schön formal bleibt falls ich mal später ne waffe bastle mit 2 Schüssen. ich schick dir mal meine Hauptschleife mit allem drin.

Code: [AUSKLAPPEN]

Repeat      ;Hauptschleife      

      
Cls


DrawImage Terrain,x2,y2
DrawImage Terrain,x2,y2-600
DrawImage Platine,xpla,ypla
DrawImage Lebensanzeige,xLeb,yLeb
PrintL "Versuchen Sie so viele Gegner wie",470,500
PrintL "möglich zu töten!!!",470,515
PrintL "Punkte:",160,567
PrintP Punkte,220,568

 
For a1=Each alien
DrawImage Enemy_1,a1\x,a1\y
   If a1\Leben > 0 And a1\y > y1 Then a1\y= a1\y -1      ;KI
   If a1\Leben > 0 And a1\y < y1 Then a1\y= a1\y +1
   If a1\Leben > 0 And a1\x < x1 Then a1\x= a1\x +1
   If a1\Leben > 0 And a1\x > x1 Then a1\x= a1\x -1
Next



If Leben > 0 Then DrawImage Lebenspunkt,xLep1,yLepall
If Leben > 1 Then DrawImage Lebenspunkt,xLep2,yLepall
If Leben > 2 Then DrawImage Lebenspunkt,xLep3,yLepall
If Leben > 3 Then DrawImage Lebenspunkt,xLep4,yLepall
If Leben > 4 Then DrawImage Lebenspunkt,xLep5,yLepall
If Leben > 5 Then DrawImage Lebenspunkt,xLep6,yLepall
If Leben > 6 Then DrawImage Lebenspunkt,xLep7,yLepall
If Leben > 7 Then DrawImage Lebenspunkt,xLep8,yLepall
If Leben > 8 Then DrawImage Lebenspunkt,xLep9,yLepall
If Leben > 9 Then DrawImage Lebenspunkt,xLep10,yLepall

   
   ;Schuss Schaden - Berechnung
While Leben > 0 And KeyHit(57)
   
   ;Schuss
For m=1 To 1
s1.strike=New Strike
s1\x = x1+18
s1\y = y1-3
s1\Schaden = 1
s1\Art = 1
Next
   For I = 1 To 500
   
      For s1=Each strike
         DrawImage Schuss_1,s1\x,s1\y-i
         
      Next
         For a1=Each alien
            For s1=Each strike
               If ImagesOverlap(Schuss_1,s1\x,s1\y-i,Enemy_1,a1\x,a1\y)= 1 Then a1\Leben = a1\Leben - s1\Schaden    
               If ImagesOverlap(Schuss_1,s1\x,s1\y-i,Enemy_1,a1\x,a1\y)= 1 Then Delete s1            
            Next
         Next
            For s1=Each strike
               If i = 500 Then Delete s1
            Next
   Next
 PlaySound(Sound1)
Wend

            
      
;Gegner Spawn und dead

For a1=Each alien
   If ImagesOverlap(Jet,x1,y1,Enemy_1,a1\x,a1\y) =1 Then a1\Leben = a1\Leben -1
   If ImagesOverlap(Jet,x1,y1,Enemy_1,a1\x,a1\y) =1 Then Leben = Leben -1
Next

For a1=Each alien
   While a1\Leben    < 1
If a1\Leben < 1 Then Punkte = Punkte + a1\Punkte
         If a1\Leben < 1 Then DrawMovie Enemy_1_Explosion,a1\x,a1\y
         If a1\Leben < 1 Then Delete a1
      For i=1 To 1
          a1.alien=New alien
          a1\x=Rand(0,800)
         a1\y=Rand(100,-2000)
          a1\Leben = 1
          a1\Punkte= 2
      Next
      
      Wend
         
         
      
;Jet Bewegen
      
Next

   If Leben > 0 And KeyDown(203) Then x1=x1-6    
   If Leben > 0 And KeyDown(205) Then x1=x1+6
   If x1 < 1 Then x1 = 1
   If x1 > 750 Then x1 = 750
   
   If Leben > 0 And KeyDown(208) Then y1=y1+6
   If Leben > 0 And KeyDown(200) Then y1=y1-6
   If y1 > 420 Then y1 = 420
   If y1 < 1 Then y1 = 1   
   
   If Leben > 0 And KeyDown(203) Then DrawImage Jet_links,x1,y1
   If Leben > 0 And KeyDown(205) Then DrawImage Jet_rechts,x1,y1
   If Not KeyDown(203) Or KeyDown(205) Or Leben < 1 Then DrawImage Jet,x1,y1
   If Leben > 0 And KeyDown(203) And KeyDown(205) Then DrawImage Jet,x1,y1
   
;Hintergrund bewegen
   
   If start = 1 Then y2=y2+5      
   If y2 > 600 Then y2 = 0

Flip

Until KeyDown(1)

End


Hope das hilft dir besser^^

Thunder

BeitragSo, Dez 21, 2008 19:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Repeat      ;Hauptschleife      

      
Cls


DrawImage Terrain,x2,y2
DrawImage Terrain,x2,y2-600
DrawImage Platine,xpla,ypla
DrawImage Lebensanzeige,xLeb,yLeb
PrintL "Versuchen Sie so viele Gegner wie",470,500
PrintL "möglich zu töten!!!",470,515
PrintL "Punkte:",160,567
PrintP Punkte,220,568

 
For a1=Each alien
DrawImage Enemy_1,a1\x,a1\y
   If a1\Leben > 0 And a1\y > y1 Then a1\y= a1\y -1      ;KI
   If a1\Leben > 0 And a1\y < y1 Then a1\y= a1\y +1
   If a1\Leben > 0 And a1\x < x1 Then a1\x= a1\x +1
   If a1\Leben > 0 And a1\x > x1 Then a1\x= a1\x -1
Next



If Leben > 0 Then DrawImage Lebenspunkt,xLep1,yLepall
If Leben > 1 Then DrawImage Lebenspunkt,xLep2,yLepall
If Leben > 2 Then DrawImage Lebenspunkt,xLep3,yLepall
If Leben > 3 Then DrawImage Lebenspunkt,xLep4,yLepall
If Leben > 4 Then DrawImage Lebenspunkt,xLep5,yLepall
If Leben > 5 Then DrawImage Lebenspunkt,xLep6,yLepall
If Leben > 6 Then DrawImage Lebenspunkt,xLep7,yLepall
If Leben > 7 Then DrawImage Lebenspunkt,xLep8,yLepall
If Leben > 8 Then DrawImage Lebenspunkt,xLep9,yLepall
If Leben > 9 Then DrawImage Lebenspunkt,xLep10,yLepall

   
   ;Schuss Schaden - Berechnung
While Leben > 0 And KeyHit(57)
   
   ;Schuss
For m=1 To 1
s1.strike=New Strike
s1\x = x1+18
s1\y = y1-3
s1\Schaden = 1
s1\Art = 1
Next
   For I = 1 To 500
   
      For s1=Each strike
         DrawImage Schuss_1,s1\x,s1\y-i
         
      Next
         For a1=Each alien
            For s1=Each strike
               If ImagesOverlap(Schuss_1,s1\x,s1\y-i,Enemy_1,a1\x,a1\y)= 1 Then a1\Leben = a1\Leben - s1\Schaden    
               If ImagesOverlap(Schuss_1,s1\x,s1\y-i,Enemy_1,a1\x,a1\y)= 1 Then Delete s1            
            Next
         Next
            For s1=Each strike
               If i = 500 Then Delete s1
            Next
   Next
 PlaySound(Sound1)
Wend

            
      
;Gegner Spawn und dead

For a1=Each alien
   If ImagesOverlap(Jet,x1,y1,Enemy_1,a1\x,a1\y) =1 Then a1\Leben = a1\Leben -1
   If ImagesOverlap(Jet,x1,y1,Enemy_1,a1\x,a1\y) =1 Then Leben = Leben -1
Next

For a1=Each alien
   While a1\Leben    < 1
If a1\Leben < 1 Then Punkte = Punkte + a1\Punkte
         If a1\Leben < 1 Then DrawMovie Enemy_1_Explosion,a1\x,a1\y
         If a1\Leben < 1 Then Delete a1
      For i=1 To 1
          a1.alien=New alien
          a1\x=Rand(0,800)
         a1\y=Rand(100,-2000)
          a1\Leben = 1
          a1\Punkte= 2
      Next
      
      Wend
         
         
      
;Jet Bewegen
      
Next

   If Leben > 0 And KeyDown(203) Then x1=x1-6    
   If Leben > 0 And KeyDown(205) Then x1=x1+6
   If x1 < 1 Then x1 = 1
   If x1 > 750 Then x1 = 750
   
   If Leben > 0 And KeyDown(208) Then y1=y1+6
   If Leben > 0 And KeyDown(200) Then y1=y1-6
   If y1 > 420 Then y1 = 420
   If y1 < 1 Then y1 = 1   
   
   If Leben > 0 And KeyDown(203) Then DrawImage Jet_links,x1,y1
   If Leben > 0 And KeyDown(205) Then DrawImage Jet_rechts,x1,y1
   If Not KeyDown(203) Or KeyDown(205) Or Leben < 1 Then DrawImage Jet,x1,y1
   If Leben > 0 And KeyDown(203) And KeyDown(205) Then DrawImage Jet,x1,y1
   
;Hintergrund bewegen
   
   If start = 1 Then y2=y2+5      
   If y2 > 600 Then y2 = 0

Flip

Until KeyDown(1)

End


Jetzt ist das ganze schon etwas einfacher. Geh mal deine For I=1 to 500 - Schleife durch. Du zeichnest 500 mal dein Schussbild und dann flipst du erst -> für den Benutzer sieht es so aus als währe es ein Laserstrahl.

Aufbau würde ich so machen:

Code: [AUSKLAPPEN]
If Keyhit(57) Then
shot.Tshot=New Tshot
shot\x=?
shot\y=?
schuss=1
endif
If schuss=1 Then
For shot=Each Tshot
shot\y=shot\y-1
drawimage shotimage,shot\x,shot\y
If shot\y<0 then delete shot
Next


Ist jetzt nur der Aufbau eines Teils in der Hauptschleife.[/code]
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit
 

Hurrikan256

BeitragSo, Dez 21, 2008 20:11
Antworten mit Zitat
Benutzer-Profile anzeigen
sry Leider hilft das nicht weil dann spinnt der mit "Repeat without until" oder "Next without for " immer wenn ich das anders vershiebe ne neue Meldung "Wend without while"...
pls Help will nur schießen können... Crying or Very sad
Hier habt ihr meinen Ganzen code. Vielleicht hilfts..
Code: [AUSKLAPPEN]

Graphics 800,600,32,1
SetBuffer BackBuffer()
Frame = CreateTimer(60)
;Jet
x1 = 380
y1 = 420
Leben = 10
Punkte = 0
;Hintergrund
x2 = 0      
y2 = 0
x3 = 0
y3 = 0
start = 1

;Enemy1
Type alien
 Field x
 Field y
 Field Leben
 Field Punkte
End Type

;Schuss
Type Strike
 Field x
 Field y
 Field Schaden
End Type

;Platine Koordinaten
xpla = 0
ypla =   482
;Lebensanzeige      
xLeb = 20
yLeb = 502
;Lebenspunkt
xLep1 =23   
xLep2 =29
xLep3 =35
xLep4 =41
xLep5 =47
xLep6 =53
xLep7 =59
xLep8 =65
xLep9 =71
xLep10 =77
yLepall =505
;Bilder Laden
Lebenspunkt = LoadImage ("Graphics\Menü\InGame\Lebenspunkt.bmp")
Lebensanzeige = LoadImage("Graphics\Menü\InGame\Lebensanzeige.bmp")
Platine = LoadImage("Graphics\Menü\InGame\Platine.bmp")
Jet = LoadImage("Graphics\Model\Player\Jet_1_normal.bmp")
Terrain = LoadImage("Graphics\Terrain\Space_1.bmp")
Jet_links = LoadImage("Graphics\Model\Player\Jet_1_links.bmp")
Jet_rechts = LoadImage("Graphics\Model\Player\Jet_1_rechts.bmp")
Schuss_1 = LoadImage("Graphics\Weapons\Bam_1.bmp")
Game_over = LoadImage("Graphics\Menü\InGame\Game_over.bmp")
Enemy_1 = LoadImage("Graphics\Model\Enemy\Enemy_1.bmp")
;Video Laden
Enemy_1_Explosion = OpenMovie("Graphics\Model\Player\Jet_explosion.gif")

;Audio Laden
Musik1   = PlayMusic("-Sound\music\DragonForce - Through The Fire And Flames.mp3")
Sound1   = LoadSound("-Sound\Effect\Psiu.wav")


;Enemy
For i=1 To 50
 a1.alien=New alien
 a1\x=Rand(0,800)
 a1\y=Rand(100,-2000)
 a1\Leben = 1
 a1\Punkte= 2
Next

Repeat  ;Hauptschleife 

 
Cls


DrawImage Terrain,x2,y2
DrawImage Terrain,x2,y2-600
DrawImage Platine,xpla,ypla
DrawImage Lebensanzeige,xLeb,yLeb



 
For a1=Each alien
DrawImage Enemy_1,a1\x,a1\y
 If a1\Leben > 0 And a1\y > y1 Then a1\y= a1\y -1  ;KI
 If a1\Leben > 0 And a1\y < y1 Then a1\y= a1\y +1
 If a1\Leben > 0 And a1\x < x1 Then a1\x= a1\x +1
 If a1\Leben > 0 And a1\x > x1 Then a1\x= a1\x -1
Next



If Leben > 0 Then DrawImage Lebenspunkt,xLep1,yLepall
If Leben > 1 Then DrawImage Lebenspunkt,xLep2,yLepall
If Leben > 2 Then DrawImage Lebenspunkt,xLep3,yLepall
If Leben > 3 Then DrawImage Lebenspunkt,xLep4,yLepall
If Leben > 4 Then DrawImage Lebenspunkt,xLep5,yLepall
If Leben > 5 Then DrawImage Lebenspunkt,xLep6,yLepall
If Leben > 6 Then DrawImage Lebenspunkt,xLep7,yLepall
If Leben > 7 Then DrawImage Lebenspunkt,xLep8,yLepall
If Leben > 8 Then DrawImage Lebenspunkt,xLep9,yLepall
If Leben > 9 Then DrawImage Lebenspunkt,xLep10,yLepall

 
 ;Schuss Schaden - Berechnung
While Leben > 0 And KeyHit(57)
 
 ;Schuss
For m=1 To 1
s1.strike=New Strike
s1\x = x1+18
s1\y = y1-3
s1\Schaden = 1
Next
 For I = 1 To 500
  For s1=Each strike
   DrawImage Schuss_1,s1\x,s1\y-i
  Next
   For a1=Each alien
    For s1=Each strike
     If ImagesOverlap(Schuss_1,s1\x,s1\y-i,Enemy_1,a1\x,a1\y)= 1 Then a1\Leben = a1\Leben - s1\Schaden 
     If ImagesOverlap(Schuss_1,s1\x,s1\y-i,Enemy_1,a1\x,a1\y)= 1 Then Delete s1   
    Next
   Next
    For s1=Each strike
     If i = 500 Then Delete s1
    Next
 Next
 PlaySound(Sound1)

Wend

   
 


For a1=Each alien
 If ImagesOverlap(Jet,x1,y1,Enemy_1,a1\x,a1\y) =1 Then a1\Leben = a1\Leben -1
 If ImagesOverlap(Jet,x1,y1,Enemy_1,a1\x,a1\y) =1 Then Leben = Leben -1
Next

For a1=Each alien
 If a1\Leben < 1 Then DrawMovie Enemy_1_Explosion,a1\x,a1\y
 If a1\Leben < 1 Then Delete a1
Next
 
 
 

 If Leben > 0 And KeyDown(203) Then x1=x1-6  ;Jet Bewegen
 If Leben > 0 And KeyDown(205) Then x1=x1+6
 If x1 < 1 Then x1 = 1
 If x1 > 750 Then x1 = 750
 
 If Leben > 0 And KeyDown(208) Then y1=y1+6
 If Leben > 0 And KeyDown(200) Then y1=y1-6
 If y1 > 420 Then y1 = 420
 If y1 < 1 Then y1 = 1
 
 If Leben > 0 And KeyDown(203) Then DrawImage Jet_links,x1,y1
 If Leben > 0 And KeyDown(205) Then DrawImage Jet_rechts,x1,y1
 If Not KeyDown(203) Or KeyDown(205) Or Leben < 1 Then DrawImage Jet,x1,y1
 If Leben > 0 And KeyDown(203) And KeyDown(205) Then DrawImage Jet,x1,y1
 
 If start = 1 Then y2=y2+5  ;Hintergrund bewegen
 If y2 > 600 Then y2 = 0

Flip

Until KeyDown(1)

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Dez 21, 2008 20:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau dir nochmal den Type insbesondere Each -Befehl genauer an, und sehe selbst was du falsch gemacht hast. Der Fehler hätte im übrigen bereits schon sehr früh aufgefallen sein müßen. Ich frage mich echt, wie man so viel schreiben kann ohne auch einmal dazwischen mal compiliert zu haben?
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Thunder

BeitragSo, Dez 21, 2008 20:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab mich vielleicht vorhin nicht so klar ausgedrückt. Also die ganze While-Schleife weg und stattdessen:
Ob es noch Fehler gibt weiß ich nicht. Hab die Grafiken nicht.
Und auch wenn ich dir den Codeabschnitt schon hinlege, solltest du dir wie schon von Hectic gesagt die Befehle Type und Each anschauen.

Code: [AUSKLAPPEN]
If KeyHit(57) Then
s1.strike=New Strike
s1\x = x1+18
s1\y = y1-3
s1\Schaden = 1
PlaySound(Sound1)
EndIf
 
For s1=Each strike
  s1\y=s1\y+2
  DrawImage Schuss_1,s1\x,s1\y
  If ImagesOverlap(Schuss_1,s1\x,s1\y-i,Enemy_1,a1\x,a1\y)= 1 Then a1\Leben = a1\Leben - s1\Schaden 
  If ImagesOverlap(Schuss_1,s1\x,s1\y-i,Enemy_1,a1\x,a1\y)= 1 Then Delete s1   
  If s1\y>=500 Then Delete s1
Next


- Jetzt hab ichs auf deinen Code abgestimmt.

/Edit: Du warst nicht der mit dem Buch sry.
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit
  • Zuletzt bearbeitet von Thunder am So, Dez 21, 2008 21:03, insgesamt einmal bearbeitet
 

Hurrikan256

BeitragSo, Dez 21, 2008 20:37
Antworten mit Zitat
Benutzer-Profile anzeigen
So wie ich das geschrieben hab geht es ja nur nich so wie ich will(mit dem Schuss anstadt Strahl)
Und bin erst 3 Tage dabei und hab bis jetzt versucht alles ohne vorgefertigtes schema zu machen doch das mit dem schuss ist mir zu hoch xD aber ich werde weiter gucken...

Edit : Danke hab ich nich gesehen ich guxx mal
  • Zuletzt bearbeitet von Hurrikan256 am So, Dez 21, 2008 20:39, insgesamt einmal bearbeitet

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Dez 21, 2008 20:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich nehme meine vorherige Behauptung zurück, da es auch so geht. Allerdings sind mir ein paar Dinge noch aufgefallen:

Was soll das hier?
Code: [AUSKLAPPEN]
;Lebenspunkt
xLep1 =23   
xLep2 =29
xLep3 =35
xLep4 =41
...


Mach das lieber per Dim und speziell in deinem Fall sogar ganz ohne Variable und rechne es direkt um.
Anstelle Code: [AUSKLAPPEN]
   If Leben > 0 Then DrawImage Lebenspunkt,xLep1,yLepall
   If Leben > 1 Then DrawImage Lebenspunkt,xLep2,yLepall
   If Leben > 2 Then DrawImage Lebenspunkt,xLep3,yLepall
   If Leben > 3 Then DrawImage Lebenspunkt,xLep4,yLepall
   If Leben > 4 Then DrawImage Lebenspunkt,xLep5,yLepall
   If Leben > 5 Then DrawImage Lebenspunkt,xLep6,yLepall
   If Leben > 6 Then DrawImage Lebenspunkt,xLep7,yLepall
   If Leben > 7 Then DrawImage Lebenspunkt,xLep8,yLepall
   If Leben > 8 Then DrawImage Lebenspunkt,xLep9,yLepall
   If Leben > 9 Then DrawImage Lebenspunkt,xLep10,yLepall


Einfach Code: [AUSKLAPPEN]

For Count=1 to Leben
   DrawImage Lebenspunkt,23+Count*6,505
Next


- - -

Außerdem würde ich ewig verschachtelte Schleifen versuchen zu meiden. Überlede dir wie man das ganz struktuiert machen könnte. Ich bin mir sicher das man den Code auf die Hälfte an Codezeilen und dabei auch noch effektiever programmieren könnte.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

Hurrikan256

BeitragSo, Dez 21, 2008 20:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich Glaube ich habs....^^
Danke an alle feißigen Helfer.
Ich werde mir eure Ratschläge zu Herzen nehemen.
Das Buch kenn ich aber ich habs selber nicht. Ich hab mir die Befehle von hier, wiki, und den ersten 5 seiten von diesem Buch.^^
Und Sorry wegen meiner Code Struktur aber nach 3 Tagen bin ich froh das überhaupt was geht^^

Viel Spaß Euch Code Monkeys noch Wink

EDIT:

Habe doch noch eine Frage. Wenn ich stadt KeyHit Keydown mache kriege ich wieder son strahl...das ja klar.
Wenn ich nu ein Maschinengewehr haben möchte muss ich ja keydown machen.
Aufgepasst...meine Frage is nu wie ich den ab stand zuwischen den schüssen endern kann? Das troz Keydown die schüsse abstand haben. Maschinengewehr eben^^

Pls tipps.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Dez 21, 2008 23:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Variable hoch zählen oder Zeit messen und nur wenn die Variable einen bestimmten Wert oder eine bestimmte Zeit abgelaufen ist, soll eben ein Schuss ebgefeuert werden.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

Hurrikan256

BeitragSo, Dez 21, 2008 23:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Hectic.
Du bis mir heute eine sehr große Hilfe^^
Ich hab mich für das variable zählen entschieden weil ich nich weiß wie das andere geht. Vielleicht kannst du mir da noch einen Link schicken (mit der Zeit) wo das erkärt ist..oder jmd anders^^

ozzi789

BeitragMo, Dez 22, 2008 9:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics 800,600,32,2 ;grafikmodus
SetBuffer BackBuffer() ;Dobblebuffering initalisieren

While Not KeyHit(1) ;Schleife


If MilliSecs()>verlaufene_zeit+500 ;Wenn die akktuelle Zeit grösser ist als die Verlaufene Zeit + 500 ms ( halbe sekunde)
   verlaufene_zeit=MilliSecs();Wird die verlaufene Zeit = der aktuellen
   y=y+15 ;Bewirkt nur das Schuss ein wenig mehr unten gezeichnet wird
   Text 0,y,"*Schuss*"
EndIf

Flip ;Buffer Flipen
Wend ;Schleife Beenden
End


mfg
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

Hurrikan256

BeitragMo, Dez 22, 2008 11:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Leute^^
Wichtig gute Community hier Wink
Wenn mein Spiel fertig is sach ich euch bescheid xD

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group