Wie soll ich anfangen ?

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2, 3, 4  Weiter

Neue Antwort erstellen

 

Oli27

Betreff: Wie soll ich anfangen ?

BeitragMo, Mai 22, 2006 1:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich habe mich nun schon mit sehr vielen Programiersprachen und Programmen beschäftigt, darunter PHP und Flash und viele andere die ich schon wieder vergessen hab Laughing .
Jednfalls kam es fast immer aufs gleiche raus, nach 3 wochen hatte ich keine Lust mehr, weil nichts dabei rauskam Confused . Ich habe wohl falsch angefangen mit den Sprachen und da es ja bei HTML (durch ein Buch) und bei Python (grundkenntnisse durch schule) eigentlich relativ gut geklappt hat, frage ich mich jetzt woran es lag das die anderen Spracxhen nicht wollten.
Die Antwort is einfach .... ich hab einfach fröhlich drauf los programmiert.

Nun möchte ich mit Blitz Basic das anders machen und damit auch mal Erfolge erziehlen, nur weiß ich nicht wie ich damit anfangen soll. Ich habe mir das Tutorial auf www.robsite.de (das mit den grundbegriffen) durchgelesen und auch fast alles verstanden nur wie soll ich jetzt weitermachen ?

Ich habe keine Ahnung wie man ein Spiel oder auch Programm anfägt zu programmieren.

Gebt mir Tips, weil ich diese Sprache wirklich lernen möchte und hoffentlich nicht nach 2-3 Wochen was anderes machen möchte Rolling Eyes

PS: Mein erstes "Ziel" sollte eine Art Super Mario sein also ein 2D Jump´n´Run und das natürlich vorerst mit nur einem Level Laughing

Hubsi

BeitragMo, Mai 22, 2006 7:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Der große Teil der Blitzer hat mit einfachen Spaceshootern angefangen und die Sprache in kleinen Schritten gelernt. Wobei man eigentlich weniger die Sprache selbst lernt, die macht nur einen kleinen Teil des Programmierens aus. Vielmehr lernt man logische Abläufe im Kopf zu bilden und auf den Quellcode zu übertragen, die Befehle und Funktionen selbst zu verstehen ist das wenigste. Zumal sich ja auch alles in der Onlinehilfe recht unkompliziert nachschlagen lässt Very Happy
Ein Jumpn Run ist für den Anfang vielleicht nicht sonderlich geeignet, man hat schon viele damit scheitern sehen. Nicht das es ein besonders schweres oder aufwendiges Thema wäre, aber die Fortschritte bei so einem Projekt sind eher klein wenn man nicht soo viel Zeit vor dem Rechner verbringt und darum werden von vielen (hauptsächlich eben Neulinge) unkonventionielle Techniken angewandt die auf den ersten Blick leichter zu verstehen erscheinen, sich aber im späteren Verlauf als reines Hinderniss erweisen Very Happy

Soweit mein Senf dazu Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Hummelpups

BeitragMo, Mai 22, 2006 8:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, ich würde dir auch raten, mit einem Space Invaders Klon anzufangen.
Diese sind wohl mit die leichtesten zum lernen.
Hier kann man gut etwas über Strukturen (Types) lernen

Einen PacMan Klon.
Trainiert auch Arrays und Types. Arrays werden für das SPielfeld benutzt
und Types für die Gegner.

Ist jedem natürlich selber überlassen womit er anfängt. Ich würde aber
einen Space Invaders Klon vorschlagen.

IMurDOOM
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

x-pressive

BeitragMo, Mai 22, 2006 9:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Nimm dir anfangs am besten kein komplettes Spiel vor. Ich würde mich erst mal mit den allereinfachsten Dingen befassen:

Arrow Tastaturabfrage (z.B. Steuern eines simplen Rechtecks)
Arrow Zeichnen von Grafiken
Arrow Schleifen und Variablen
Arrow Dateien erstellen und laden
usw.

Dazu musst du dir gar kein komplettes Spiel vornehmen. Schreibe einfach kleine Codestückchen und experimentiere darin ein wenig mit den verschiedenen BlitzBasic-Befehlen. Wenn du das Gefühl hast, genug Befehle zu kennen, oder dich ein wenig sicherer fühlst, kannst du mal mit einem total simplen Minigame weitermachen, wie z.B. ein Raumschiff, das man steuern kann und das auf Tastendruck schiesst.

Das steigerst du dann halt nach und nach und fügst weitere Dinge hinzu.
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL
 

Oli27

BeitragMo, Mai 22, 2006 14:17
Antworten mit Zitat
Benutzer-Profile anzeigen
@IMurDOOM
Ok dan werd ich wohl ersteinmal ein SpaceInvadersclone baun


@ X-pressive
Im großen und ganzen hab ich das ja schon getan (www.robsite.de)
Aber das kann ich ja gleich mit dem SpaceInvaders verbinden

Bin trozdem noch offen für weitere Vorschläge und vieleicht auch seiten oder quellcodes. Very Happy


EDIT: Achso hat jemand ein Tutorial in dem Tastensteuerung erklärt wird Shocked
  • Zuletzt bearbeitet von Oli27 am Mo, Mai 22, 2006 14:55, insgesamt einmal bearbeitet

x-pressive

BeitragMo, Mai 22, 2006 14:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du schon mit einzelnen Komponenten eines Spiels (Grafik, Tastatur etc.) experimentiert hast, dann fang einfach mal mit einem Minigame an, das all diese Elemente enthält. Arbeite z.B. in folgender Reihenfolge (es folgen Pfeile, meine neuen Lieblingsgrafiken):

Arrow Titelbild mit Buttons (kannst du auch zuletzt machen!)
Arrow Spielhauptschleife mit steuerbarem Raumschiff
Arrow Schiessen (Darstellen und Bewegen der Schüsse)
Arrow Dumme Gegner
Arrow Kollisionsabfrage Schüsse/Gegner
Arrow Zuletzt mit ein paar Effekten aufpeppen (Explosionen, Sounds etc.)
Arrow Und eine simple Punkte-Anzeige

So, dann hast du schon mal dein erstes komplettes Minispiel. Und zu jedem dieser einzelnen Punkte gibt es hier im Forum ja massenhaft Antworten und Tipps. Also schmeiss dich rein Wink
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL
 

Oli27

BeitragMo, Mai 22, 2006 14:59
Antworten mit Zitat
Benutzer-Profile anzeigen
THX ... dann werd ich mal das forum durchforsten Cool

x-pressive

BeitragMo, Mai 22, 2006 15:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Wozu jetzt schon? Suchst du Antworten auf Fragen, die du noch gar nicht hast? Vielleicht die geheime CreateTombRaiderGame()-Funktion? Wink

Schmeiss dich einfach rein und tüftle selbst. Gerade wenn du an ein Problem kommst und kurz steckenbleibst, lernst du dann am meisten. Es bringt wirklich nichts, für jede Lösung schon im Vorfeld einen fertigen Code zu suchen (wenn ich das richtig verstanden habe). Dadurch entwickelt sich dein "Progger-Gehirn" nämlich nicht. Das ist wie Sport im Fernsehen anzuschauen. Deshalb wird man ja auch nicht sportlich.

Deinen Postings nach macht das ein wenig den Eindruck (vielleicht täuscht der ja auch), das du dich gar nicht erst rantraust. Gebranntes Kind?
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL
 

Oli27

BeitragMo, Mai 22, 2006 15:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich such doch nicht vorgefertigte code schnipsel Laughing

Ich versuche grad die Tastatusteuerung, die klappt nich Arrow also guck ich hier im Forum obs leute gab die ein ähnliches Problem hatten. Das les ich mir dann durch und versuch das bei mir anzuwenden.

Nur irgendwie wird bei mir grad die Figur gar nicht erst angezeigt Laughing das macht sich dan doof mit dem steuern Confused

EDIT: Sieg Oli über Programm Laughing

x-pressive

BeitragMo, Mai 22, 2006 15:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ach so, ich dachte schon, du hast mit anderen Sprachen so schlechte Erfahrungen gemacht, daß du dich schon gar nicht mehr traust Very Happy

Ich habe übrigens auch vorher in Flash programmiert -das war eine geniale Schule für's Blitzprogrammieren. Und zwar deswegen, weil Flash grottenlahm ist und man sehr diszipliniert coden muss, um mit den vorhanden Resourcen gut umzugehen. Da habe ich mir angewöhnt, bei jeder Codezeile auf Speedoptimierung zu achten. Bei Flash hat's kaum was geholfen, aber bei Blitz macht sich das in einer Spitzenframerate und viel übrige Power für nette Spezialeffekte bezahlt. Das macht mich immer wieder aufs neue happy Smile
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL
 

Oli27

BeitragMo, Mai 22, 2006 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Flash hab ich auch versucht aber das war mir irgendwie auch zu doof Laughing

muss jetzt mal gucken wie einen schuss hinbekomme Shocked
 

flohrian

BeitragMo, Mai 22, 2006 16:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Oli27 hat Folgendes geschrieben:
Nur irgendwie wird bei mir grad die Figur gar nicht erst angezeigt Laughing das macht sich dan doof mit dem steuern Confused


lol Smile
gib mal den code, vlt können wir helfn

EDIT:
sry, hab das:
Zitat:
EDIT: Sieg Oli über Programm Laughing


überlesen
 

Oli27

BeitragMo, Mai 22, 2006 17:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Boha also bei den Types kram blick ich ja mal überhauptnicht durch Neutral

Gibt es irgend eine "leichtere" art schüsse zu erstellen ?

Hab mir jetzt 3 Tutorials dazu angesehnen, einmal das auf robsite und das in der Onlinehilfe aber irgendwie komm ich mit Types nicht klar.

Gibs nicht irgendwie "Types für Dummies" oder so Laughing

Oder hat einer ein einfaches Script mit Types für schüsse das ich das mal am praktischen beispiel sehen kann ?

Mr.Hyde

Newsposter

BeitragMo, Mai 22, 2006 17:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Also eigentlich sind Types die idealste Lösung dafür. Du könntest auch ein DIM-Feld benutzen aber eine Type-Lösung wäre wesentlich besser.
Ich such mal nen gutes Beispiel raus.

EDIT:

Code: [AUSKLAPPEN]

Type tBullet
   Field x
   Field xs#
   Field y
   Field ys#
End Type

So erstellst du zunächst den Type, wobei die einzelnen Fields die notwendigen Informationen des Schusses beinhalten. Dabei steht z.B. x für die x-Position des Schusses auf dem Monitor und xs für die Geschwindigkeit mit der sich der Schuss in Pixeln pro Durchlauf über den Bildschirm bewegt.

Um eine neue Variable mit diesen Schubladen zu erstellen baut man sich eine Funktion, die ungefähr so aussieht:
Code: [AUSKLAPPEN]

b.tbullet = New tbullet
      b\x= x-Position von wo der Schuss abgegeben werden soll
      b\y= y-Position von wo der Schuss abgegeben werden soll
      b\xs= Geschwindigkeit auf der x-Achse
      b\ys= Geschwindigkeit auf der y-Achse


Natürlich muss man die Informationen auch abrufen. Das geht so:
Code: [AUSKLAPPEN]
   For b.tbullet = Each tbullet
      b\y = b\y - b\ys
      b\x = b\x + b\xs
      DrawImage IMG_Laser, b\x, b\y
      b\ys = b\ys + .2

      If b\y < 0 Then Delete b
      
   Next


Hier werden die Informationen aus einem Type verarbeitet.
BBP News RSS | Chaos Interactive | Watanien 2 Screens, Infos und Download | Watanien 2 Worklog | PuzzleMasters
http://abgeordnetenwatch.de - http://www.regierungs-beratung.de - Der Regierung auf die Finger schauen
  • Zuletzt bearbeitet von Mr.Hyde am Mo, Mai 22, 2006 17:49, insgesamt 2-mal bearbeitet
 

Oli27

BeitragMo, Mai 22, 2006 17:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Also eigentlich sind Types die idealste Lösung dafür. Du könntest auch ein DIM-Feld benutzen aber eine Type-Lösung wäre wesentlich besser.
Ich such mal nen gutes Beispiel raus.


Immer her damit Very Happy

Mr.Hyde

Newsposter

BeitragMo, Mai 22, 2006 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Schon passiert siehe EDIT oberer Post Wink
BBP News RSS | Chaos Interactive | Watanien 2 Screens, Infos und Download | Watanien 2 Worklog | PuzzleMasters
http://abgeordnetenwatch.de - http://www.regierungs-beratung.de - Der Regierung auf die Finger schauen
 

Oli27

BeitragMo, Mai 22, 2006 17:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm jetzt versteh ich schon fast, aber wozu ist das b ? also das z.B

b.tbullet = New tbullet
b\x= x-Position von wo der Schuss abgegeben werden soll

Kryan

BeitragMo, Mai 22, 2006 18:16
Antworten mit Zitat
Benutzer-Profile anzeigen
ich glaube, das nennt man "Instanz"
Musst es dir so vorstellen:

Jeder Schuss hat einen eigenen Namen Very Happy
In diesem Beispiel "B"
Danach kann man diesen Type immer mit diesem Namen ansprechen (sofern er global deklariert worden ist; also Global b.tBullet)!
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

5k41

BeitragMo, Mai 22, 2006 18:20
Antworten mit Zitat
Benutzer-Profile anzeigen
das b ist sozusagen ein "fakepointer"! Types sind ja objekte, die von Blitz ganz von alleine Verwaltet werden und du dir so darüber keine gedanken mehr machen musst, aber du kannst ja nun 10 Types erstellen und nun würde ja das programm wenn du nur an einer Kugel was ändern willst garnicht wissen welche du meinst, desshalb das b danach kannst du halt per b\ auf alle werte die du oben in der "Typeschablone" definiert hast zugreifen!

MfG
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image
 

Oli27

BeitragMo, Mai 22, 2006 18:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Alles klar Smile


ok das mit dem types hab ich nun fast verstanden, ich hab das ganze jetzt erstmal eingebaut aber wenn ich jetzt starten möchte kommt ne Fehlermeldung

Zitat:
Index variabe is not a NewType


Hä ? was hab ich falsch gemacht ? hier mal mein Quellcode

Code: [AUSKLAPPEN]
Graphics 640, 480,16,2
SetBuffer BackBuffer()

Global hintergrund = LoadImage ("data\gfx\background.bmp")
Global figur = LoadImage ("data\gfx\figur.bmp")
MaskImage figur, 255, 0, 255
Global laser = LoadImage ("data\gfx\laser.bmp")

Global x = 300
Global y = 450

;Tasten definieren
rauf = 200
runter = 208
rechts = 205
links = 203
space = 57

Global b.schuss

;schuss
Type schuss
Field x
Field xs#
Field y
Field ys#
End Type


;--------------------------------------------------------------
;                      Hauptschleife                          |
;--------------------------------------------------------------

Repeat
Cls

; Hintergrund und Figur werden gezeichnet
TileBlock hintergrund
DrawImage figur, x, y


;schuss
b.schuss = New schuss
      b\x= x-300
      b\y= y-550
      b\xs= 1
      b\ys= 3




; Steuerung der Figur
If KeyDown (rauf) = 1 Then y = y - 1
If KeyDown (runter) = 1 Then y = y + 1
If KeyDown (rechts) = 1 Then x = x + 2
If KeyDown (links) = 1 Then x = x - 2

; Rand setzen
If X < 0 Then X= 0
If X > 610 Then X = 610
If Y < 0 Then Y = 0
If Y > 450 Then Y = 450



;schuss
For schuss = Each schuss
   b\y = b\y - b\ys
    b\x = b\x + b\xs
    DrawImage laser, b\x, b\y
    b\ys = b\ys + .2

    If b\y < 0 Then Delete b
     
  Next


Flip
Until KeyHit(1)

End

Gehe zu Seite 1, 2, 3, 4  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group