[3D] Türen, Türen für Dummies.. +Teil2 Fortgeschritten

Übersicht BlitzBasic FAQ und Tutorials

Neue Antwort erstellen

Dottakopf

Betreff: [3D] Türen, Türen für Dummies.. +Teil2 Fortgeschritten

BeitragMi, Apr 13, 2011 23:45
Antworten mit Zitat
Benutzer-Profile anzeigen

[3D] Türen, Türen für Dummies.. so wirds gemacht

(Sprache: BlitzBasic3D)

Inhalt:
Teil 1 Hardcodierte Türen... hier wird für beginner mit wenig schnick schnack die Grundidee gezeigt
Teil 2 Für Fortgeschrittene Nutzer, Türen werden Dynamisch geladen und Positioniert, zentrale verwaltung der Türen in Funktionen.




Guten Tag Blitzer Noobies !


Teil 1


aufgrund eines Posts hier im Beginners Bereichs, möchte ich dieses Mini Tutorial niederschreiben.
Der Umfang des Tutorials ist fast zu gering um es hier zu veröffentlichen... aber vielleicht finde ich noch die Muse es noch etwas umfangreicher zu gestalten... -und ja..ich fand die Muse

Was wird hier gezeigt?
Nunja.. wie es der Titel schon verrät geht es darum wie man mit super einfachen mitteln Türen in eure 3D welt implementiert.
Bei der Tür handelt es sich um eine Schiebetür, welche erst ein stück nach hinten fährt und anschließend sich zur Seite bewegt.
Mit der von mir gezeigten Technik, könnt ihr natürlich Türen in allen Formen erstellen da das Prinzip immer das gleiche bleibt.

Was setze ich von euch an Vorwissen vorraus ?
ich versuche meine Tutorials ziemlich schlicht und schnell verständlich zu halten. Erfahrene User können den gezeigten code auf wenige zeilen kürzen, aber in unserem Fall habe ich es möglichst ausfühlich gemacht.
Das solltest du bereits können
Arrow Wie man Funktionen einsetzt
Arrow Wie man Objekte läd, in unserem Fall Animierte Objekte
Arrow Bereits einmal die Animationsbefehle von Objekten durchgelesen haben...
(tu es.. https://www.blitzforum.de/help/?subcat=57 )

insebesondere : BlitzBasic: [AUSKLAPPEN]
Animate



Idea Um die gezeigten Techniken sinnvoll in eurem Projekt einsetzen zu können müsstet Ihr noch die verwendung von Types, Arrys verstanden haben. Aber das ist hier nicht von nöten... -siehe dazu Teil 2


Also los, ... die Idee der 3D Tür !!!!!!

Bevor wir uns jetzt wie wild auf meinen Code stürzen, erkläre ich kurz wie das mit der Tür in der Theorie funktioniert.

Ich erstelle in einem Modeller (Milkshape3D) ein Tür Modell. Dieses Modell ist super simpel aufgebaut.
3 Quader
- 2 Quader die als "Wand" fungieren
- 1 Quader der die Tür darstellt.

Nachdem ich meine Tür modeliert habe definiere ich eine Tür-Animation. Diese Animation setzt sich aus 3 Punkten zusammen.
Arrow 1. Punkt: Tür ist geschlossen
Arrow 2. Punkt: Tür fährt ein stück nach vorn/hinten
Arrow 3. Punkt: Tür fährt auf die Seite
Beim Modellieren nennt man diese Punkte "keyframes"

Diese Arbeit habe ich in 15 Min vollendet und sieht im Modeller(Milkshape3D) dann so aus...


user posted image


ziemlich spektakulär nicht wahr??? Laughing
(die gelbe Linie, mit den 2 Blauen bommeln, man nennt Sie Joints, dienen als Zugriffspunkte um die Animation im Modeller zu definieren)

Nun.. das war erstmal die Modelierungsarbeit. Kommen wir zum theoretischen Ablauf im Code.
Unsere Tür kan 2 verschiedene Statuse erlangen
Arrow Status 1 --> die tür wurde geöffnet
Arrow Status 0 ---> die tür wurde geschlossen


Wenn wir das wissen, und dass wissen wir, weil wir Programieren ja nicht ohne Hirn und machen uns IMMER vorher Gedanken... ist der Rest denkbar einfach.
Wir müssen jetzt nur noch überprüfen welchen Status die Tür hat, und ob sie sich gerade bewegt.
Durch ein Ereigniss(bei uns die Entertaste) wird der Status der Tür geändert und die Tür Animiert.

Exclamation Der Trick dabei ist, wir benutzen nur 1 Animation, zum öffnen spielen wir die Animation 1x Vorwärts ab und zum Schließen wird sie einfach Rückwärts abgespielt...


Endlich... Endlich.. lass uns Coden!!

Hm.. ganz erlich.. jetzt habe ich schon so viel geschrieben, und der Umfang ist einfach viel zu gering als dass ich jetzt Codezeile für Codezeile herauspicken wollte und nochmal 10 Zeilen dazuschreiben möchte.
Also bekommt ihr hier von mir den kompletten GUT AUSKOMMERTIERTEN Source Code.

Hier das ganze als Zip: (Sourcen) nur mit diesem wird sich da irgendwas bewegen...
Aus Webspace Platz Technischen Gründen wurden die Source von Teil 1 und Teil 2 zusammengefügt.
- Upload tot, weis auch nicht warum die Datei plötzlich nicht mehr existiert -


Tut euch selbst einen Gefallen und zieht es in euer Blitzbasic rein. Zeilenumbrüche sind hier halt nicht schön. Damit ihr das ganze auch ausführen könnt, braucht Ihr die dazugehörigen Sourcen....

Code: [AUSKLAPPEN]

;##########################################
;#                                        #
;#       Dottakopfs 3D Door Tutorial!!    #
;#         http://www.blitzforum.de       #
;#                                #
;##########################################




;Gut diesen Block werde ich wohl nicht mehr erklären müssen
Graphics3D 800,600,32,2
SetBuffer BackBuffer()
Global FPStimer = CreateTimer( 60 )




;------------------------------------------------ Globals ----------------------------------------
Global Door_State  ;Speichert den Status der Tür  State=1 Tür wurde geöffnet  State=0 Tür wurde geschlossen
Global Door_Moving ;Bewegt sich gerade die Tür?








;--------------------------------------------- Initialisieren -----------------------------------
;##CAM
Global GameCam = CreateCamera()
      MoveEntity GameCam,0,3,-20


;##licht
AmbientLight 160,160,160 ;damit nicht alles so trostlos aussieht


licht = CreateLight()
      MoveEntity licht,10,10,-3






;##Level
;door
Global EntityDoor1 = LoadAnimMesh("door.b3d")   ;Das Tür Modell wird als Animiertes Objekt geladen


      ScaleEntity EntityDoor1,0.1,0.1,0.1     ;Auf annehmbare größe bringen
      RotateEntity EntityDoor1,0,-90,0        ;Richtung Kamera drehen


            
            



;///////////////////////////////////////////// MAIN LOOP \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Repeat
Cls
WaitTimer(FPStimer)


      move_player()
      update_doors()




UpdateWorld()
RenderWorld()

Text 0,0,"Drücke ENTER zum öffnen/schließen"  ;ein paar infos
Text 0,10,"Pfeiltasten zum Bewegen"
Text 0,40,"Door_state: "+Door_State
Text 0,50,"Door_moving: "+Door_Moving

Flip 0
Until KeyHit(1)
;/////////////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\




;Spieler Bewegung
Function move_player()


      ;Movement der Camera.... Nunja...das sollte auch noch jeder hinbekommen
      If KeyDown(200) Then MoveEntity GameCam ,0,0, +0.1
      If KeyDown(208) Then MoveEntity GameCam ,0,0, -0.1
      If KeyDown(203) Then TurnEntity GameCam ,0,+1, 0
      If KeyDown(205) Then TurnEntity GameCam ,0,-1, 0


End Function


;Aktualisiert die Türen
Function update_doors()


         ;Tür mechanismus mit der Enter taste auslösen ( nur auslösen wenn tür steht)
         ;Wenn die Tür sich nicht bewegt wird der Tür Status verändert
         If KeyHit(28) And Door_Moving=0 Then
            Door_State = Door_State +1                  ;Status wird verändert
            Door_Moving=1                        ;Tür ist nun in bewegung

            If Door_State >1 Then Door_State = 0        ;damit Status nur 1 oder 0 hat
         End If

         





         ;Tür animation vorwärts abspielen ( tür öffnet sich )    Modus=3,und Speed(0.05)
         If Door_State = 0 And Door_Moving = 0 Then Animate EntityDoor1,3,+0.05,0,0    ;Parameter siehe unter hilfe und dann "Animation"
         

         ;Tür animation Rückwärts abspielen ( Tür schließst sich )
         If Door_State = 1 And Door_Moving = 0 Then Animate EntityDoor1,3,-0.05,0,0

         
         ;wenn die Animation "fertig" abgespielt wurde, muss natürlich Moving auf 0 zurück gesetzt werden(damit oben Status Abfrage greifen kann)
         If Animating(EntityDoor1)=0 Then Door_Moving = 0
            
            
      
         

         

End Function

;Viel Erfolg









So fertig!... ich hoffe das es dem ein oder anderen Mal eine schnelle Hile sein wird.
Feedback ist immer erwünscht.



Teil 2

So erstellt man Türen die auch Projekttauglich sind!!!

Dieser 2. Teil richtet sich an bereits etwas Fortgeschrittene User, aber auch beginner sollen sich nicht abschrecken lassen sich diesen Part anzusehen und etwas herumzuspielen.
Im 1. Teil habe ich euch rein die Technik der Tür bzw. eine der Möglichen Möglichkeiten gezeigt wie man sie umsetzt. Jetzt zeige ich euch wie es wirklich gemacht werden sollte. Sprich weg von Hardcodierten Türen und hin zu dynamic, mithilfe von Types und leveldateien.


Was brauche ich für Vorraussetzungen:
Arrow Mindestens alle Punkte aus Teil 1 (siehe oben)
Arrow Euch muss die Anwendung von Types bekannt sein. Ihr müsst keine Pros mit den Types sein aber Ihr solltet zumindest den aufbau und Syntax verstanden haben.
Arrow Wie man Daten aus einer Datei einlesen und weiterverarbeiten kann.
Arrow Teil 1 Druchgelesen haben, da ich nicht nocheinmal so genau auf den Ablauf eingehen werde.


Was ist nun so großartig "toller und besser" geworden ??

vorher wurde ein Mesh geladen, und dieses über globale Varriablen kontroliert. Klarer Nachteil... viele Türen in euer Projekt einzufügen wird total unübersichtlich, viel Schreibarbeit... und Veränderungen müssen in alle einzelne Türen nachcodiert werden ---> uncool.

Idea
Jetzt wird ein Typ definiert. Die Idee ist, dass es einen Typ für alle Objekte gibt die im Spiel verwendet werden sollen, und etwas machen sollen. In unserem Beispiel wird es nur eine Tür sein. Aber es könnten auch Fackeln oder Kisten welche explodieren sein...

Idea
Zudem gibt es nun in dem Ordner eine "level.txt". In dieser wird definiert wo sich die tür befindet inkl. Drehung und co. Spielt in ihr herum und seht was passiert Smile

Zu unserem Type:

Dieser Typ der für unsere objekte steht sieht dan so aus:
Code: [AUSKLAPPEN]

Type TYPE_Objekt
   Field Obj_Type      ;was ist es ein Objekt(Kiste,Fackel,Tür etc..)
   Field Obj_Posx#     
   Field Obj_Posy#
   Field Obj_Posz#
   Field Obj_State      ;Zustand des Objekts
   Field Obj_Entity   ;3D Handle
End Type


wie ihr seht sind die Eigenschaften(Felder des Types) sehr allgemein gehalten.
Das Feld Obj_Type gibt an was es für ein Objekt ist... aber das ist hier heute nur mal Optional.


Wie ich bereits sagte werde ich auf die Technik, Bzw. der Ablauf der Tür hier nicht noch einmal genau eingehen. Im Teil 1 findet Ihr alles wissenswertes.... Zudem ist der Source Code gut und verständlich kommentiert.

Hier nocheinmal der DL mit den Tür-Sourcen und der Level Datei zur Positionierung der Türen
- Upload tot, weis auch nicht warum die Datei plötzlich nicht mehr existiert -


Hier der Source Code: (Nur mit Sourcen lauffähig)
Code: [AUSKLAPPEN]

;##########################################
;#                                        #
;#       Dottakopfs 3D Door Tutorial!!    #
;#         http://www.blitzforum.de       #
;#           Fortgeschritten           #
;##########################################




;Gut diesen Block werde ich wohl nicht mehr erklären müssen
Graphics3D 800,600,32,2
SetBuffer BackBuffer()
Global FPStimer = CreateTimer( 60 )




;------------------------------------------------ Globals ----------------------------------------







;------------------------------------------------- TYPES -----------------------------------------
Type TYPE_Objekt
   Field Obj_Type      ;was ist es ein Objekt(Kiste,Facke,Tür etc..)
   Field Obj_Posx#     
   Field Obj_Posy#
   Field Obj_Posz#
   Field Obj_State      ;Zustand des Objekts
   Field Obj_Entity   ;3D Handle
End Type




;--------------------------------------------- Initialisieren -----------------------------------
;##CAM
Global GameCam = CreateCamera()
      MoveEntity GameCam,0,3,-20


;##licht
AmbientLight 160,160,160 ;damit nicht alles so trostlos aussieht


licht = CreateLight()
      MoveEntity licht,10,10,-3



;##Einen Boden (damits nicht so leblos aussieht)
boden = CreatePlane()
      EntityColor boden,0,100,0



;##Meshes laden
;door
Global EntityDoor1 = LoadAnimMesh("door.b3d")   ;Das Tür Modell wird als Animiertes Objekt geladen


      ScaleEntity EntityDoor1,0.1,0.1,0.1     ;Auf annehmbare größe bringen
      RotateEntity EntityDoor1,0,-90,0        ;Richtung Kamera drehen
      HideEntity EntityDoor1               ;erstmal verstecken



            


;############# Level, Meshes auf Textdateien laden #######################
load_level(1)



;///////////////////////////////////////////// MAIN LOOP \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Repeat
Cls
WaitTimer(FPStimer)

      

      move_player()
      update_doors()




UpdateWorld()
RenderWorld()

Text 0,0,"Drücke ENTER zum öffnen/schließen"  ;ein paar infos
Text 0,10,"Pfeiltasten zum Bewegen"




Flip 0
Until KeyHit(1)
;/////////////////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\




;Spieler Bewegung
Function move_player()


      ;Movement der Camera.... Nunja...das sollte auch noch jeder hinbekommen
      If KeyDown(200) Then MoveEntity GameCam ,0,0, +0.3
      If KeyDown(208) Then MoveEntity GameCam ,0,0, -0.3
      If KeyDown(203) Then TurnEntity GameCam ,0,+1.5, 0
      If KeyDown(205) Then TurnEntity GameCam ,0,-1.5, 0


End Function





;Aktualisiert die Türen
Function update_doors()

         ;das Herzstück.. die steurung der Türen
         ;das Prinzip ist einfach. Die Tür kann 2 Statuse erlangen.
         ; - Status = 1 die tür wurde gerade geöffnet vorher war status auf 0..
         ; - Status = 0 die tür wurde gerade geschlossen  vorher war status auf 1 ...
         For Tdoor.TYPE_Objekt = Each TYPE_Objekt 

            Tur_Child = FindChild(Tdoor\Obj_entity,"Joint_door")  ;dieser Joint ist in der Mitte der Tür
            If EntityDistance(GameCam,Tur_child) <= 10 And Animating(Tdoor\Obj_entity)=0 Then ;sind wir nah genug an der Tür?
            

                  If KeyHit(28) Then
                     If Tdoor\Obj_state = 0 And Animating(Tdoor\Obj_entity)=0 Then Animate Tdoor\Obj_entity,3,+0.05,0,0 : Tdoor\Obj_state = 1 ;1x Animation vorwärts abspielen. Die tür öffnet sich
                     If Tdoor\Obj_state = 1 And Animating(Tdoor\Obj_entity)=0 Then Animate Tdoor\Obj_entity,3,-0.05,0,0 : Tdoor\Obj_state = 0 ;1x Animation von hinten beginnend(speed negativ) abspielen. Die Tür schließt sich
                  End If

                  

            End If

         Next

      
         

      
End Function



;Level und seine Objekte laden (in unserem Fall nur Türen )
Function load_level(current_level)


      file$ = ReadFile("level.txt")
         infotxt$ = ReadLine(file)  ;Info texte
         infotxt$ = ReadLine(file)  ;Info texte
            
            door_count = ReadLine(file)  ;gibt an wie viele Türen in unserem level sind
               For x = 1 To door_count
                  infotxt=ReadLine(file)  ;Info Texte
                     
                     Tdoor.TYPE_Objekt = New TYPE_Objekt  ;nun beginnen wir bei jedem durchlauf eine Tür zu erstellen
                        Tdoor\Obj_Type = ReadLine(file)  ;was für ein objekt  TYPE = 1 also ist es ne tür... haben ja nur türen :-)
                        Tdoor\Obj_PosX = ReadLine(file)
                        Tdoor\Obj_Posy = ReadLine(file)
                        Tdoor\Obj_Posz = ReadLine(file)
                        Tdoor\Obj_state = 0            
                        Tdoor\Obj_entity = CopyEntity(EntityDoor1)  ;Das 3D Modell für unser Objekt Type
                        
                           xRotate = ReadLine(file)   ;drehung und so.. nice to have
                           yRotate = ReadLine(file)
                           zRotate = ReadLine(file)


                        PositionEntity Tdoor\Obj_entity,Tdoor\Obj_PosX,Tdoor\Obj_PosY,Tdoor\Obj_PosZ  ;Objekt noch ausrichten
                        RotateEntity Tdoor\Obj_entity,xRotate,yRotate,zRotate
                        ShowEntity Tdoor\Obj_entity      ;zum schluss noch das Objekt zeigen(wurde ja ganz am anfang versteckt)
               Next

      CloseFile(file)






End Function




;Viel Erfolg







;~IDEal Editor Parameters:
;~C#Blitz3D





Ich hoffe das hat euch weitergeholfen, und auch einige User im Forum nun befriedigt, was Qualität und co betrifft.
Zudem habe ich mich dazu entschlossen die Kommentare doch nicht Sperren zu lassen.
Nur wer sein Feedback kennt kann daraus lernen. Cool

das wars...

Gruß
Dottakopf
  • Zuletzt bearbeitet von Dottakopf am Mi, Apr 24, 2013 12:30, insgesamt 20-mal bearbeitet

biggicekey

Betreff: macht es bloß nicht so!

BeitragDo, Apr 14, 2011 8:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich finde es sehr löblich das du ein Tutorial schreibst, aber oh man...

Du machst es zum einen super umständlich und zum anderen gewöhnst du Neulingen noch schlechte Dinge an.

-Es ist alles hardcoded.
-Es kann nur eine Tür geben.
-Diese wird global verwaltet.
-Die Funktion heißt "updatedoorS" obwohl es nur eine Tür gibt
-Der Benutzer muss ein Modeler bemühen, und dann noch einen Kostenpflichtigen.
-Das Model könnte auch im Code erzeugt werden.

Daraus folgende Verbesserungsvorschläge:
-benutze Types!
-zeig wie man damit mehrere Türen verwaltet.
-erstelle die Türen in einer Funktion im Code (doppelter Lerneffekt!)

Vielen Dank
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller
Nothing more to register - you've cleaned us out![/size]

Dottakopf

BeitragDo, Apr 14, 2011 9:17
Antworten mit Zitat
Benutzer-Profile anzeigen
so.. jetzt hör mir mal ganz genau zu guter man....

ich werde jetzt versuchen mich nicht weiter aufzuregen, da du scheinbar den Text nur überflogen hast.

Zitat:

Idea Um die gezeigten Techniken sinnvoll in eurem Projekt einsetzen zu können müsstet Ihr noch die verwendung von Types, Arrys verstanden haben. Aber das ist hier nicht von nöten...


Zitat:

ich versuche meine Tutorials ziemlich schlicht und schnell verständlich zu halten. Erfahrene User können den gezeigten code auf wenige zeilen kürzen, aber in unserem Fall habe ich es möglichst ausfühlich gemacht.




- natürlich ist es Hardcoded da ich hier nur die Technik der Tür zeige.. und die 5 Zeilen die zur aktualisierung der Tür gebraucht werden werden unter verwendung von Types oder Arrys genauso benötigt.

- Es kann nur eine Tür geben... oh backe... es geht garnicht darum mehrere Türen hier zu setzen...
- Milkshape3D kann praktisch uneingeschränkt 30 Tage lang genutzt werden ! Zudem habe ich EXTRA einen screen hochgeladen, damit man das mal gesehen hat.
Was im Modeller zu machen ist(Egal welcher) wurde sauber erklärt.

- Natürlich hätte ich das Model auch im Code erzeugen können, aber versetz dich doch mal in die lage eines Beginners, da verwirren nur 40 Zeilen Code die allein für das Model und dessen Keyframes erzeugt werden. Siehe mein 2tes Zitat !!!

Und zu deinen Verbesserungsvorschlagen siehe Zitat Nr1....

Fakt.. du hast nicht die Bohne verstanden was ich in diesem Tutorial veranschaulichen wollte.

Prinzipjell hast du vollkommen recht, Türen machen nur in verbindung mit Types oder noch besser mit Arrys sinn. Ich könnte jetzt ein komplettes Beispiel mit Trigger und co. schreiben, nur ich hab keine lust das Copy Paste geflame wieder losgeht. Also versuche ich nur die Technik zu zeigen und den Rest soll sich der Anwender selber erarbeiten.

Der Anlässliche Post warum das Tut entstand.
https://www.blitzforum.de/foru...hp?t=36977
Rechtschreibfehler gelten der allgemeinen Belustigung!
  • Zuletzt bearbeitet von Dottakopf am Do, Apr 14, 2011 20:10, insgesamt 2-mal bearbeitet
 

E. Urbach

ehemals "Basicprogger"

BeitragDo, Apr 14, 2011 10:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Anfänger sollen in deinen Augen nur die "schlechte" Variante des Codes sehen und sich dann die richtige Variante selbst ausdenken?
Der Grundgedanke bei Tutorials ist, die richtige Vorgehensweise zu zeigen - und nicht im Voraus zu sagen, dass es so oder so schlecht ist und besser hätte gemacht werden können.

Nimm dir doch eben die 5 Minuten und überarbeite es.
Es ist momentan mehr eine Antwort zu der von dir verlinkten Frage als ein würdiger FAQ/Tutorial Eintrag.
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik

ToeB

BeitragDo, Apr 14, 2011 13:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Also manchmal versteh ich euch nicht. Als ich meine "Panzer-Physik"-Engine hochgeladen habe, meinten viele ich sollte doch lieber mit Globalen arbeiten statt mit Types, da sonst Anfänger damit nicht klar kommen würden und es auch eher für den Multiplayer gedacht sei. Jetzt sagt ihr, er solle doch mit Types arbeiten, da es für Anfänger besser geeignet sei direkt den richtigen Code zu haben.

Ganz ehrlich : Tutorials sind da, um anhand einfacher Beispiele den Stoff zu verstehen. Deshalb ist es einfach gehalten, um den Anfängern die Möglichkeit zu bieten den Code ohne spezielle Code-Sprünge wie Funktionen etc. zu lesen und zu verstehen. Wenn er jetzt direkt die "Komplett"-Lösung hier reingepostet hätte, dann würde sich jeder den Teil markieren, einmal Strg-X und Strg-V drücken und das wars. Wo bleibt da der Sinn des Tutorials ? Dann hätte er es doch eher im Codearchiv hochladen können Rolling Eyes


mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!
 

E. Urbach

ehemals "Basicprogger"

BeitragDo, Apr 14, 2011 15:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Es ging nie um Komplettlösung oder Teillösung, sondern um qualitativ oder nicht qualitativ.
In beiden Fällen wird der Anfänger dies kopieren können, deine Argumentation ist vollkommen bodenlos.
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik

Dottakopf

BeitragDo, Apr 14, 2011 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich denke:
Die Qualität eines Tutorials zeichnet sich dadurch aus, was beim wissensbedürftigen an "Wissen" zur Materie bzw. zu den Angewandten Techniken nach dem Durcharbeiten des Tutorials hängen geblieben ist.

Um das zu erreichen versuche ich nur Techniken zu verwenden die der Neuling bereits versteht und er sich nur auf den Kern des Tutorials konzentrieren braucht.

Natürlich darf man den User nicht für dumm verkaufen oder etwas "falsches" servieren, aber ich habe klar am beginn darauf hingewiesen das man noch weitere Techniken(Types Arrys) benötigt um es sinnvoll anzuwenden.

Aber da du so sehr auf Qualität behaarst, und alles andere als erstmal falsch abstempelst, werde ich mich heute noch darum bemühen das Tutorial um einen "Fortgeschrittenen Teil" zu erweitern.




Etwas Geduld.

Gruß
Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!
  • Zuletzt bearbeitet von Dottakopf am Do, Apr 14, 2011 19:47, insgesamt einmal bearbeitet
 

feider

ehemals "Decelion"

BeitragDo, Apr 14, 2011 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein Tutorial ist dann gut, wenn es der gewünschten Zielgruppe die erklärte Technik gut vermitteln kann.

Und das tut dieses Tutorial.
Ich denke, dass das vielen interessierten Anfängern gut weiterhelfen kann. Außerdem transportiert es den Gedanken, sich vorher zu überlegen, was man eigentlich tun will, auch eine wichtige Sache für Anfänger (und definitiv auch für Fortgeschrittene.)
Also danke ich dir einfach auch mal als nicht-Anfänger für dieses Tutorial und die somit erfolgte Bereicherung dieser Communitiy.

LG
Dece


EDIT:
Schließlich ging es bei diesem Tutorial darum, eine Tür zu implementieren.
Wenn der Benutzer des Tutorials mehrere Türen implementieren will und sich damit mit Types auseinander setzen muss, wird es für ihn einfacher sein, erst die Grundidee einer Türumsetung zu kennen.

Dottakopf

BeitragDo, Apr 14, 2011 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Decelion,


das Tutorial wurde nun erweitert. Nun sollten alle Seiten zufrieden sein.
Viel Erfolg damit.


Gruß
Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!

Neue Antwort erstellen


Übersicht BlitzBasic FAQ und Tutorials

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group