Schießen?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Gameprogman

Betreff: Schießen?

BeitragDi, Sep 21, 2004 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi
Ich wollt Einen geilen 2D Alienshooter schreiben, aber der ist nur Halb so Geil Wenn man nich schießen kann.

Kann mir Bitte mal wer erklären wie das geht?

Noch ne Kleine Umfrage dabei Wink
www.bandradr.de ! Awesome !
 

David

BeitragDi, Sep 21, 2004 14:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Toll, ein Shooter bei dem man nich schießen kann!
Das würde dem deutschen Jugendschutz gefallen!!!

Zum Thema:

Bisschen Pseudocode...
Code: [AUSKLAPPEN]

Type Schuss_t
   field x, y
   field power
   field live
   field speed
end type

function neuerschuss()
   schuss = new Schuss_t
   schuss\x = spielerposition\x +- offset
   schuss\y = spielerposition\y +- offset
   schuss\power = anzahl der lebenspunkte welche dem gegner abgezogen werden   
   schuss\live = lebenszeit des schusses
   schuss\speed = geschwindigkeit
end function

function RenderFrame()
   foreach schuss...
      schuss\y -= schuss\speed (/ faktor)
      schuss\leben -= 1
      
      if ( schuss\leben < 0 )
         free( schuss )
      end if

      if ( kollision( gegner(x), schuss ) )
         gegner( x )\leben -= schuss\power;
      end if
   next
end function


So in der Art müsst das ja funktionieren!

grüße

P.S.: Ich hab noch nie einen Weltraumschooter programmiert! Smile
http://bl4ckd0g.funpic.de

Jan_

Ehemaliger Admin

BeitragDi, Sep 21, 2004 14:54
Antworten mit Zitat
Benutzer-Profile anzeigen
type Schuss
Field X,Y
End type

If keyhit(27) then schuss.schuss = new SChuss:schuss\X=PlayerX:Schuss\Y=playerY+10

for schuss = each schuss
SCHUSS\y=SCHUSS\Y+1
next
between angels and insects

Henry

BeitragDi, Sep 21, 2004 14:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Und wenn Du Dir die installierten BlitzBasic Samples anguckst, findest Du darunter sogar Shooter, in denen man schiessen kann...kaum zu glauben, was?
Und die kommen sogar mit komplettem Source-Code, damit das Forum von solchen unnötigen Fragen verschont bleiben.
Aiya Eärendil Elenion Ancalima!

All you have to decide is what to do with the time that is given to you.

Robsite.de ist eine Anlaufstelle für Tutorials und Tools, die Noobs das Leben leichter machen!
Forensuche ist nicht nur als Lückenfüller in den oberen Links gedacht!

dominik

BeitragDi, Sep 21, 2004 18:28
Antworten mit Zitat
Benutzer-Profile anzeigen
sorry aber so ne idiotischere Umfrage hab ich schon lange nicht mehr gesehen! Confused Confused

was soll die frage? mir BB kann man nicht nur Weltraumshooter schreiben, und ich glaub kaum das jemand wriklich schon mehr als 2-3 wirklich gute gemacht hat. was solldes auch für nen s´inn haben. kein mehsc spielt heute noch als zeitvertreib solche dinger. sie sind zum lernen ganz gut aber warum sollte man mehrere machen wenn dann verbessert man seinen einen.
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof.

bruZard

BeitragDi, Sep 21, 2004 19:01
Antworten mit Zitat
Benutzer-Profile anzeigen
MOD
Kein Grund für eine Umfrage
/MOD
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image
 

hot-bit

Gast

BeitragDi, Sep 21, 2004 19:06
Antworten mit Zitat
Hoi,

SO sehe ich es gerne Wink

Weg mit dem Drequ Smile

Toni
 

Sibitiger

BeitragDi, Sep 21, 2004 20:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier auch ein Schuss Beisp.:

Code: [AUSKLAPPEN]

Type schuss
Field x,y
End Type

Graphics 400,300,16,2
SetBuffer BackBuffer()
Global sch.schuss

Repeat
If KeyHit(28) Then neusch
alleszeichnen
Flip
Cls
Until KeyHit(1):End

Function neusch()
sch.schuss=New schuss
sch\x=0
sch\y=10
End Function

Function alleszeichnen()
For sch=Each schuss
sch\x=sch\x+1
Rect sch\x,sch\y,10,10,1
If sch\x=>250 Then Delete sch
Next
End Function



Sibitiger

Hummelpups

BeitragMi, Sep 22, 2004 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Mal wieder einer von viele die denken, sie müssen beachtet werden.

Man lege ihn www.robsite.de nahe und dann is gut.

Surat

BeitragFr, Okt 08, 2004 13:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Da hast du aber schön daneben geschossen!
Entweder du schaust dir die Samples an oder besorgst dir
ein Buch(siehe www.blitzbasic.de). Dann kannst du dir den Code
ganz genau ankucken(natürlich auch wie man ballert)
"DER GRÖßTE FEIND IST IN DEN EIGENEN REIHEN" (Trygonia-Xen's Quest)

AZUON-Beyond the dark life (2%)
SOULS OF DESTINY (23%)

Chester

BeitragFr, Okt 08, 2004 15:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Schreibt dochma ein Tut über sowas("Ja muss ich den jetzt alles machen"), denn die Frage würde schon öfters gestellt.
 

aave13

BeitragDo, Sep 07, 2006 19:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Sibitiger hat Folgendes geschrieben:
Hier auch ein Schuss Beisp.:

Code: [AUSKLAPPEN]

Type schuss
Field x,y
End Type

Graphics 400,300,16,2
SetBuffer BackBuffer()
Global sch.schuss

Repeat
If KeyHit(28) Then neusch
alleszeichnen
Flip
Cls
Until KeyHit(1):End

Function neusch()
sch.schuss=New schuss
sch\x=0
sch\y=10
End Function

Function alleszeichnen()
For sch=Each schuss
sch\x=sch\x+1
Rect sch\x,sch\y,10,10,1
If sch\x=>250 Then Delete sch
Next
End Function



Sibitiger


moin,
das beispiel ist gut, leider lässt sich das nicht in eine 3dwelt einbauen. könntest du mir da ein paar tipps geben, das rect durch sprites zu ersetzen (alles in 3d)? bitte wäre sehr nett Smile

mfg aave

BladeRunner

Moderator

BeitragDo, Sep 07, 2006 19:56
Antworten mit Zitat
Benutzer-Profile anzeigen
EDIT:
Datum falsch gelesen, daher falsch geantwortet. Ist ja uralt der Thread.
Was bleibt:

Das Prinzip ist btw. auch unter 3D gleich. Wär doch ne tolle Übung für dich.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

aave13

BeitragFr, Sep 08, 2006 13:50
Antworten mit Zitat
Benutzer-Profile anzeigen
nein das geht nicht weil da ein "cls" drin vorkommt, was mir die komplette 3dsicht "vernichtet"^^. könnte mir jemand vielleicht ein beispielcode mit einem sprite coden, was einfach nur von der kamera aus nach vorne geht? wäre echt nett, weil in den beispielen von castle oder so ist alles ein bisschen kompliziert... danke Smile

mfg aave

BladeRunner

Moderator

BeitragFr, Sep 08, 2006 15:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, wir werden Dir nicht dein Game schreiben...
Wenn Du Teile nicht verstehst, frag gezielt nach ihnen, aber es liegt in Deiner Verantwortung deinen code zu erstellen.
Versuchs erstmal selbst, wenn es schiefgeht zeig uns gezielt die Probleme und dann kann man Dir Tipps geben.

Edit: Und wenn dir Castle zu kompliziert ist, warum solltest Du dann einen Code von uns verstehen. Du solltest erst mal mit den Befehlen experiomentieren bis Du sie verstanden hast.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

aave13

BeitragFr, Sep 08, 2006 15:15
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich habe jetzt folgenden code:

Code: [AUSKLAPPEN]

Type schuesse
Field x,y
End Type

Graphics3D 800,600,0,2
SetBuffer BackBuffer()
Global schuss.schuesse

HidePointer

camera=CreateCamera():PositionEntity camera,0,5,0
terrain=CreateTerrain(16)
spark=LoadSprite("bluspark.bmp"):PositionEntity spark,10,10,10

While Not KeyHit(1)

   mXs# = MouseXSpeed():mYs# = MouseYSpeed()
      TurnEntity Camera,0,-(mXs#/5),0,True:TurnEntity Camera,(mYs#/5),0,0
      MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
If MouseHit(1) Then neuerschuss
alleszeichnen

UpdateWorld


Flip
Cls
RenderWorld
Color 0,255,0
Rect 370,300,20,1:Rect 410,300,20,1:Rect 400,270,1,20:Rect 400,310,1,20
Color 255,255,255

Wend:End

Function neuerschuss()
schuss.schuesse=New schuesse
schuss\x=390
schuss\y=600
End Function

Function alleszeichnen()
For schuss=Each schuesse
schuss\y=schuss\y-10
Rect schuss\x,schuss\y,20,20
If schuss\y=0 Then Delete schuss
If MouseHit(2) Then Delete schuss
Next
End Function


das sieht folgendermaßen aus:
man hat ein fadenkreuz, man kann sich nicht bewegen, man kann die sicht mit der maus verändern, man hat ein kleines terrain und da ist ein sprite. man kann mit mausklick einen schuss abgeben, aber nur in 2d. jetzt möchte ich statt diesem rect ein sprite einsetzen, was aber nicht vom bildschirmende nach oben fliegt sondern in den bildschirm rein (von der kamera ins weite da draußen Rolling Eyes . irgendwann soll natürlich schluss sein, z.b bei einer kollision. aber dazu später, erstmal möchte ich ein sprite verschießen können.
dazu müsste ich aber doch noch eine dritte koordinate einrichten, ich weiß aber generell nicht wie ich das anstellen soll, weil ein sprite kann man ja nicht einfach zeichnen, sondern man muss es positionieren. aber wenn ich statt rect [...] einfach positionentity sprite,schuss\x,5,schuss\y mache, läuft garnichts....

hoffe ihr versteht jetzt was ich meine, und @bladerunner: hoffentlich habe ich es exakt erklärt... Rolling Eyes

mfg aave

/edit: hab mal ausprobiert wie das gehen könnte, geht aber leider nicht...:

Code: [AUSKLAPPEN]

Type schuesse
Field x,y
End Type

Function neuerschuss()
schuss.schuesse=New schuesse
schuss\x=EntityX(camera)
schuss\y=EntityZ(camera)
End Function

Function alleszeichnen()
For schuss=Each schuesse
schuss\y=schuss\y+1
PositionEntity spark,schuss\x,5,schuss\y
If schuss\y=>10 Then Delete schuss
If MouseHit(2) Then Delete schuss
Next
End Function



Graphics3D 800,600,0,2
SetBuffer BackBuffer()
Global schuss.schuesse

HidePointer

camera=CreateCamera():PositionEntity camera,0,5,0
terrain=CreateTerrain(16)
spark=LoadSprite("bluspark.bmp"):PositionEntity spark,10,10,10

While Not KeyHit(1)

   mXs# = MouseXSpeed():mYs# = MouseYSpeed()
      TurnEntity Camera,0,-(mXs#/5),0,True:TurnEntity Camera,(mYs#/5),0,0
      MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
If MouseHit(1) Then neuerschuss
alleszeichnen

UpdateWorld


Flip
Cls
RenderWorld
Color 0,255,0
Rect 370,300,20,1:Rect 410,300,20,1:Rect 400,270,1,20:Rect 400,310,1,20
Color 255,255,255

Wend:End

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group