Funktionen schreiben
Übersicht

gigiBetreff: Funktionen schreiben |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kennt hier jemmand (oder kann mir das einer erklären) ein Tutorial für das funktionen schreiben? Worauf muss ich achten? Was ist wichtig für eine Funktion die ich auch in anderen Programmen benutzen kann?
p.s.:das spiel läuft immernochnicht.... |
||
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185 |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es ist oftmals sinnvoll, Funktionen rekursiv zu schreiben.
Funktionen sind einfach nur Code, der mit Variablen arbeitet und oftmals diese verarbeitet und zurückgibt. Sie haben eigene Variablenbereiche und somit ist jede ((noch) nicht globale) Variable erneut verwendbar. Sie versauen den Code nicht so sehr wie Zehntausende If-Abfragen, die ineinander verschachtelt sind. |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
gigiBetreff: danke |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Was muss denn noch beachtet werden? Wie fange ich am besten damit an?
(Ist eine ins-auto-einsteig Funktion gut zum lernen? |
||
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185 |
![]() |
pixelshooter |
![]() Antworten mit Zitat ![]() |
---|---|---|
ehm, kommt jetzt drauf an was du damit meinst ![]() wenn das eine funktion ist, die meshes passend deformiert, NEIN wenn das eine funktion ist, die die variable "ort$" in "auto" ändert, schon eher ![]() probier halt einfach ein bisserl rum mit globalen und lokalen parametern und rückgabewerten. zb eine die die 2 parameter addiert. so als bsp |
||
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc |
gigiBetreff: hab mich beim einsteigen versucht |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab nun eine Funktion(die natürlich nicht funktioniert) geschrieben.
Sie is schon sehr auf mein Programm abgestimmt(wegen cam). Also hier:Code: [AUSKLAPPEN] Function Einsteigen(auton)
PositionEntity player,EntityX(auton,0),EntityY(auton,0),EntityZ(auton,0)-10 player=auton PointEntity(cam,auton) EntityParent(cam,auton) End Function Was ist falsch? Als Fehlermeldung kommt denn:"Entity does not exist" muss ich vorher auch schon sagen das auton=auto1 ist oder so? |
||
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185 |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
wie sollte sie auch?
Wenn du Player und Cam als global hast, ist das schonmal gar nicht gut. Und wieso zerstörst du dir deine eigene player-Variable? |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
mit "Global" sollte es gehn^^
EDIT: zu spät wie immer =( |
||
Twitter
Download Jewel Snake! Windows|Android |
- Zuletzt bearbeitet von Tankbuster am Mo, Apr 23, 2007 21:39, insgesamt einmal bearbeitet
gigiBetreff: ??? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() ![]() ![]() |
||
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185 |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Pass auf, eigener Variablen Bereich heißt, dass lokale Variablen im Programm (sowas wie player, cam u.s.w.) nicht mehr darin vorhanden sind.
Du müsstest deren Werte also entweder mit der Funktion als Parameter übertragen, oder diese global machen. Wobei das erstere wohl wesentlich näher am OOP ist, was durchaus sinnvoll ist, hällt nämlich den Code überschaulich. |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bevor du neue Dinge Praktisch anwendest, solltest du versuchen sie erstmal in ihren Grundzügen zu verstehen.
Code: [AUSKLAPPEN] function addieren(parameter1,parameter2) ergebniss = parameter1 + parameter2 return ergebniss end function function IstZahlGerade(zahl) if zahl mod 2 return 0 else return 1 end if end function vlt hilft dir das ja im verständniss der Arbeitsweisen von Funktionen Grußm Smily0412 |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
also... du musst dir das so vorstellen, das dein Prog halt die Variable "irgendwas=1" hat!
wenn du in allen functionen diese Variable verwenden möchtest (genau wie im normalen code) musst du Global davorschreiben (nur einmal am anfang). Jetzt hat sie in allen functionen den Wert 1" wenn du das nicht machst, dann..... sagen wir mal um es leichter zu machen (auch für mich)^^ ... Alle Variablen, die nicht "Global" sind, existieren in der function garnicht, außer wenn du sie der funktion übergibst! |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
So könnte das Vll aussehen...
Wenn man das mal ganz grob macht^^ Code: [AUSKLAPPEN] Function Einsteigen(WagenTyp$)
PositionEntity Player,EntityX(WagenTyp$),EntityY(WagenTyp$),EntityZ(WagenTyp$) EntityAlpha Player,0 EntityParent Cam,WagenTyp$ PointEntity Cam,WagenTyp$ End Function Und die Funktion wendet man dann so an: Code: [AUSKLAPPEN] Einsteigen BMW |
||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist schonmal falsch!
Außer der Wagentyp ist der Integer eines gespeicherten Objekts. Bei dir ist es ein String! Außerdem ist hier wieder Player und Cam global, was gar nicht genannt wurde. Die Funktion ist sogar noch "falscher" als die von gigi. Mach es mal so: Code: [AUSKLAPPEN] Function PositioniereEs(obj,x=0,y=0,z=0)
PositionEntity obj,x,y,z end function |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Scheu dir mal das an^^
Zitat: Global HALLO=5 LOL=5 WaitKey() function1();Der Funktion wird nichts übergeben WaitKey() function2(LOL);Der Funktion wird LOL übergeben WaitKey() End Function function1();Der Funktion wird nichts übergeben, also wird LOL (weil es nicht global ist) zu 0 Print "function1" Print "LOL = "+LOL Print "HALLO = "+HALLO End Function Function function2(LOL);Der Funktion wird LOL übergeben (siehe oben) Print "function2" Print "LOL = "+LOL Print "HALLO = "+HALLO End Function |
||
Twitter
Download Jewel Snake! Windows|Android |
gigiBetreff: gleicher Fehler |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
gleicher Fehler,gleiche stelle(positionentity dingends).... | ||
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185 |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wo ist ein Fehler? Du musst auch ein Objekt angeben, das ist klar, oder? | ||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
hast du den "Player" auch global gemacht ?? | ||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein! Global ist böse!
Das versaut einem bei vielen Globals total den Code! |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab hier mal eine Funktion gemacht...
Code: [AUSKLAPPEN] Graphics 600,600,32,2
SetBuffer FrontBuffer() While Not KeyHit(1) X=MouseX() Y=MouseY() If MouseDown(1) Then Rechteck(X,Y,5,6,255,0,255) End If Flip Wend Function Rechteck(XPos#,YPos#,Breite#,Hoehe#,Rot#,Grün#,Blau#) Color Rot#,Grün#,Blau# Rect XPos#,YPos#,Breite#,Hoehe#,1 End Function Hoffentlich ist das mal richtig... Alsodie Funktion erstellt ein Rechteck mit beliebiger Größe,Farbe,Position^^ |
||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jo, das scheint richtig zu sein =)
Aber Standart-Parameter könntest du setzen ![]() |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group