schiessen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

desperado

Betreff: schiessen

BeitragSo, März 21, 2004 12:20
Antworten mit Zitat
Benutzer-Profile anzeigen
ich will eine waffe in einem ego shooter zum schiessen bringen wie muss ich das machen?

Hubsi

BeitragSo, März 21, 2004 12:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Leg ein Type an mit folgenden Feldern:

- xPos
- yPos
- xRichtung
- yRichtung
- Typ (bei mehreren Waffen)

Wenn jetzt geschossen werden soll machst du einen neuen Eintrag. Mit einer For...Each...Next-Schleife malst Du dann die ganzen Schüsse, prüfst Kollision und was halt sonst noch alles ansteht. So kannst Du auch ganz einfach Schüsse bei Bedarf löschen.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

desperado

BeitragSo, März 21, 2004 12:42
Antworten mit Zitat
Benutzer-Profile anzeigen
ich glaub das versteh ich net Crying or Very sad

Hubsi

BeitragSo, März 21, 2004 12:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Beispiel:

Code: [AUSKLAPPEN]
Graphics 800,600,0,2

Type schuss
Field x,y
End Type

; Hauptschleife
Repeat
For s.schuss=Each schuss
  Oval s\x,s\y,4,4,0
  s\x=s\x+6
  If s\x>800 Then delete s.schuss
Next

If MouseHit(1)
  s.schuss=New schuss
  s\x=MouseX()
  s\y=MouseY()
EndIf
Until KeyHit(1)
End


Ist jetzt Pseudo, sollte aber funktionieren und zu verstehen sein. Wenn nicht empfiehlt es sich nach einem Type-Tut zu suchen. Im Prinzip sind die gar nicht schwer, wenn man mal das Prinzip gerafft hat.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

ChristianH

BeitragSo, März 21, 2004 12:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Arrow http://blitzbase.de/4c.htm

Da gibt es zwei Tutorials über Types.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, März 21, 2004 13:00
Antworten mit Zitat
Benutzer-Profile anzeigen
hier mal was mit Arrays...
Type sind da aber schon besser Code: [AUSKLAPPEN]
Graphics 800,600,16,2 ;
SetBuffer BackBuffer()
Const ESC = 1, Bildwiederholung = 50
Const Hoch= 200,Runter=208,Links = 203,Rechts=205
Const Links_Alt= 56,Space = 57
frameTimer=CreateTimer(Bildwiederholung)
Dim Schuss(30,3); in 0 aktiv, in 1 x, in 2 y,  in 3 art, kann nach belieben erweitert werden
;Hauptschleife
While Not KeyDown(ESC)
   If KeyDown(Hoch)     Then  Y=Y -2
   If KeyDown(Runter)   Then  Y=Y +2
   If KeyDown(Links)    Then  x=x -2
   If KeyDown(Rechts)   Then  x=x +2
       Rect x,y,20,50,1 ; Super raumschiff Malen

   ; schussabgabe >>>>>>>    schuss_starten(X,Y,Art )
   If KeyHit(Space) Then  schuss_starten(   x+10,   y-25,   0 )
   If KeyHit(Links_Alt) Then  schuss_starten(   x+10,   y-25,   1 )
   Schuss_malen() ; alle malen die aktiv sind

   WaitTimer(frameTimer)
;FPS  # FPS   # FPS   # FPS   # FPS   # FPS   # FPS   # FPS   # FPS   # FPS
  Text 200,10,BW+" FPS": bwx= bwx +1:If MilliSecs() > oltZeit  + 1000 Then BW = bwx:bwx = 0: oltZeit=  MilliSecs()
   Flip
   Cls
Wend
End

Function  schuss_starten  (x_pos,y_pos,Art= 0)
 For t= 0 To 30
  If Schuss(t,0)= 0 Then ; freien Schuss gefunden ;bzw Leere variable
    Schuss(t,0) = 1  ; schuss aktivieren
    Schuss(t,1) = x_pos ; positionen übergeben
    Schuss(t,2) = y_pos
     Schuss(t,3) = Art ;welche Waffe es ist
    Exit ;schleife verlassen da eine gefunden wurde
 End If
Next
End Function

Function Schuss_malen() ; alle malen
For t= 0 To 30
  If Schuss(t,0) = 1 Then ; Wenn aktiver Schuss dann malen
   Select Schuss(t,3) ; je nach art der waffe
     Case 0  ; hier evt. standard laser
      Schuss(t,2) =Schuss(t,2) - 5 ;Schuss weiter nach oben
         If  Schuss(t,2) <    - 50 Then  ; -50 <<Je nach Größe des bildes
          Schuss(t,0) = 0 ;Abschalten
         End If
         Rect Schuss(t,1),    Schuss(t,2) ,1,30,1
       ;DrawImage    Laserbild,     Schuss(t,1),    Schuss(t,2)
     Case 1  ; Vieleicht rakete usw.
           Schuss(t,2) =Schuss(t,2) - 3 ;Schuss weiter nach oben
         If  Schuss(t,2) <    - 50 Then  ;Je nach Größe des bildes
          Schuss(t,0) = 0 ;Abschalten
         End If
         Rect Schuss(t,1),    Schuss(t,2) ,3,8,1
       ;DrawImage    Laserbild,     Schuss(t,1),    Schuss(t,2)
     Case 3
     ; Vieleicht ne Mine usw.
     End Select
  End If
Next
End Function
[BB2D | BB3D | BB+]
 

desperado

BeitragSo, März 21, 2004 17:18
Antworten mit Zitat
Benutzer-Profile anzeigen
das is abba ein 3d game
 

IonPainter

BeitragSo, März 21, 2004 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
dann poste es in 3d graphics, verflucht...

Jolinah

BeitragSo, März 21, 2004 17:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist dann trotzdem Ungefähr das gleiche. Jedesmal wenn ein Schuss abgefeuert wird, wird ein Objekt erzeugt. Ob das jetzt mit Types oder Arrays oder sonst wie gemacht wird spielt ja keine Rolle. Jedes Schussobjekt hat eine bestimmte Richtung + Geschwindigkeit und andere Eigenschaften.

Das einfachste ist wohl für den Anfang ein Skalierter würfel (etwas in die Länge gezogen), den Ausrichten in die Richtung wo die Waffe zeigt. Dann jedes Frame die Geschwindigkeit dazu addieren und schon fliegt der Schuss.

Auf Kollision prüfen, wenn der Schuss mit ner Wand kollidiert löschen, bzw. Explosion oder was auch immer. Wenn er mit nem Gegner oder ähnlichem kollidiert das selbe nur das der Gegner wahrscheinlich noch Schaden davon nimmt.

Beispiel hab ich jetzt grad keins, aber gabs soviel ich weiss schon öfters.

Nützliche Befehle

CreateCube (Würfel erstellen)
EntityType (Würfel Kollisionstyp festlegen, und Gegner bzw. Welt Kollisionstyp)
ScaleEntity (Würfel skalieren)
MoveEntity (Würfel bewegen)
Collisions (Kollisionsprüfung)
EntityCollided (Prüfen ob der Würfel mit was bestimmten kollidiert ist)

Sollte nicht so schwer sein. Wenn man das hat kann man später immer noch bessere Physik einbauen Wink

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group