Schuss Funktion?
Übersicht BlitzBasic Allgemein
ZAiMoNBetreff: Schuss Funktion? |
Do, Jan 08, 2004 21:10 Antworten mit Zitat |
|
---|---|---|
Brauche hilfe bei einer schuss funktion:
-Kugel soll so lange fliegen bis sie gegen eine wand oder einen spieler trifft -Man soll die Kugeln einzeln sehen und nicht in strichen |
||
In Online Games Gilt:
Luck Beats Skill Lag Beats Skill Cheat Beats Skill |
- Zuletzt bearbeitet von ZAiMoN am Sa, Jan 10, 2004 0:27, insgesamt einmal bearbeitet
RallimenSieger des 30-EUR-Wettbewerbs |
Do, Jan 08, 2004 21:20 Antworten mit Zitat |
|
---|---|---|
Code: [AUSKLAPPEN] Function schiessen()
ziel = Player_pos_x + 250 For x = player_pos_y To ziel If hero = dude_m4 And KeyDown(schiessen) Then DrawImage kugel,x,player_pos_y end if next End Function erst mal das zur Fehlermeldung, das andere später... |
||
[BB2D | BB3D | BB+]
|
Triton |
Do, Jan 08, 2004 21:26 Antworten mit Zitat |
|
---|---|---|
ausgehend davon, dass der Spieler nur nach rechts schießt, fehlt da nur ein Next vor End function und das endif ..
Zu dem zeichnet diese Function die Kugel denke ich nicht so, wie du willst, aber das bekommst du vermutlich noch selber raus |
||
ZAiMoN |
Do, Jan 08, 2004 21:32 Antworten mit Zitat |
|
---|---|---|
und wie kann ich das machen das er auch nach links schiesst?
wäre sehr nett dann bin ich nähmlich schon einen ganzen schritt weiter und danke für die hilfe waren wohl 2 sehr dumme flüchtigkeitsfehler |
||
In Online Games Gilt:
Luck Beats Skill Lag Beats Skill Cheat Beats Skill |
ZAiMoN |
Do, Jan 08, 2004 22:20 Antworten mit Zitat |
|
---|---|---|
Ich hab mal etwas hier im forum rumgesucht und dabei eine Schussfunktion gefunden wenn sie mir jemand erklärt dann kann ich sie vielleicht so umbauen das sie in mein game reinpasst. | ||
In Online Games Gilt:
Luck Beats Skill Lag Beats Skill Cheat Beats Skill |
- Zuletzt bearbeitet von ZAiMoN am Fr, Jan 09, 2004 19:31, insgesamt einmal bearbeitet
ZAiMoN |
Fr, Jan 09, 2004 0:23 Antworten mit Zitat |
|
---|---|---|
EDIT:// Codes die Flasch waren hab ich gelöscht damit sie kein anderer hier falsch kopiert | ||
In Online Games Gilt:
Luck Beats Skill Lag Beats Skill Cheat Beats Skill |
- Zuletzt bearbeitet von ZAiMoN am Sa, Jan 10, 2004 0:28, insgesamt einmal bearbeitet
RallimenSieger des 30-EUR-Wettbewerbs |
Fr, Jan 09, 2004 0:34 Antworten mit Zitat |
|
---|---|---|
der iss nicht so ganz gut,
wenn du basic etwas kannst und den folgenden Code einigermassen vestehst , dann besser dieses der läßt sich natürlich auch nmoch in jede Richtung anpassen mit einer Select Schleife beim zeichnen wenn noch fragen dann Frag und wenn ich noch zeit habe kann ich dir das auch noch einbauen Code: [AUSKLAPPEN] Graphics 800,600,16,2 ;
SetBuffer BackBuffer() Const ESC = 1, Bildwiederholung = 50 Const Hoch= 200,Runter=208,Links = 203,Rechts=205 Const Links_Alt= 56,Space = 57 frameTimer=CreateTimer(Bildwiederholung) Dim Schuss(30,3); in 0 aktiv, in 1 x, in 2 y, in 3 art, in 4 Richtung kann nach belieben erweitert werden ;Hauptschleife While Not KeyDown(ESC) If KeyDown(Hoch) Then Y=Y -2 If KeyDown(Runter) Then Y=Y +2 If KeyDown(Links) Then x= x -2 If KeyDown(Rechts) Then x= x +2 Rect x,y,20,50,1 ; Super raumschiff Malen ; schussabgabe >>>>>>> schuss_starten(X,Y,Art ) If KeyHit(Space) Then schuss_starten( x+10, y-25, 0 ) If KeyHit(Links_Alt) Then schuss_starten( x+10, y-25, 1) Schuss_malen() ; alle malen die aktiv sind WaitTimer(frameTimer) Flip Cls Wend ;Hauptschleife Ende End Function schuss_starten (x_pos,y_pos,Art= 0) For t= 0 To 30 If Schuss(t,0)= 0 Then ; freien Schuss gefunden ;bzw Leere variable Schuss(t,0) = 1 ; schuss aktivieren Schuss(t,1) = x_pos ; positionen übergeben Schuss(t,2) =y_pos Schuss(t,3) = Art ;welche Waffe es ist Exit ;schleife verlassen da eine gefunden wurde End If Next End Function Function Schuss_malen() ; alle malen For t= 0 To 30 If Schuss(t,0) = 1 Then ; Wenn aktiver Schuss dann malen Select Schuss(t,3) ; je nach art der waffe Case 0 ; hier evt. standard laser Schuss(t,2) =Schuss(t,2) - 5 ;Schuss weiter nach oben If Schuss(t,2) < - 50 Then ; -50 <<Je nach Größe des bildes Schuss(t,0) = 0 ;Abschalten End If Rect Schuss(t,1), Schuss(t,2) ,1,30,1 ;DrawImage Laserbild, Schuss(t,1), Schuss(t,2) Case 1 ; Vieleicht rakete usw. Schuss(t,2) =Schuss(t,2) - 3 ;Schuss weiter nach oben If Schuss(t,2) < - 50 Then ;Je nach Größe des bildes Schuss(t,0) = 0 ;Abschalten End If Rect Schuss(t,1), Schuss(t,2) ,3,8,1 ;DrawImage Laserbild, Schuss(t,1), Schuss(t,2) Case 3 ; Vieleicht ne Mine usw. End Select End If Next End Function Erläuterung: deine Figur gibt einenschuss ab an dieser stelle soll jetzt der schuss starten und du ruft die erste function auf die die Werte gleich mit übergibt x und y ist deine figur und je nach Taste dann eine Rakete oder mine oder tomaten schuss_starten (x_pos,y_pos,Art) diese function übergibt die Werte in das DimFeld Schuss es wird eine nicht aktive rausgesucht und Werte werden übergeben die zweite Funcktion ,steht in der Hauptschleife,verschiebt die Bilder und zeichnet sie ggf. werden diese dan gelöscht wenn sie aus dem bild verschwinden 2 waffen habe ich eingebaut space und linke altTaste einfach in den editor und starten |
||
[BB2D | BB3D | BB+]
|
Julz |
Fr, Jan 09, 2004 12:45 Antworten mit Zitat |
|
---|---|---|
Die erste schussfunktion war von mir, aber damit kann man in alle richtungen schießen, und da sind noch bewegungen drin für mein char, dass der während des schusses auch die waffe hält und so en schnick schnack
Wenn du willst kann ich sie dir erklären oder so für deine zwecke umbauen |
||
ZAiMoN |
Fr, Jan 09, 2004 15:06 Antworten mit Zitat |
|
---|---|---|
ja wäre nett
aber ich muss nur nach links oder rechts schiessen können öhm und ne waffen animation wollte ich mir auch schon einbauen |
||
In Online Games Gilt:
Luck Beats Skill Lag Beats Skill Cheat Beats Skill |
Julz |
Fr, Jan 09, 2004 15:18 Antworten mit Zitat |
|
---|---|---|
So hab die funktion mal aufs wichtigste gesetzt kanns dir ja mal anschauen, bei fragen einfach mich kontakten
Function schiessen() If Keydown(strg) shoot = shoot + 1 if shoot = 40 then shoot = 0 schuss(0,shoot,0) = 1 schuss(0,shoot,1) = x schuss(0,shoot,2) = y Endif If Keydown(strg) shoot = shoot + 1 if shoot = 40 then shoot = 0 schuss(1,shoot,0) = 1 schuss(1,shoot,1) = x schuss(1,shoot,2) = y Endif End Function function schussmalen() for l = 0 to 40 if schuss(0,l,0) = 1 then drawimage boom, schuss(0,l,1), schuss(0,l,2) schuss(0,l,1) = schuss(0,l,1) - 10 endif next for l = 0 to 40 if schuss(3,l,0) = 1 then drawimage boom, schuss(3,l,1), schuss(3,l,2) schuss(3,l,1) = schuss(3,l,1) + 10 endif next end function Mit dieser funktion kannst du jetzt nach links und rechts schießen |
||
ZAiMoN |
Fr, Jan 09, 2004 15:45 Antworten mit Zitat |
|
---|---|---|
ich lösch mal die langen codes damit es net unübersichtlich wird | ||
In Online Games Gilt:
Luck Beats Skill Lag Beats Skill Cheat Beats Skill |
- Zuletzt bearbeitet von ZAiMoN am Fr, Jan 09, 2004 19:33, insgesamt einmal bearbeitet
ZAiMoN |
Fr, Jan 09, 2004 18:40 Antworten mit Zitat |
|
---|---|---|
hab doch noch eine sehr wichtige frage.
man sollte die schuesse sehen können und zwar nicht als linie sonder als Kugeln. Also müsste die For schleife langsamer ablaufen damit man jede kugel sehen kann und keine linie entsteht. Irgent wie bekomme ich das nicht hin Code: [AUSKLAPPEN] Function schiessen() If KeyDown(schiessen) And taste = 2 And hero = dude_m4 Then schussx = Player_pos_x + 3 schussy = Player_pos_y + 15 ziel = schussx - 250 For x = schussx To ziel Step -1 If MilliSecs() - warten > 100 Then warten = MilliSecs() DrawImage kugel,x,schussy EndIf Next EndIf If KeyDown(schiessen) And taste = 1 And hero = dude_m4 Then schussx = Player_pos_x + 5 schussy = Player_pos_y + 15 ziel = schussx + 250 For x = schussx To ziel If MilliSecs() - warten > 100 Then warten = MilliSecs() DrawImage kugel,x,schussy EndIf Next EndIf End Function |
||
In Online Games Gilt:
Luck Beats Skill Lag Beats Skill Cheat Beats Skill |
Julz |
Fr, Jan 09, 2004 18:47 Antworten mit Zitat |
|
---|---|---|
Ich kann die schussroutine nicht testen ist der code drum rum sehr viel oder geheim oder so oder könntest du den mal posten dann kann ich das ganze testen und anschauen und gegebenen falls helfen | ||
ZAiMoN |
Fr, Jan 09, 2004 19:31 Antworten mit Zitat |
|
---|---|---|
wozu brauchst du den ganzen code?
ich wollte eigentlich nur wissen was ich machen muss damit die kugeln nicht so schnell gezeichnet werden also ob Millisecs richtig eingesetzt worden ist. |
||
In Online Games Gilt:
Luck Beats Skill Lag Beats Skill Cheat Beats Skill |
RallimenSieger des 30-EUR-Wettbewerbs |
Fr, Jan 09, 2004 20:20 Antworten mit Zitat |
|
---|---|---|
hi das erste was mir auffällt, ist das du eine Function hast
>>>>schiessen() und eine Variable >>>>If KeyDown(schiessen) das könnte zu Problemen führen dann ist mir das noch ein Rätsel mit der Abfrage so wie das aussieht wird die Kugel dann so oft gezeichnet das du wahrscheinlich einen Strich sieht wenn du Flip machst aber durch das millisecs könnte es sein das garnichts davon zu sehen ist wenn du den Code so weiter machst, dann bekommst du unweigerlich Probleme beim Abfragen der Kolloisionen vor allem wenn nicht nur ein schuss vorhanden ist Das Prinzip mit 2 Functionen >erstellen eines Schusses beim drücken der Schusstaste die Position festhalten in variablen und in die Schussliste einfügen die 2. Function alle schüsse malen alles in einem wird kaum gehen! |
||
[BB2D | BB3D | BB+]
|
ZAiMoN |
Sa, Jan 10, 2004 0:30 Antworten mit Zitat |
|
---|---|---|
Edit: falschen code gelöscht damit ihn keiner falsch übernimmt... | ||
In Online Games Gilt:
Luck Beats Skill Lag Beats Skill Cheat Beats Skill |
- Zuletzt bearbeitet von ZAiMoN am Sa, Jan 10, 2004 1:07, insgesamt einmal bearbeitet
konstantin |
Sa, Jan 10, 2004 0:37 Antworten mit Zitat |
|
---|---|---|
Easy, du benutzt ja auch Keydown, das heißt du feuerst sehr schnell deine Kugeln hintereinander ab. Wenn du KeyHit() benutzt, schiesst man immer nur eine Kugel ab, sone Art Pistole oder Gewehr. Oder du baust halt nen Timer ein. | ||
RallimenSieger des 30-EUR-Wettbewerbs |
Sa, Jan 10, 2004 0:48 Antworten mit Zitat |
|
---|---|---|
der fehler liegt darin das du in einer schleife den einen schuss komplett zeichnest ( also x malzeichnest) und dan erst geflipt wird
ein schuss anzeigen geht so hier mal ganz groooob hauptschleife repeat ... ... Function tastenabfragen und ggf schuss aktivieren und daten übergeben function Schuss malen hier keine tastenabfrage sonst geht es nur solange du keydown hast flip until keyhit(1) end function Schuss malen position schuss = position schuss +1 also nur eins weitersetzten Schuss eimal malen und dann zurück zur hauptschleife Bild anzeigen endfunktion so sollte es in etwa sein |
||
[BB2D | BB3D | BB+]
|
RallimenSieger des 30-EUR-Wettbewerbs |
Sa, Jan 10, 2004 0:57 Antworten mit Zitat |
|
---|---|---|
@Alu
er hat die die xposition der kugel als schleifenzähler benutzt, deswegen die Striche, das bedeutet das auch bei Keyhit ein strich gemalt wird aber der wird wohl kaum zu sehen sein da dieser dannnur eimal gezeichnet wird |
||
[BB2D | BB3D | BB+]
|
ZAiMoN |
Sa, Jan 10, 2004 1:07 Antworten mit Zitat |
|
---|---|---|
langsam glaub ich das ich diese funktion nie richtig hinbekommen werde.
versuche es schon seit stunden Code: [AUSKLAPPEN] ;<---- SCHIESSEN ----> Function Schuss() If KeyDown(schiessen) And taste = 1 And hero = dude_m4 Then schussx = Player_pos_x + 5 ;schuss start position wird ermittelt schussy = Player_pos_y + 15 schussdaten = 1 EndIf If KeyDown(schiessen) And taste = 2 And hero = dude_m4 Then schussx = Player_pos_x + 3 ;schuss start position wird ermittelt schussy = Player_pos_y + 15 schussdaten=2 EndIf End Function Function DrawSchuss() If schussdaten = 1 = 3 And hero = dude_m4 Then ;Daten werden übertragen schussx = schussx+1 DrawImage kugel,schussx,schussy EndIf If schussdaten = 2 = 3 And hero = dude_m4 Then ;Daten werden schussx = schussx-1 DrawImage kugel,schussx,schussy EndIf End Function und was ist hier falsch?? |
||
In Online Games Gilt:
Luck Beats Skill Lag Beats Skill Cheat Beats Skill |
- Zuletzt bearbeitet von ZAiMoN am Sa, Jan 10, 2004 1:15, insgesamt einmal bearbeitet
Übersicht BlitzBasic Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group