Schuss

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

ToeB

Betreff: Schuss

BeitragSa, Dez 09, 2006 21:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Embarassed Hab nochmal ne frage... Embarassed
Code: [AUSKLAPPEN]

Graphics 640,480,0,2
SetBuffer BackBuffer()

Type schuss
Field x
Field y
End Type
Global s.schuss
x = 100
y = 100

Repeat
Oval 0,0,100,100,0
Plot 50,50
If KeyDown(200) Then y = y - 1
If KeyDown(208) Then y = y + 1
If KeyDown(203) Then x = x - 1
If KeyDown(205) Then x = x + 1
If KeyHit(57) Then s.schuss = New schuss:s\x = 50:s\y = 50


For s.schuss = Each schuss
Color 255,0,0
Line s\x,s\y,s\x+10,s\y+10
s\x = x
s\y = y
If s\x And s\y > 700 Then Delete s.schuss
Next
Plot x-1,y-1
Oval x-5,y-5,10,10,0
Flip
Cls


Until KeyHit(1)



Wie kann ich das machen dass der schuss in die ríchtung des gemalten kreises fliegt?

THX schonmal...
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Hagbard

BeitragSa, Dez 09, 2006 21:31
Antworten mit Zitat
Benutzer-Profile anzeigen
sin/cos

Horst der Biber

BeitragSa, Dez 09, 2006 22:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hagbard hat Folgendes geschrieben:
sin/cos

Code: [AUSKLAPPEN]
Graphics 640,480,0,2
SetBuffer BackBuffer()

Type schuss
Field x
Field y
Field speed
Field dir
End Type
Global s.schuss
x = 100
y = 100

Repeat
Oval 0,0,100,100,0
Plot 50,50
If KeyDown(200) Then y = y - 1
If KeyDown(208) Then y = y + 1
If KeyDown(203) Then x = x - 1
If KeyDown(205) Then x = x + 1
If KeyHit(57) Then s.schuss = New schuss:s\x = 50:s\y = 50:s\speed=8:s\dir=Rnd(360)


For s.schuss = Each schuss
Color 255,0,0
Line s\x,s\y,s\x+10*Sin(s\dir),s\y+10*Cos(s\dir)
s\x = s\x + Sin(s\dir)*s\speed
s\y = s\y + Cos(s\dir)*s\speed
If s\x And s\y > 700 Then Delete s.schuss
Next
Plot x-1,y-1
Oval x-5,y-5,10,10,0
Flip
Cls

Until KeyHit(1)


Was dein Code ursprünglich darstellen sollte, weiss ich nicht..
Hab das jetzt einfach mal so eingebaut. Noch ungetestet.

ToeB

BeitragSo, Dez 10, 2006 1:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Der schießt jetzt immer in irgenteine richtung, aba nicht in die des kreises...
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!
 

da_poller

BeitragSo, Dez 10, 2006 11:48
Antworten mit Zitat
Benutzer-Profile anzeigen
horst hat ja geschrieben das noch nix getestet schau dir die funktion mal an da is alles drinn was du zum winkel coden brauchst... is zwar schwerer als code von anderen kopieren aber lerneffekt geht nach oben...

Hagbard

BeitragSo, Dez 10, 2006 12:53
Antworten mit Zitat
Benutzer-Profile anzeigen
http://blitzbase.de/befehle2d/asin.htm

Klick dich mal durch die Sin/Cos/Asin etc. Befehle durch... Das Beispiel bei Asin ist so ähnlich wie du es brauchst...
Also musst du es noch ein wenig umbauen Wink

ToeB

BeitragSo, Dez 10, 2006 18:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey ich hab ne lösung!
Code: [AUSKLAPPEN]

Graphics 640,480,0,2
SetBuffer BackBuffer()
Type schuss
Field x
Field y
End Type

Global s.schuss

Repeat
mx# = MouseX()
my# = MouseY()
w# = ATan2(mx#,my#-200)

;Line 30,200,Sin(w#)*200,200+Cos(w#)*200
If MouseHit(1) Then s.schuss = New schuss:s\x = 30:s\y = 200

For s.schuss = Each schuss
Line s\x,s\y,s\x+10*Sin(w#),s\y+10*Cos(w#)
s\x = s\x+Sin(w#)*10
s\y = s\y+Cos(w#)*10
Next
Flip
Cls

Until KeyHit(1)

so in etwa?
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

TheMatrix

BeitragSo, Dez 10, 2006 22:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Höchstwarscheinlich wenn du es so haben möchtest Rolling Eyes ...
°_° °.° °~° °v° .. -.-

Hagbard

BeitragMo, Dez 11, 2006 17:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir fliegen die Schüsse nicht so weg, wie ursprünglich anvisiert.
Dann könntest du noch ändern, dass die Schüsse nachträglich nicht mehr so fliegen wie die Maus gerade eingestellt ist, sondern so fliegen wie die Maus beim Schuss eingestellt war...

ToeB

BeitragMo, Dez 11, 2006 21:43
Antworten mit Zitat
Benutzer-Profile anzeigen
ja das wollte ich noch maken, suche aba imma noch ne lösung...
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!
 

da_poller

BeitragMo, Dez 11, 2006 21:56
Antworten mit Zitat
Benutzer-Profile anzeigen
im types die position beim erschaffen des schusses speichern....


edit:

type ini:

Code: [AUSKLAPPEN]

Type Tschuss
Field x
Field y
end type


schuss erschaffen:

Code: [AUSKLAPPEN]

schuss.Tschuss =New Tschuss
schuss\x=mousex
schuss\y=mousey

Horst der Biber

BeitragMo, Dez 11, 2006 22:03
Antworten mit Zitat
Benutzer-Profile anzeigen
dann musst du den abschusswinkel von jedem schuss speichern Oo

Code: [AUSKLAPPEN]
Graphics 640,480,0,2
SetBuffer BackBuffer()
Type schuss
Field x
Field y
Field winkel
End Type

Global spielerx=320,spielery=240

Global s.schuss

Repeat
mx# = MouseX()
my# = MouseY()

;Line 30,200,Sin(w#)*200,200+Cos(w#)*200
If MouseHit(1) Then
   s.schuss = New schuss
   s\x = spielerx
   s\y = spielery
   s\winkel = ATan2(mx-spielerx,my-spielery)
EndIf

Rect spielerx,spielery,4,4

For s.schuss = Each schuss
Line s\x,s\y,s\x+10*Sin(s\winkel),s\y+10*Cos(s\winkel)
s\x = s\x+Sin(s\winkel)*10
s\y = s\y+Cos(s\winkel)*10
Next
Flip
Cls

Until KeyHit(1)

ToeB

BeitragMo, Dez 11, 2006 22:54
Antworten mit Zitat
Benutzer-Profile anzeigen
okay ... danke !
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group