Schuss Funktion?

Übersicht BlitzBasic Allgemein

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Jan 10, 2004 1:11
Antworten mit Zitat
Benutzer-Profile anzeigen
If schussdaten = 1 = 3 Question

das sollt volkommen ausreichen
Code: [AUSKLAPPEN]
Function DrawSchuss()
If schussdaten = 1 then  ;Daten werden übertragen
schussx = schussx+1
DrawImage kugel,schussx,schussy ; <><<<<<<<<<<hier wurde geändert
EndIf
If schussdaten = 2 Then ;Daten werden 
schussx = schussx-1
DrawImage kugel,schussx,schussy
EndIf
End Function
[BB2D | BB3D | BB+]
 

ZAiMoN

BeitragSa, Jan 10, 2004 1:30
Antworten mit Zitat
Benutzer-Profile anzeigen
ahhh es geht Very Happy

ok jetzt muss ich nur noch schussdaten irgent wie anders übermitteln weil jedes mal wenn ich die taste neu drücke wird die alte kugel gelöscht und eine neue gezeichnet Shocked
In Online Games Gilt:

Luck Beats Skill
Lag Beats Skill
Cheat Beats Skill

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Jan 10, 2004 1:45
Antworten mit Zitat
Benutzer-Profile anzeigen
kein problem das mit dem Code!

sehr gut wenn du es allein geschafft hast!
[BB2D | BB3D | BB+]
 

ZAiMoN

BeitragSa, Jan 10, 2004 1:46
Antworten mit Zitat
Benutzer-Profile anzeigen
naja alleine hätte ich das wohl nicht geschafft ... ich hätte weiterhin meine For schleife benutzt vielen dank Smile

hast du eine idee wie ich die schussdaten anders übergeben kann??
In Online Games Gilt:

Luck Beats Skill
Lag Beats Skill
Cheat Beats Skill

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Jan 10, 2004 1:53
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, mit Dimfeldern da es ja mehrere werden denk ich mal
ich schreib dir da morgen noch was!
[BB2D | BB3D | BB+]
 

ZAiMoN

BeitragSa, Jan 10, 2004 1:56
Antworten mit Zitat
Benutzer-Profile anzeigen
ok

achja ich hab gerade einen bug entdeckt
wenn man schiesst und sich um dreht kommt die kugel wieder zurück
In Online Games Gilt:

Luck Beats Skill
Lag Beats Skill
Cheat Beats Skill

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Jan 10, 2004 2:02
Antworten mit Zitat
Benutzer-Profile anzeigen
eine neue funcktion
Bumerang() Very Happy

bis morgen...
[BB2D | BB3D | BB+]
 

ZAiMoN

BeitragSa, Jan 10, 2004 3:17
Antworten mit Zitat
Benutzer-Profile anzeigen
gn8
In Online Games Gilt:

Luck Beats Skill
Lag Beats Skill
Cheat Beats Skill

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Jan 10, 2004 14:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
hab gerade nicht viel zeit Exclamation
kennste dich denn mit Dim feldern ein wenig aus?
ansonsten erst mal hier schauen
http://www.blitzbase.de/befehle2d/dim.htm
[BB2D | BB3D | BB+]
 

ZAiMoN

BeitragSa, Jan 10, 2004 14:57
Antworten mit Zitat
Benutzer-Profile anzeigen
ja also ich weiss wie man sie erstellt
In Online Games Gilt:

Luck Beats Skill
Lag Beats Skill
Cheat Beats Skill

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Jan 10, 2004 19:40
Antworten mit Zitat
Benutzer-Profile anzeigen
hi ,
schussx und schussy nehmen wir als übergabeVariablen
so wie es ja jetzt schon ist!

als erstes brauchst du ein Dim feld für die Schüsse
kommt oben im Anfang des Programm Codes
hier mal 51 Schüsse die automatisch global sind
Code: [AUSKLAPPEN]

Dim Kugel(50,2)

in
Kugel(x,0) speichern wir, ob diese überhaupt aktiv ist und gemalt werden soll aber dazu gleich mehr
Kugel(x,1) speichern wir die X Koordinate der Kugel
Kugel(x,2) speichern wir die Y Koordinate der Kugel

Code: [AUSKLAPPEN]

Function Suche_freien_Schuss()

 For t= 0 To 50 ; alle dimreihen abfragen bis
  If Kugel(t,0)= 0 Then ; nicht genutztes Feld gefunden ;bzw Leere variable
    Kugel(t,0) = 1  ; schuss aktivieren
    Kugel(t,1) = schussx ; positionen übergeben
    Kugel(t,2) =schussy
    Exit ;schleife verlassen da eine gefunden wurde
 End If
Next
End Function

das ist nur die funktion um die daten zu übergeben
die aufgerufen wird wenn du die Schusstaste gedrückt hast
also in der Function schiesen()
die kann irgendwo am ende des codes stehen


die zweite Funcktion brauchen wir um den Schuss anzuzeigen und wird in der hauptschleife aufgerufen

Code: [AUSKLAPPEN]

Function DrawSchuss()
 For t= 0 To 50 ; alle dimreihen abfragen
  If Kugel(t,0)= 1 Then ; wenn aktiv dann
    ;jetzt nur nach linkspositionen verschieben
    Kugel(t,1) = Kugel(t,1) -2 ;
    drawimage kugelbild,Kugel(t,1),Kugel(t,2)
 End If
Next
End Function


wenn du bis hierher folgen konntest, dann zeig ich dir wie du die richtungen einbauen kannst
[BB2D | BB3D | BB+]
 

ZAiMoN

BeitragSa, Jan 10, 2004 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
jo habs eben auch so hinbekommen habe nur neue variabeln genommen
In Online Games Gilt:

Luck Beats Skill
Lag Beats Skill
Cheat Beats Skill

ViciouS

BeitragSa, Jan 10, 2004 20:43
Antworten mit Zitat
Benutzer-Profile anzeigen
nochmal mit types
Code: [AUSKLAPPEN]

type type_kugel
  field bild
  field x,y
  field speed
end type
  global kugel.type_kugel

function new_schuss()
  kugel = new type_kugel
    kugel\x   = playerx
    kugel\y   = playery
    kugel\speed = speed              ;- für links/+ für rechts
end function

function update_schuss()
  for schuss = each type_schuss
    schuss\x = schuss\x+schuss\speed
    drawimage deinkugelbild,schuss\x,schuss\y
    if imagescollide(schuss\bild,schuss\x,schuss\y,0,gegner,gegnerx,gegnery,0) then
      gegnerleben = gegnerleben-1
      delete schuss
    end if
  next
end function
Skaten ist scheisse...
Bilanz: 3 Knochenbrüche in 4 Jahren...
und es werden mehr Laughing
 

ZAiMoN

BeitragSa, Jan 10, 2004 21:20
Antworten mit Zitat
Benutzer-Profile anzeigen
hmmm naja mit types kenne ich mich nicht so gut aus


Noch ne frage hab die funktion so umgebaut das die kugeln bei mir auch nach links fliegen sollten aber sie fliegen nur nach rechts. Auch wenn mein Char nach links guckt.

Code: [AUSKLAPPEN]

Global richtung = 1
Dim Schuss(30,4)
Global Art

Repeat
.... bla bla

If KeyHit(rechts) Then richtung=0 
If KeyHit(links) Then richtung=1
If Hero = dude_m4 Then Art = 0
If Hero = dude_pgun Then Art = 1
If KeyHit(schiessen) Then schuss_starten( Player_pos_x+10, Player_pos_y+25, Art,richtung)
If KeyHit(schiessen) Then schuss_starten( Player_pos_x+10, Player_pos_y+25, Art,richtung)
Schuss_malen()

... bla bla
Until Keyhit(1)



Code: [AUSKLAPPEN]


;<---- SCHIESSEN ---->
Function schuss_starten (x_pos,y_pos,Art,richtung)
For t= 0 To 30
If Schuss(t,0)= 0 Then
Schuss(t,0) = 1
Schuss(t,1) = x_pos
Schuss(t,2) =y_pos
Schuss(t,3) = Art
If Schuss(t,4) = 0 Then Schuss(t,4) = 2
If Schuss(t,4) = 1 Then Schuss(t,4) = 3
Exit
End If
Next
End Function



Function Schuss_malen()
For t= 0 To 30
If Schuss(t,0) = 1 Then       
               
If Schuss(t,3) = 0 And Schuss(t,4) = 2 Then  ;Colt rechts
Schuss(t,1) =Schuss(t,1) + 5
If Schuss(t,1) < 50 Then
Schuss(t,0) = 0
EndIf
DrawImage kugel, Schuss(t,1), Schuss(t,2)
EndIf

If Schuss(t,3) = 0 And Schuss(t,4) = 3 Then  ;Colt links
Schuss(t,1) =Schuss(t,1) - 5
If Schuss(t,1) > - 50 Then
Schuss(t,0) = 0
EndIf
DrawImage kugel, Schuss(t,1), Schuss(t,2)
EndIf
EndIf
Next
End Function
[/code]
In Online Games Gilt:

Luck Beats Skill
Lag Beats Skill
Cheat Beats Skill

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Jan 10, 2004 22:11
Antworten mit Zitat
Benutzer-Profile anzeigen
hab mal drüber geschaut und ein wenig geändert, natürlich mit Kommentar
wenn Fragen dann fragen!Code: [AUSKLAPPEN]
Global richtung = 1
Dim Schuss(30,4)
; Global Art ;<<<<<< muß nich global sein denk ich mal,
; für die Function werden keine globalen werte benötigt,
; ausser der Dims und die sind immer Global

Repeat
.... bla bla
; hier keydown abragen nicht keyhit,
;du müstest ja dann die rechte und die schiessentaste gleichzeitig drücken
; das schafft man ja fast nie
If KeyDown(rechts)    Then richtung=2   ; <<<<<<<<<<<<<<<< soll doch 2 sein für rechts
If KeyDown(links)     Then richtung=3   ; <<<<<<<<<<<<<<<< soll doch 3 sein für links
; besser wäre es sowieso wenn du die richtung schon beim abfragen der Bewegung einstellst,
; dann schiesst er auch wenn keine bewegungstaste gedrückt wird in die richtige richtung

If Hero = dude_m4    Then Art = 0 ; ist die Waffe also erst mal 0 für colt
If Hero = dude_pgun  Then Art = 0 ; da du nur diesen einen Typ hast, glaub ich weniigstens
If KeyHit(schiessen) Then schuss_starten( Player_pos_x+10, Player_pos_y+25, Art,richtung)

Schuss_malen()

... bla bla
Until KeyHit(1)


;<---- SCHIESSEN ---->
Function schuss_starten (x_pos,y_pos,Art,richtung)
For t= 0 To 30
If Schuss(t,0)= 0 Then
Schuss(t,0) = 1
Schuss(t,1) = x_pos
Schuss(t,2) = y_pos
Schuss(t,3) = Art
Schuss(t,4) = richtung ;<<<<<< nur den wert übergeben
; rest erledigt die function Schuss_malen()

Exit ; die function wird verlassen
End If
Next
End Function



Function Schuss_malen()
For t= 0 To 30
  If Schuss(t,0) = 1 Then
 
   ; für schuss mit colt
   If Schuss(t,3) = 0 ;scheint immer gegeben zu sein
     DrawImage kugel, Schuss(t,1), Schuss(t,2)
    If Schuss(t,4) = 2 Then  ;Colt rechts
       Schuss(t,1) =Schuss(t,1) + 5
        If Schuss(t,1) > 800 Then 
           Schuss(t,0) = 0 ; abschalten
        EndIf
    EndIf

    If Schuss(t,4) = 3 Then  ;Colt links
       Schuss(t,1) = Schuss(t,1) - 5
        If Schuss(t,1) < 0 Then ; hier falsch gewesen , war größßer 0 deswegen wurde der schuss sofort abgeschaltet
           Schuss(t,0) = 0
        EndIf
    EndIf
   EndIf
 
  End If
Next
End Function
[BB2D | BB3D | BB+]
 

ZAiMoN

BeitragSa, Jan 10, 2004 22:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke leute nun gehts.
Ok wenn ich noch irgent wo probleme hab schreibe ich es hier rein.
In Online Games Gilt:

Luck Beats Skill
Lag Beats Skill
Cheat Beats Skill

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group