Funktionen schreiben

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2, 3  Weiter

Neue Antwort erstellen

the FR3AK

BeitragMo, Apr 23, 2007 22:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Habmal versucht eine Einsteigefunktion zu basteln^^

Einfach Vorwärts drücken biszu dem Roten Zylinder dann die Linke Maustaste drücken...

Code: [AUSKLAPPEN]
Graphics3D 800,800,32,2
SetBuffer BackBuffer()

cam=CreateCamera()

dude=CreateCube(cam)

PositionEntity dude,0,-5,10

cAR=CreateCylinder(12)
PositionEntity car,0,-5,100

drivesacar=0

EntityColor car,255,0,0
EntityColor dude,0,255,0


While Not KeyHit(1)

If KeyDown(200) MoveEntity cam,0,0,.3
If KeyDown(208) MoveEntity cam,0,0,-.3

If MouseHit(1) And EntityDistance(dude,car)<10 And drivesacar=0 Then
   Einsteigen car,cam,dude
End If


UpdateWorld
RenderWorld

Flip
Wend


Function Einsteigen(Wagen,Kamera,Player)
   
   PositionEntity player,EntityX(player),EntityY(player)+2,EntityZ(player)
   EntityParent wagen,kamera
   PointEntity kamera,wagen

End Function


So KÖNNTE es gehen^^

FuM4nnSchU

BeitragDi, Apr 24, 2007 13:25
Antworten mit Zitat
Benutzer-Profile anzeigen
so könnte man es zum beispiel machen

Tankbuster

BeitragDi, Apr 24, 2007 14:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Nein! Global ist böse!
Das versaut einem bei vielen Globals total den Code!

Warum versaut es den Code o0
meinst du weil du immer neue Variablen in einer Funktion brauchst??
Twitter
Download Jewel Snake!
Windows|Android

Silver_Knee

BeitragDi, Apr 24, 2007 15:33
Antworten mit Zitat
Benutzer-Profile anzeigen
ich glaube steptiger hat da eine idealistische idee von oop in bb und wenn man zu viele globalen hat macht das seine heile oop-welt kaputt

StepTiger

BeitragDi, Apr 24, 2007 16:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Da es mit BB im eigentlichen Sinne gar nicht richtig möglich ist, komplett OO zu programmieren, stimmt das so nicht ganz.

OOP hat eine Menge Vorteile, mit Globalen muss man ewig schaun, wann etwas vorher irgendwann erwähnt wurde, bei OOP hat man dieses Problem überhaupt nicht.

Und zu viele Globals versauen wirklich den Code, hätte ich in den meisten meiner Spiele die Variable cam global, dann würden diese gar nicht mehr funktionieren.
Ich benutze oftmals 7 Cams für das Cubemapping. Dadurch habe ich oft die Variable cam als lokalen Array und dann noch cam direkt im code.
Globals können außerdem rekursive Funktionen versauen, genau solche mag ich aber Wink
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 Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Tankbuster

BeitragDi, Apr 24, 2007 16:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
mit Globalen muss man ewig schaun, wann etwas vorher irgendwann erwähnt wurde


Ich geb meinen Globalen auch immer ne kennzeichnung^^
Also z.B. "Global G_Schaden" oder "Global GlobalerSchaden"
(sehr praktisch)^^
Twitter
Download Jewel Snake!
Windows|Android
 

gigi

Betreff: hai erst ma (:-)

BeitragDi, Apr 24, 2007 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für alle Antworten!!! Hätte nicht gedacht das da soviel kommt...
aber eine Frage blieb unbeantwortet(nein, eigentlich 2):Was muss ich beim Funktonen schreiben beachten?(und wie krieg ich das Spiel zum Laufen?)
Question ( Question )
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185

the FR3AK

BeitragDi, Apr 24, 2007 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm was du beachten musst ist z.B.
Das du angibst ob es sich bei der Variable der Funktion um einen String,Float,Integer usw. handelt...
  • Zuletzt bearbeitet von the FR3AK am Di, Apr 24, 2007 19:50, insgesamt einmal bearbeitet

StepTiger

BeitragDi, Apr 24, 2007 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst beachten, dass du selbst damit klar kommst.
Vergiss keine Ifs, achte auf ordentliches Einrücken, versuche, keine Globalen zu überschreiben.

Rateversuche, wie dein Code funktionieren könnte, wurden durchaus gemacht. Sogar gleich am Anfang. Aber mit so wenig Code kann man nicht viel anfangen.
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 Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

gigi

Betreff: Der ganze Code ist zu lang(und zu peinlich)

BeitragDi, Apr 24, 2007 20:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Der ganze Code ist zu lang(und zu peinlich).Den will ich hier nicht reinsetzen...
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185

StepTiger

BeitragDi, Apr 24, 2007 20:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann können wir leider nur raten!
Hast du dir die Lösungsvorschläge (auf der ersten Seite) wenigstens mal angeschaut?
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 Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

gigi

Betreff: Ja klaro

BeitragDi, Apr 24, 2007 20:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Natürlich(was denkst du von mir?!)!!! Ich habe alles mal versucht und so nebenbei meine erste Funktion geschrieben!!!
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185

StepTiger

BeitragDi, Apr 24, 2007 20:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab dir ja nicht direkt einen Vorwurf gemacht Wink

Nur am Anfang war es mit dir so, dass du ständig was geschrieben hattest, obwohl die Lösung schon 10 mal da stand ^^

Und so können wir echt nur raten.

Und ich gehe davon aus, dass es daran liegt, dass du den Player überschreibst.

Nebenbei wäre es ganz sinnvoll, die Fehlermeldung zu nennen Wink
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 Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

gigi

Betreff: ähem

BeitragDi, Apr 24, 2007 20:13
Antworten mit Zitat
Benutzer-Profile anzeigen
ja nee hab ich nicht... Wink Zitat:
Als Fehlermeldung kommt denn:"Entity does not exist"
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185

StepTiger

BeitragDi, Apr 24, 2007 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann zähl die Schleifendurchläufe.
Sollte es beim ersten Schleifendurchlauf kommen, ist player nicht global oder existiert nicht.
Sollte es beim zweiten Durchlauf kommen, liegt es daran, dass die Entität "auton" nicht existent ist.
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 Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

gigi

Betreff: so es klappt,2.Problem

BeitragDi, Apr 24, 2007 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
meine 3.Funktion funktioniert jetzt nicht...
Sie ist wieder auf mein Programm zugeschnitten.
hier:Code: [AUSKLAPPEN]
Function wound(color1,color2,color3,an)
If an=1 And energy=energy-1 Then
Color color1,color2,color3
Oval 100,270,70,50
EndIf
End Function

energy ist bei mir die Energie(wer hätte es gedacht) Variable.
Wie stelle ichrichtig fest ob energy was abgezogen wird?
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185

the FR3AK

BeitragDi, Apr 24, 2007 20:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Hm was du beachten musst ist z.B.
Das du angibst ob es sich bei der Variable der Funktion um einen String,Float,Integer usw. handelt...


Code: [AUSKLAPPEN]
Function wound(color1#,color2#,color3#,an)
If an=1 And energy=energy-1 Then
Color color1#,color2#,color3#
Oval 100,270,70,50
EndIf
End Function
 

gigi

Betreff: funzt immer noch nicht

BeitragDi, Apr 24, 2007 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
funzt immer noch nicht.Ich glaube es liegt am bestimmen vom Senken der Variable energy.
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185

StepTiger

BeitragDi, Apr 24, 2007 20:36
Antworten mit Zitat
Benutzer-Profile anzeigen
na deine Funktion KANN gar nicht funktionieren xD

Du hast eine unmögliche Bedingung darin!

If energy=energy-1

das ist wie: if 13=12

wäre schon schlimm, wenn das funktionieren würde xD
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 Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Smily

BeitragDi, Apr 24, 2007 20:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Zu der Frage, was man bei einer Funktion beachten muss:
Ich schätze mal, dass man keine Allgemeingültigen Tipps über sowas geben kann.
Natürlich ist wichtig, dass du beim Schreiben einer Funktion die selben Formatierungsregeln beachtest, welche du auch im Restlichen Programm hast.

Den Rest macht dein Programmierstil aus, und der kommt mit der Zeit von selbst. Wenn man "auf krampf" versucht möglchst nach der norm zu Programmieren, mann aber dann mit deinen Sources nichts anfangen kann, hat man nicht viel gekonnt.

Ich persönlich schreibe z.B. funktionen IMMER ganz am ende des Programmes.
Ich hab schon hier einige Exemplare von Codes gesehen, wo die Funktionen oben stehen. Aber in meinen augen ist das irgendwie... unschön ^^

Gruß, 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

Gehe zu Seite Zurück  1, 2, 3  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group