360 grad schiesseen?
Übersicht

![]() |
Padde@gameworkerBetreff: 360 grad schiesseen? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tach Leute! Ich mache gerade ein Raumschiff Spiel, das man mit der TastATUr steuert! Man dreht das Raumschuff mit den Pfeiltasten um 360 Graad und mit Pfeiltase nach oben gibt man gas!nun will ich eine schussfunktion einbauen, deren Schüsse immer dorthingehen, wo die "nase" des Raumschiffs ist! kann mir jemand den Code so verändern, dass das klappt? thx ![]() Code: [AUSKLAPPEN] AppTitle "Starcommander 1" ;grafiken Graphics 1024,768,32,1 SetBuffer=BackBuffer() TFormFilter 1 AutoMidHandle 1 SeedRnd MilliSecs() ;Globalen Dim player(360) ;Spieler malen For gr=0 To 359 ;Grade berechnen player(gr)=LoadImage("gfx\player_ship.bmp") RotateImage player(gr),gr Cls DrawBlock player(gr),400,300 Flip Next ;Sterne im Hintergrund malen Dim star_grafik(3) For x=1 To 3 star_grafik(x)=LoadImage("gfx\star"+Str$(x)+".bmp") Next ;Types Type player ;Spieler Raumschiff Field x#,y#,grad# Field spx#,spy#,maxspeed#,wendigkeit#,beschleunigung# End Type Type stern ;Sterne Field x#,y#,tiefe#,nummer End Type Global spieler.player=New player ;den Spieler immer updaten spieler\maxspeed#=5 spieler\beschleunigung#=0.05 spieler\wendigkeit#=2 For z=1 To 20 stern.stern=New stern stern\x=Rand(-500,500) stern\y=Rand(-400,400) If z<=20 Then stern\tiefe#=Rnd(1,1.2):stern\nummer=1 If z<17 Then stern\tiefe#=Rnd(0.8,1):stern\nummer=2 If z<10 Then stern\tiefe#=Rnd(0.5,0.8):stern\nummer=3; Origin 400,300 Next ;---------------------------------------------------------------------------------------------------- ;Hauptschleife While Not KeyHit(1);solange nicht ESC gedrückt wird weltliches();Hier werden Dinge wie Bildschirmlöschen und Sternemalen erledigt. steuerung();Hier werden die Eingaben des Spielers überprüft. spieler_versetzten() spieler_malen() Flip Wend End Function weltliches() Cls Cls For stern.stern=Each stern stern\x#=stern\x#-spieler\spx#*stern\tiefe# stern\y#=stern\y#-spieler\spy#*stern\tiefe# If stern\x<-500 Then stern\x=Rand(500,600):stern\y=Rand(-400,400) If stern\x>500 Then stern\x=Rand(-500,-600):stern\y=Rand(-400,400) If stern\y<-400 Then stern\x=Rand(-500,500):stern\y=Rand(400,500) If stern\y>400 Then stern\x=Rand(-500,500):stern\y=Rand(-500,-400) If stern\x>-420 And stern\x<420 And stern\y>-320 And stern\y<320 Then DrawImage star_grafik(stern\nummer),stern\x#,stern\y# Next End Function ;-------------------------------------------------------------------------------------------------- Function steuerung() If KeyDown(203)Then spieler\grad#=spieler\grad-spieler\wendigkeit# If KeyDown(205)Then spieler\grad#=spieler\grad+spieler\wendigkeit# If spieler\grad#>=360 Then spieler\grad#=spieler\grad# Mod 360 If spieler\grad#<0 Then spieler\grad#=360+spieler\grad# If KeyDown(200) Then If spieler\spx#<Cos(spieler\grad#)*spieler\maxspeed# Then spieler\spx#=spieler\spx#+Abs(Cos(spieler\grad#)*spieler\beschleunigung#) If spieler\spx#>Cos(spieler\grad#)*spieler\maxspeed# Then spieler\spx#=spieler\spx#-Abs(Cos(spieler\grad#)*spieler\beschleunigung#) If spieler\spy#<Sin(spieler\grad#)*spieler\maxspeed# Then spieler\spy#=spieler\spy#+Abs(Sin(spieler\grad#)*spieler\beschleunigung#) If spieler\spy#>Sin(spieler\grad#)*spieler\maxspeed# Then spieler\spy#=spieler\spy#-Abs(Sin(spieler\grad#)*spieler\beschleunigung#) End If End Function Function spieler_versetzten() spieler\x#=spieler\x#+spieler\spx# spieler\y#=spieler\y#+spieler\spy# End Function Function spieler_malen() DrawImage player(Int(spieler\grad#)),0,0 End Function |
||
---gameworker.ch.vu--- |
Lion |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich glaube kaum das das einfach mal so wer macht!aber was solls...kannst ja warten ![]() ![]() mfg |
||
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x |
![]() |
matte |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schau dir mal den Thread: "Winkel: Steuerungsfehler" in diesem Forum an, ist ein ähnliches Problem. Die wichtigen Zeilen sind.
xschuss=xschuss+Faktor*cos(winkel) yschuss=yschuss-Faktor*sin(winkel) DrawImage Schuss, xschuss,yschuss Musst dir nur den Winkel noch ausdenken (0 grad: Nase zeigt nach rechts, 90 grad: Nase zeigt nach oben, 135 Grad: Nase nach schräg links...). Faktor ist die Schussgeschwindigkeit. So jetzt hast du einen Anfang. Den Rest kannst du selber erledigen. |
||
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
übrigens gewähn dir an diene codes als bbcode zu machen!!!! | ||
KifferopaGastBetreff: Re: 360 grad schiesseen? |
![]() Antworten mit Zitat |
|
---|---|---|
BlitzBasic: [AUSKLAPPEN]
|
||
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
*lol* | ||
KifferopaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Was denn lol? Meinst du: "Respekt"? | ||
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
sorry!!!! ![]() ![]() ![]() ![]() ![]() ![]() ![]() ich dachte du hättest das nur in bb-code kopiert!!! ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
||
![]() |
Fafnir |
![]() Antworten mit Zitat ![]() |
---|---|---|
Respekt!!!
Übrigens ich bräuchte auch mal Hilfe... kann mir bitte jemand den Code so ergänzen, daß ich einen vertikal scrollenden Shooter habe mit 12 Leveln, fünffachem Parallax-Scrolling, 20 verschiedenen Gegnern? So R-Type halt.. BlitzBasic: [AUSKLAPPEN]
Danke!! ![]() |
||
Werbung:
User posted image Es sind User posted image Benutzer im Chat |
KifferopaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Neee, ich hab das getan was er wollte | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group