Schießen?
Übersicht

![]() |
GameprogmanBetreff: Schießen? |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() |
||
www.bandradr.de ! Awesome ! |
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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! ![]() |
||
http://bl4ckd0g.funpic.de |
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
sorry aber so ne idiotischere Umfrage hab ich schon lange nicht mehr gesehen! ![]() ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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-bitGast |
![]() Antworten mit Zitat |
|
---|---|---|
Hoi,
SO sehe ich es gerne ![]() Weg mit dem Drequ ![]() Toni |
||
Sibitiger |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mal wieder einer von viele die denken, sie müssen beachtet werden.
Man lege ihn www.robsite.de nahe und dann is gut. |
||
![]() |
Surat |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schreibt dochma ein Tut über sowas("Ja muss ich den jetzt alles machen"), denn die Frage würde schon öfters gestellt. | ||
aave13 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() mfg aave |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() mfg aave |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() 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... ![]() 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 |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group