deleted

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

petecoolbelab

Betreff: deleted

BeitragDi, Jul 08, 2008 14:46
Antworten mit Zitat
Benutzer-Profile anzeigen
deleted
  • Zuletzt bearbeitet von petecoolbelab am Do, März 25, 2021 14:34, insgesamt einmal bearbeitet

xaerox

BeitragDi, Jul 08, 2008 15:08
Antworten mit Zitat
Benutzer-Profile anzeigen
na logisch...sonst musst du theoretisch immer wieder deinen code ernet einschreiben...

mach die ne function draus und setze dass dann ein...wen leertaste dann...

Function jumping()
If Jump = 0 And Level = 1 Then
Ypos = 400
EndIf


Jump = 1
End Function
If Keyhit(57) Then jumping()
Biker sind wahre Helden.
Auch Musiker.
 

petecoolbelab

Betreff: deleted

BeitragDi, Jul 08, 2008 15:14
Antworten mit Zitat
Benutzer-Profile anzeigen
deleted
  • Zuletzt bearbeitet von petecoolbelab am Do, März 25, 2021 14:35, insgesamt einmal bearbeitet

xaerox

BeitragDi, Jul 08, 2008 15:58
Antworten mit Zitat
Benutzer-Profile anzeigen
beispiel
Code: [AUSKLAPPEN]

Function grafikauflösung()
Graphics 1024, 768, 32, 1
;also auflösung 1024, 768, bittiefe 32 und vollbildmodus an (1)
grafikauflösung()
End Function


dann einfach das grafikauflösung oder deins dorthinsetzen wo du den code (Function bis ednfunction) benötigst
Biker sind wahre Helden.
Auch Musiker.
 

petecoolbelab

BeitragDi, Jul 08, 2008 16:29
Antworten mit Zitat
Benutzer-Profile anzeigen
deleted
  • Zuletzt bearbeitet von petecoolbelab am Do, März 25, 2021 14:35, insgesamt einmal bearbeitet

Blitzprogger

BeitragMi, Jul 09, 2008 13:02
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn dann "ypos_jump" in funktionen bearbeitet wird muss sie eine Globale sein. also Code: [AUSKLAPPEN]
Global ypos_jump
dann könnte man die jumpgeschwindigkeit in einer variabeln speichern. Code: [AUSKLAPPEN]
jump_g = 1
das alles würde dann ungefähr so aussehen:
Code: [AUSKLAPPEN]
Global ypos_jump = ypos
jump_g = 1

If Keyhit(1) then
  jump = 1
  jump_g = 1             ;damit die jumpgeschwindigkeit immer wieder auf 1 gesetzt wird
Endif

If jump = 1 then
  springen(jump_g)               ;damit diese variable auch dort verfügbar ist
  jump_g = jump_g - 0.1         ;damit er immer weniger weit springt
  If jump_g <= -1 then           ;damit der sprung erneuert wird
    jump_g = 1
    jump = 0
  Endif
Endif

Endif
und die function würde dann so aussehen: Code: [AUSKLAPPEN]

function springen(ge)

  ypos_jump = ypos_jump - ge
  ypos = ypos_jump

end function


ich hoffe ich konnte helfen
mfg
Mein aktuelles Projekt, Irnithal: http://www.blitzforum.de/worklogs/415/

Unfreiwilliger Gewinner des BAC# 115. Wink
 

petecoolbelab

BeitragMi, Jul 09, 2008 13:19
Antworten mit Zitat
Benutzer-Profile anzeigen
deleted
  • Zuletzt bearbeitet von petecoolbelab am Do, März 25, 2021 14:35, insgesamt einmal bearbeitet

Blitzprogger

BeitragMi, Jul 09, 2008 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
damit wir das problem besser verstehen müssen wir noch wissen was die variable "level" bezweckt. auch verstehe ich nicht was das soll: Code: [AUSKLAPPEN]
    If KeyHit(57) Then
    Ypos = springen(ge)
   EndIf
im code Code: [AUSKLAPPEN]
function springen(ge)
heisst das (ge) eine variable die nur in der function selber verwendbar ist. das heisst wenn ich schreibe: Code: [AUSKLAPPEN]
springen(jump_g)
bedeutet das dass ich diese function aufrufe und der variable ge einen wert zuweise, also ge hat nun den wert von jump_g.
wenn du schreibst Code: [AUSKLAPPEN]
 If jump = 0 .... Then...
  ...
  ...
  If jump = 1...
  ...
  ...
geht das nicht da du ja abfragst ob jump = 0 ist und nur dann der teil zwischen dem if und dem endif ausgeführt wird. das ganze sollte also etwa so aussehen: Code: [AUSKLAPPEN]
If Jump = 0 And Level = 1 Then
 If Keyhit(57) then jump = 1    ;wenn leertste gedrückt dann...
Endif

 If jump = 1 Then
   springen(jump_g)
   jump_g = jump_g - 0.1
   If jump_g <= -1 Then
     jump_g = 1
     jump = 0
   EndIf
 EndIf
ich hoffe ich konnte nochmal helfen Very Happy

mfg
Mein aktuelles Projekt, Irnithal: http://www.blitzforum.de/worklogs/415/

Unfreiwilliger Gewinner des BAC# 115. Wink
 

petecoolbelab

BeitragMi, Jul 09, 2008 18:15
Antworten mit Zitat
Benutzer-Profile anzeigen
deleted
  • Zuletzt bearbeitet von petecoolbelab am Do, März 25, 2021 14:35, insgesamt einmal bearbeitet

Willi die Rübe

BeitragMi, Jul 09, 2008 18:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Wer auch immer geschrieben hat, dass er dies in einer Funktion machen würde, macht die Sache hier nur unnötig kompliziert.

Denn dadurch, dass die richtige "Sprungroutine" in einer Funktion steckt und deshalb die Variablen in der Funktion automatisch einen Startwert von 0 haben, ist die Funktion recht sinnfrei, da sie so ziemlich gar nichts macht, außer 0 von 0 abziehen Wink
Dies kannst du in deinem Fall umgehen, indem du alle in der Funktion vorkommenden Variablen als Global definierst oder du einfach den Code der Funktion direkt reinschreibst(wozu ich tendieren würde). Denn jedesmal wenn du eine Funktion aufrufst, vergeht auch Zeit. Das ist zwar bei den meisten Codes ohne Einfluss, allerdings wenn du es von Anfang an so beigebracht kriegst, dass man jedes Stückchen Code in eine Funktion schreibt, ist das pure Zeitverschwendung.
Ich habe keine Lösung, aber ich bewundere das Problem.
Tehadon
Q6600, MSI Neo2-FR, 4GB Ram, nVidia 7800 GTX

At the Farewell Party visit: MySpace | Homepage
 

petecoolbelab

BeitragMi, Jul 09, 2008 20:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie würde das dann ausschauen?

Blitzprogger

BeitragDo, Jul 10, 2008 13:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Blitzprogger hat Folgendes geschrieben:

wenn du schreibst Code: [AUSKLAPPEN]
 If jump = 0 .... Then...
  ...
  ...
  If jump = 1...
  ...
  ...
geht das nicht da du ja abfragst ob jump = 0 ist und nur dann der teil zwischen dem if und dem endif ausgeführt wird. [/code]
dort habe ich geschrieben das det nicht geht wenn du das so machst. es muss so aussehan: Code: [AUSKLAPPEN]
if jump = 0 then
  ...
Endif ;diese abfrage muss beendet werden
If jump = 1 then  ;jetzt kommt diese abfrage
  ...
Endif
wesshalb ist das so? Ich erkläre es dir: wenn du schreibst "If jump = 0 And level = 1" dann wird das nur ausgeführt wenn es auch so ist. das heisst man kann davon ausgehen das jump = 0 ist. steht dann dort drin "If jump = 1" dann wird das 100% nicht ausgeführt da jump ja 0 ist. verstranden?
zu dem mit den functionen: für anfänger ist das schwer zu verstehen da hast du recht. desshalb kann man das ganze auch in der hauptschleife machen. in etwa währe es dann so: Code: [AUSKLAPPEN]
If jump = 1 then
  ;alle sachen
  ;die jumpsachen wie ypos - jump_g rechnen e.t.c.
Endif
diesmal alles klar? wohl kaum Very Happy

mfg
Mein aktuelles Projekt, Irnithal: http://www.blitzforum.de/worklogs/415/

Unfreiwilliger Gewinner des BAC# 115. Wink
 

petecoolbelab

BeitragSa, Jul 12, 2008 13:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Ne sorry. Muss mich aber mal bedanken.

Wie geht jetzt der Vorgang des Springens. Den kapiere ich nämlich nicht.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group