Frage zu Beispielcode(kleines Squash-Spiel)

Anfängerfragen zum Programmieren mit PureBasic.
vomDorf
Beiträge: 10
Registriert: 15.06.2006 00:22
Wohnort: Homberg/Ohm
Kontaktdaten:

Frage zu Beispielcode(kleines Squash-Spiel)

Beitrag von vomDorf »

Hallo, ich stelle jetzt meine erste Frage hier in diesem Forum.
folgenden Beispiel-Code habe ich soweit verstanden, bis auf den Abschnitt ;4. Bewegung des Balles.

Repeat
; 2. Grafik setzen
ClearScreen(0,120,0)
StartDrawing(ScreenOutput())
FrontColor(0,255,255)
Box(0,0,20,480)
Box(0,0,640,20)
Box(0,460,640,20)
Box(SchlaegerX,SchlaegerY,10,30)
Box(BallX-1,BallY-1,3,3)
StopDrawing()
FlipBuffers()

; 3. Abfrage der Benutzer Eingaben
ExamineKeyboard()
If KeyboardPushed(200)
SchlaegerY - 1
EndIf
If KeyboardPushed(208)
SchlaegerY + 1
EndIf

If SchlaegerY < 21
SchlaegerY = 20
ElseIf SchlaegerY > 460 - 30
SchlaegerY = 460 - 30
EndIf

; 4. Bewegung des Balles
BallX + BewegX
BallY + BewegY

; 5. Kollision
If BallX < 20
BewegX = 1
EndIf
If BallY < 20
BewegY = 1
EndIf
If BallY > 460
BewegY = -1
EndIf

If BallX > SchlaegerX And BallX < SchlaegerX + 10 And BallY > SchlaegerY And BallY < SchlaegerY + 30
BewegX = -1
EndIf :?

Until KeyboardPushed(1) Or BallX > 640


Warum funktioniert das so?
Ich würde schreiben: BallX = BallX + BewegX
und BallY = BallY + BewegY
Im Beispielcode wird doch BallX bzw. BallY nicht verändert oder kein anderer Wert zugewiesen.
Warscheinlich ganz einfach zu erklären. Wo liegt mein Denkfehler?
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Die Antwort liegt bei 4 und dem letzten Teil.
Bild
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Code: Alles auswählen

BallX + BewegX 
BallY + BewegY
hat in PureBasic die selbe bedeutung wie

Code: Alles auswählen

BallX = BallX + BewegX
BallY = BallY + BewegX
Warum?
Ganz einfach, um schreibarbeit zu ersparen :wink:
Wenn es dir aber lieber ist kannst du natürlich die längere Möglichkeit
wählen, zwingt dich ja keiner zu ersterem.

Aber z.B. ich bevorzuge die erste Variante, weils einfach weniger
Tipparbeit ist :D

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
vomDorf
Beiträge: 10
Registriert: 15.06.2006 00:22
Wohnort: Homberg/Ohm
Kontaktdaten:

Beitrag von vomDorf »

Ich erkläre gerade mal, wie ich den Code verstehe:
Die Box(BallX-1,BallY-1,3,3) wird gezeichnet, beim nächsten Schleifendurchlauf müßte BallX einen um mindestens 1 niedrigeren Wert erhalten, deshalb meine Folgerung :
Code:
BallX = BallX + BewegungX
BallX und BewegungX wurden als globale Variablen festgelegt.
Ohne "BallX = " kann doch BallX kein anderer Wert zugewiesen werden, oder?
Wie geschieht das denn?
vomDorf
Beiträge: 10
Registriert: 15.06.2006 00:22
Wohnort: Homberg/Ohm
Kontaktdaten:

Beitrag von vomDorf »

Hatte die letzte Nachricht noch nicht gelesen. Jetzt ist mir alles klar.
Hab' wohl noch nicht genug Tutorials etc gelesen.
Vielen Dank, bin echt begeistert wie schnell man hier geholfen kriegt; habe den ganzen Tag daran rumgerätselt.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Ja, hier wird einem echt gut geholfen, das muss man schon sagen. Also frag ruhig weiter, wenn du Fragen hast.

By the way, schön dich an PureBoard zu haben, willkommen :wink:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
vomDorf
Beiträge: 10
Registriert: 15.06.2006 00:22
Wohnort: Homberg/Ohm
Kontaktdaten:

Beitrag von vomDorf »

Vielen Dank für die tolle Begrüßung. Bin immer mehr überzeugt, mit PureBasic die richtige Wahl getroffen zu haben.
Habe mit VBA einiges gemacht. Der Umstieg zu VB schien mir trotzdem zu kompliziert und vor allen Dingen zu teuer!!
Mit PB kann man für kleines Geld und gerade als Anfänger gut vorankommen. Villeicht noch zum Schluß an die "Absolute Beginners":
mit ganz kleinen, einfachen Codebeispielen anfangen und die Lektüre des PDF - Handbuches ist echt Pflicht!! Ich hab's mir ausgedruckt, da kann man immer mal wieder zwischendurch reingucken (ohne PC).
:allright:
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

auch von mir ein herzliches willkommen.

> mit ganz kleinen, einfachen Codebeispielen anfangen und die Lektüre des PDF - Handbuches ist echt Pflicht!!

schön dass du's so siehst, damit wirst du auch erfolg haben.

trotzdem gibt es immer mal wieder anfänger, die gleichzeitig ins kalte wasser springen wollen und mit dem kopf durch die wand, deren erfolg steht von anfang an in frage.


PS:
was ist eigentlich der unterschied zwischen VBA und VB?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

@Kaeru

Der Hauptunterschied besteht wohl daran, dass VB eine Compiler-Sprache ist, VBA wird jedoch interpretiert.

Hier kannst du noch genaueres nachlesen:
http://de.wikipedia.org/wiki/Visual_Bas ... plications
-.-"
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> was ist eigentlich der unterschied zwischen VBA und VB?

VBA ist in den MS-Office-Produkten eingebaut und hat dadurch einen sehr
engen Bezug zu den dort vorhandenen Objekten. Mit VBA ist es z.B. relativ
einfach, auf Tabellen, Abfragen und Formulare innerhalb von Access
zuzugreifen. VBA wird auch immer in die jeweilige Office-Datei (*.mbd,
*.doc, *.xls) integriert und wird (wie Green Snake korrekt geschrieben hat)
zur Laufzeit interpretiert.

VB hingegen ist eine von Office unabhängige und demzufolge viel flexiblere
Programmiersprache und kann im Gegensatz zu VBA auch zu einer EXE
kompiliert werden.

Grüße ... Kiffi
a²+b²=mc²
Antworten