schiessen
Übersicht

desperadoBetreff: schiessen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich will eine waffe in einem ego shooter zum schiessen bringen wie muss ich das machen? | ||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich glaub das versteh ich net ![]() |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() Da gibt es zwei Tutorials über Types. |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das is abba ein 3d game | ||
IonPainter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
dann poste es in 3d graphics, verflucht... | ||
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group