Wie bewege ich ein Quadrat?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Anna

Betreff: Wie bewege ich ein Quadrat?

BeitragSa, Mai 31, 2008 13:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich bin Anfängerin. Ich hab sogut wie keinerlei Erfahrungen was BlitzBasic oder andere Programierersprachen anbelangt. Ich kann zwar einfache Befehle ausführen aber ich weiß nich was mir das bringen soll. Fragen kann ich auch kein weil ich niemanden kenn der sich mit sowas auskennt. Meine Schwester Studiert zwar Informatik aber die kann mir auch nich helfen =). Okay zurück zum Thema. ich versuche einen ganz einfachen Befehl zu finden um ein Quadrat mit den Pfeiltasten zu bewegen. Also ich habe gelesen, das es für jede Taste einen Code gibt und wie ich den anwenden soll. Ein Quadrat bekomm ich auch noch hin aber ich verstehe nicht, wie ich das in verbindung bringen soll. Ich hoffe das mir Jemand helfen kann. Naja vll. bin ich doch einfach ein bisschen zu jung für sowas ... weil ich hab noch nie von einer 12 jährigen gehört die versucht zu programieren. Auser sie ist hochbegabt Wink.
MfG Anna
 

Lador

BeitragSa, Mai 31, 2008 14:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, und willkommen im Forum und in der Welt von BlitzBasic!

Also, wenn du Programmieren lernen willst, schau dir am Besten ein paar Tutorials an, oder kauf dir ein Buch (und lese es ^^). Oben in der Leiste gibt es einen Button "Info". Dort lernst du, wie man am Besten anfängt.

Zu deinem Problem: Wenn du ein Quadrat hinkriegst, musst du ja nur noch die Bewegung machen. Du weißt ja sicherlich, dass ein Quadrat an eine bestimmte x/y-Position gesetzt werden muss. Wenn du nun 2 Variablen erstellst, x und y, und darin die Position des Quadrats speicherst, kannst du ja mithilfe der Tastenbefehle eine Bewegung erzeugen.
Am Besten schaust du dir dazu an: Cls, KeyDown, ja, und die Scancodes (im BlitzBasic auf "Command reference" -> "Scancodes Picker" und dann klickst die einfach auf die Tasten, mit denen du das Quadrat bewegen lassen willst, und oben erscheint der Code).

Bei Fragen, schreib einfach hier rein oder schreib mir eine PN.

MFG Lador

Mr.Hyde

Newsposter

BeitragSa, Mai 31, 2008 14:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo. Erstmal willkommen in unserer Community. Grundsätzlich muss ich sagen, ist man nie zu jung um anzufangen, aber da die Entwicklung des Gehirns noch längst nicht abgeschlossen ist dürfte einiges schwerer fallen. Das macht aber nichts, solche Probleme kann man dann auch mal beiseite schieben und nach ein paar Wochen / Monaten wieder hervor holen und vielleicht hat man dann ja plötzlich eine Idee.

Mut zum Ausprobieren ist wohl am Anfang eine der Schlüsselfähigkeiten. Zusätzlich sehr praktisch sind logisches Denken (das kann man aber auch durch häufiges Gebrauchen trainieren) und eine gewisse Vorstellungskraft. Den Fleiß, auch mal etwas nachzuschauen und durchzuarbeiten müsste ich ja eigentlich nicht extra erwähnen, tue es aber mal der Vollständigkeit halber. Wink

Zum Schluss möchte ich dir noch unsere Linksammlung nahelegen:
(hier der Tutorialbereich) https://www.blitzforum.de/scene/links.php?show=1
alle BB-Befehle findest du hier ausführlich erklärt, dazu gibt es zahlreiche Beispiele: https://www.blitzforum.de/help/

Viel Spaß beim ausprobieren.
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
 

buja

BeitragSa, Mai 31, 2008 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Anna
Willkommen im Forum.
Ich habe mit 14 angefangen mit BlitzBasic zu programmieren.
Als ich noch gar nichts wusste, hat mir dieses Buch sehr geholfen:
http://www.amazon.de/Programmi...amp;sr=1-4

Der Autor beschreibt auf ziemlich einfache und einleuchtende Weise, die Grundlagen (und da lernste auch wie man nicht nur ein Quadrat, sondern auch Bilder bewegt Wink

Es ist zwar in Englisch geschrieben, aber sehr einfaches Englisch (das Buch heißt ja auch "... for teens")

Falls du Fragen hast, kannst du auch den Autor fragen, per Email, der schreibt zurück und ist sehr nett (hat der bei mir auch gemacht)
...

ToeB

BeitragSa, Mai 31, 2008 16:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ! Wilkommen hier im Forum !

Also als ich angefangen habe war ich auch grad mal 12'n halb und war auch nicht hochbegabt (ich konnte noch gar nichts, noch nichtmal verstanden was die Buchstaben auf dem Bildshirm sollen hab ich gerafft ^^)

Also : Ich habe erst mich in BB versucht, habs dann aber sein lassen weil ich das zu schwer fand und ich das Tutorial nicht verstanden habe. Dann hab ich mir mal Quickbaisc angeguckt, es verstanden und kleine Programme geschrieben. Dann bin ich zu BB zurückgekehrt und habs auf einmal verstanden, hab mir diverse Tutorials durchgelesen und habs verstanden... Also mein Tipp : Fang mit Quickbasic deine ersten schritte an oder falls du keine lust hast,würd ich mir ein Tutorial vornehmen (am besten das von rob (auf robsite.com)) und dann Befehl zu Befehl durch ARBEITEN bis du ihn verstanden hasst was es macht, was die Parameter bewirken und so weiter... Auch solltest du das vorm PC machen, damit du es gleich lernen kannst, wie es aussieht in BB...

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!
  • Zuletzt bearbeitet von ToeB am Sa, Mai 31, 2008 16:58, insgesamt einmal bearbeitet
 

D²O

BeitragSa, Mai 31, 2008 16:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Graphics 640,480,16,7

SetBuffer BackBuffer()

Global positionX = 10
Global positionY = 10

;Schleifenanfang
While Not KeyHit(1)

;--------------------- Steuerung------------------------

      ;Hier wird pro schleifendurchgang bei gedrückter Pfeiltaste der wert der Variable position X/Y um 1 Pixel verändert.
                     ;Pfeiltasten links und rechts
                        If KeyDown(203) Then positionX = positionX - 1
                        If KeyDown(205) Then positionX = positionX + 1
                     ;Pfeiltasten oben und unten
                        If KeyDown(200) Then positionY = positionY - 1
                        If KeyDown(208) Then positionY= positionY + 1
;----------------------------------------------------------------


;--------------------------Rechteck an den Positionen X/Y zeichnen
   Rect positionX,positionY,32,32,1    ; Rect zeichnen



Flip
Cls
Wend
;Schleifenende
End
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;
 

DjDETE

BeitragSa, Mai 31, 2008 17:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab auch mit 12 angefangen zu programmieren (bin jetzt 15) und habe mir aus unserer Bücherei das Buch "BlitzBasic for Kids" ausgeliehen, daher kann ich es nur empfehlen. Meine ersten Programme waren dann auf Print und Input basierende Würfelspiele und so^^.
Wie du das mit dem rechteck machst hat D20 ja schon erklährt.
MfG DjDETE
 

Anna

Betreff: öh...

BeitragSa, Mai 31, 2008 23:12
Antworten mit Zitat
Benutzer-Profile anzeigen
@D²O: also erst mal Danke das du dir die Mühe gemacht hast das zu schreiben weil ich nehm nich an das du das schon irgendwo gespeichert hattest Wink ich habs auch genau so kopiert und in BlitzBasic 2D eingefügt aber da kommt immer ne Fehlermeldung: "Illegal Graphics Mode" ...äh... joa... was soll ich jetzt machen?! mach ich was falsch?!
mfg Anna mb

BladeRunner

Moderator

BeitragSa, Mai 31, 2008 23:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Liess Dir mal Graphics durch, dann wirst Du vielleicht feststellen welchen Fehler er da aus Versehen gemacht hat (beziehungsweise was er falscherweise annahm Wink

Ach ja: besorg dir besser die B3D Demo von www.blitzbasic.com, die ist wesentlich aktueller und stabiler. (und dort läuft der Code)
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

ToeB

BeitragSo, Jun 01, 2008 9:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich mach das so :

Wenn ein fehler auftritt dann machst du Folgendes :

  • Schalte den Debugger an
  • Gucke,welche Zeile er dir in dem Extra Fenster
  • Logge dich im Blitzforum ein (brauchst du eigl. nicht)
  • Gehe zur Onlinehilfe (Auf Hilfe drücken, das dritte von Links)
  • Suche den Befehl
  • guck dir die Parameter an
  • gcuk was du falsch gemacht hast
  • verbesser es, wenn es wirklich am befehl liegt (Also wenn man z.b. Text "HALLO" schreibt, mekert der "Not enough Parameter". Dann einfach unter Text nachgucken, welche Parameter du vergessen hast Wink )


Gehe so immer erst vor, bevor du was Fragst Very Happy

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!
 

buja

BeitragSo, Jun 01, 2008 10:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Er hat Graphics 640,480,2,7 verwendet.

Das geht doch bei 2D gar nicht oder?


Anna: ersetz die 7 bei Graphics durch 1 2 oder 3.
...
 

D²O

BeitragSo, Jun 01, 2008 11:10
Antworten mit Zitat
Benutzer-Profile anzeigen
bujacassa hat Folgendes geschrieben:
Er hat Graphics 640,480,2,7 verwendet.

Das geht doch bei 2D gar nicht oder?


Anna: ersetz die 7 bei Graphics durch 1 2 oder 3.


Oops, Embarassed

Ja benutze 1,2 oder 3 bzw. las das Flag weg,
und schreib Graphics 640,480

Aber schau Dir alle befehle mal genauer an und spiele mit denen etwas herum.
Smile

Ach, und das mit dem Lernen, da ist man nie zu Jung, bzw zu Alt um damit anzufangen.
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;

The_Nici

BeitragSo, Jun 01, 2008 11:14
Antworten mit Zitat
Benutzer-Profile anzeigen
So, ich hab mir mal die Mühe gemacht alles zu erklären. :>

BlitzBasic kann ja mit Rect ein Quadrat zeichnen, an einer vorgegebenen Position. Aber wie bewegen wir dieses?
Blitz weiss nicht, wad das für ein Rect ist, es ist einfach eine Fülle an Pixeln auf dem BUffer. Keine Identität, garnichts. Deshalb brauchen wir Variablen!
BlitzBasic weiss was das nämlich für Variablen sind.
Code: [AUSKLAPPEN]

Graphics 800,600,32,2
x%=100
y%=100

Nun haben wir 2 Variablen, x und y. Beides Integer. (%)
Gut, nun wollen wir ein Rect zeichnen!
Code: [AUSKLAPPEN]

Graphics 800,600,32,2
x%=100
y%=100
Rect x,y,32,32,1

Nun zeichnen wir ein 32x32 Pixel grosses Quadrat, welches ausgefülllt ist. (Die 1 am Schluss heisst True, also "wahr")
Jedoch wird es erst einmal gezeichnet! Wir wollen es ja bewegen können, und das muss imemr wieder geschehen. Also brauchen wir eine Schleife.
Code: [AUSKLAPPEN]

Graphics 800,600,32,2
x%=100
y%=100
While not Keyhit(1)
   Rect x,y,32,32,1
Wend

While gibt den Anfang der Schleife an. While heisst so viel wie "Während". Wend schliesst die Schleife ab, und lässt wieder zu While springen. While wird die Schleife wieder beginnen lassen wenn die Bedingung erfüllt ist. (Bei uns Not Keyhit(1), also "nicht Tastenschlag Escape")
Jedoch noch keine Bewegung! Jetzt kommt das entscheidende: Erstklassmathematik! Oh ja!
Code: [AUSKLAPPEN]

Graphics 800,600,32,2
x%=100
y%=100
While not Keyhit(1)
   If KeyDown(203) Then x=x-1   ;Links
   If KeyDown(205) Then x=x+1   ;Rechts
   If KeyDown(200) Then y=y-1   ;Rauf
   If KeyDown(208) Then y=y+1   ;Runter
   Rect x,y,32,32,1
Wend

Die Tastencodes kannst du unter "Hilfe" hier im Portal, dann Rechts in der Sidebar "Scancodepicker" angucken. (Mit der Maus auf eine Taste der Wahl klicken.)
Was fällt uns auf? Das Quadrat wird soviel mal gezeichnet, das es eine dicke Linie hinter sich hergibt.
Das liegt daran, das der Buffer nicht gelöscht wird, d.h. es ist noch alles vom vorherigen Schleifendurchlauf zu sehen!
Nun fügen wir also Cls ein.
Dies löscht den gesamten Buffer.
Code: [AUSKLAPPEN]

Graphics 800,600,32,2
x%=100
y%=100
While not Keyhit(1)
   If KeyDown(203) Then x=x-1   ;Links
   If KeyDown(205) Then x=x+1   ;Rechts
   If KeyDown(200) Then y=y-1   ;Rauf
   If KeyDown(208) Then y=y+1   ;Runter
   Rect x,y,32,32,1
   Cls
Wend

Supi, geht doch!
Nun, jetzt zum DoubleBuffering. Was ist das?
Man stellt sich vor man hat 2 Bilder.
[2] [1]
Eins wird gezeigt, 2 ist im Hintergrund. 2 wird bemalt. Dies hat folgenden Vorteil: Flüssige Bewegung! Wir haben kein lästiges Flackern!
Erstmal BackBuffer initialisieren.
SetBuffer BackBuffer()
Jedoch muss BlitzBasic wissen wann Buffer2 an die Stelle von Buffer1 tritt. Dies macht man mit Flip.
[1] [2]
Buffer 1 wird nun gelöscht. Nämlich mit Cls.

Code: [AUSKLAPPEN]

Graphics 800,600,32,2
SetBuffer BackBuffer() ;Buffer initialisieren
x%=100
y%=100
While not Keyhit(1)
   If KeyDown(203) Then x=x-1   ;Links
   If KeyDown(205) Then x=x+1   ;Rechts
   If KeyDown(200) Then y=y-1   ;Rauf
   If KeyDown(208) Then y=y+1   ;Runter
   Rect x,y,32,32,1
   Flip   ;Buffer vertauschen
   Cls   ;Hinterer Buffer löschen
Wend
End   ;Programm beenden


Schön, nich? xD

MfG
 

Anna

Betreff: Dankeee =D

BeitragSo, Jun 01, 2008 12:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Also @ D²O & bujacassa:
ja jetzt tuts^^ Dankeee

und @ The_Nici
soo jetzt tuts und ich verstehs =)
danke Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group