Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Minni Spiel
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Seb



Anmeldungsdatum: 29.11.2006
Beiträge: 120
Wohnort: Henfenfeld

BeitragVerfasst am: 29.06.2007, 17:03    Titel: Minni Spiel Antworten mit Zitat

Hallo!

Ich will ein kleines Spiel programmieren, aber checke nie, wie das geht.

Also die Frage:
Wie kann ich ein Spiel programmieren, dass man ein 2D Labirind von oben sieht und einen Pixel/Punkt durch das Labirind bringen muss(Pfeiltasten an der Tastatur), aber durch die Wände kann man nicht durch.
Wenn man an einen bestimmten Punkt ist, ist das Spiel vorbei.

Wie kann ich dies programmieren?
Wäre schön, wenn ich einen Code bekomme, aufdem ich dann sehe und endlich checke, wie man so etwas programmiert.
_________________
MfG
Seb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 29.06.2007, 17:08    Titel: Antworten mit Zitat

Wär schön, wenn du suchen würdest und dann verstehst, wie die Such-Funktion geht! lächeln
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Seb



Anmeldungsdatum: 29.11.2006
Beiträge: 120
Wohnort: Henfenfeld

BeitragVerfasst am: 29.06.2007, 17:14    Titel: Antworten mit Zitat

das kapiere ich aber immer nicht, wenn ich Codes programmieren will missbilligen
_________________
MfG
Seb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 29.06.2007, 17:46    Titel: Antworten mit Zitat

also
du macht mit DIM labyrinth (1 to X,1 to Y) as integer ein array in dem das labyrinth gespeichert ist.
mit screen 13 gehst du in einen grafikmodus( oder screen 12 etcetcetc...)
dann mustt du mit line (x1,y1)-(x2,y2),7,BF die wand-blöcke zeichenn
mit inkey$ fragst du die taste ab
pseudo-code:
WENN nach_links DANN
WENN Labyrinth(x-koordinate-1,ykoordinate) IST NICHT WAND DANN x=x-1
*WENN
so auch für die anderen pfeiltasten
dann mit pset/line/put deinen punkt etc. hinsetzen
und:
IF x=zielX and y=zielY then end
_________________
MFG
Flo

Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.

zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Seb



Anmeldungsdatum: 29.11.2006
Beiträge: 120
Wohnort: Henfenfeld

BeitragVerfasst am: 29.06.2007, 18:06    Titel: Antworten mit Zitat

Code:
DIN labyrinth (1 to X,1 to Y)

SCREEN 13
line (x2,y1)-(x3,y3),7,BF
IF x=9X and y=9Y then end

Ist das so richtig, weil der Code funktioniert nicht?!
_________________
MfG
Seb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 29.06.2007, 18:08    Titel: Antworten mit Zitat

DIM (nicht DIN) dimensioniert ein array zwischen 2 bestimmten werden. X und Y sind ja keine festen werte, sondern variablen. X und Y bestimmt also, wie groß das Labyrinth ist, wie z.B.
Code:

DIM labyrinth(1 to 20, 1 to 20) as integer

_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.


Zuletzt bearbeitet von Jojo am 29.06.2007, 19:16, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Seb



Anmeldungsdatum: 29.11.2006
Beiträge: 120
Wohnort: Henfenfeld

BeitragVerfasst am: 29.06.2007, 18:11    Titel: Antworten mit Zitat

Wenn ich "DIM labyrinth (10 to X,10 to Y)" mache, dann kommt eine Fehlermeldung:
Inhalt außerhalb des zulässigen Bereichs
_________________
MfG
Seb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 29.06.2007, 18:15    Titel: Antworten mit Zitat

Ersetze mal X und Y durch die Zahlen, bis zu denen du dimensionieren willst.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Seb



Anmeldungsdatum: 29.11.2006
Beiträge: 120
Wohnort: Henfenfeld

BeitragVerfasst am: 29.06.2007, 18:19    Titel: Antworten mit Zitat

geht

Aber die Linien sieht man nicht und das mit den Wänden funktioniert auch nicht und den Punkt kann man nicht bewegen...
Code:
DIM labyrinth(1 TO 10, 1 TO 10)

SCREEN 13
LINE (x1, y5)-(x2, y7), 7, BF
SLEEP
IF x = ziel9 AND y = ziel9 THEN END

_________________
MfG
Seb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 29.06.2007, 18:21    Titel: Antworten mit Zitat

Du verwendest eine ganze Reihe von Variablen, die alle noch nicht definiert sind. Sprich: sie sind alle 0.

Dass du den Punkt noch nicht bewegen kannst, liegt daran, dass du noch keine Tastaturabfrage eingebaut hast.

edit: Das Missverständnis liegt wohl darin, dass du nicht an die Stelle x1 und y5 usw. zeichnen willst, sondern an die Stelle 1,5. Du musst vor die Zahlen nicht noch das x und das y schreiben. Sonst sind es, wie gesagt, Variablen.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.


Zuletzt bearbeitet von nemored am 29.06.2007, 18:25, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Seb



Anmeldungsdatum: 29.11.2006
Beiträge: 120
Wohnort: Henfenfeld

BeitragVerfasst am: 29.06.2007, 18:22    Titel: Antworten mit Zitat

Und wie kann ich das alles machen?
_________________
MfG
Seb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 29.06.2007, 18:27    Titel: Antworten mit Zitat

Zum korrekten Zeichnen siehe mein oberes Edit. Sieht dann ungefähr so aus:

Code:
LINE (1, 5)-(2, 7), 7, BF


Zur Tastaturabfrage schau dir erst einmal die Befehlsreferenz zu INPUT$ und INKEY$ an.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Seb



Anmeldungsdatum: 29.11.2006
Beiträge: 120
Wohnort: Henfenfeld

BeitragVerfasst am: 29.06.2007, 18:44    Titel: Antworten mit Zitat

Zu dem INPUT$ und INKEY$ habe ich diesen Code gefunden:
Code:
taste$ = INKEY$
IF taste$ = CHR$(0) + "H" THEN AUSWAHL% = AUSWAHL% - 1
IF taste$ = CHR$(0) + "P" THEN AUSWAHL% = AUSWAHL% + 1

Wie kann ich das machen, dass dann ein/eine Punkt/Linie gesteuert werden soll?
_________________
MfG
Seb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 29.06.2007, 19:12    Titel: Antworten mit Zitat

Jetzt kannst du deine Variablen verwenden. Z. B. x und y für die x- bzw. y-Position deines Cursors. Wenn Pfeil-nach-rechts gedrückt wurde, dann wird der Wert von x um eins erhöht usw. (x = x+1). Da du mehrere Tastaturabfragen tätigen willst, packst du das am besten in eine Schleife:
Code:
DO
  taste$ = INKEY$
  IF taste$ = CHR$(0) + "H" THEN x = x - 1
  IF taste$ = CHR$(0) + "P" THEN x = x + 1
UNTIL taste$ = CHR$(27)      'ESC-Taste

Jetzt musst du noch (ebenfalls in der Schleife) den Cursor an der alten Position wegzeichnen und an der neuen Position wieder hinzeichnen, z. B. mittels LINE.

Für die Verwendung von Variablen gibt es auch ganz gute Beispiele (um die nächste Frage schon mal vorweg zu nehmen ...)
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Seb



Anmeldungsdatum: 29.11.2006
Beiträge: 120
Wohnort: Henfenfeld

BeitragVerfasst am: 29.06.2007, 19:31    Titel: Antworten mit Zitat

Jetzt kommt immer eine Meldung:
Erwarte Anweisung

Und wie kann ich dann einen Punk/Linie bewegen?
_________________
MfG
Seb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 29.06.2007, 19:58    Titel: Antworten mit Zitat

"Bewegen" kannst du eine Linie nicht. Du kannst sie nur löschen (z. B. weiß überzeichnen) und an einer anderen Stelle neu zeichnen.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 29.06.2007, 19:58    Titel: Antworten mit Zitat

Schau dir mal bitte zuerst Schleifen in einem Tutorial an, denn das ist das, was du für sowas brauchst.
In der Schleife fragst du den Tastaturstatus ab und sobald eine Taste gedrückt wurde, erhöhst du z.B. den X-Wert der Linie/des Punktes und zeichnest das alles neu (nat. mit den neuen Koordinaten).
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
RedStar



Anmeldungsdatum: 07.08.2006
Beiträge: 9

BeitragVerfasst am: 30.06.2007, 14:01    Titel: Antworten mit Zitat

Ich habe schoneinmal aus langeweile ein änliches Programm geschrieben! Allerdigns glaube cih das dein Kenntnisstand noch gar ncith zum Programmieren eines solchen Programmes ausreicht, du solltest dir vieleicht wirklich ein paar Tutorien angucken!

1. Initalisieren (Variablen für Spielerposition, usw.)
2. Level zeichnen
3. Hauptschleife starten {

4. Eingabe überprüfen und gucken ob eine Wand im Weg ist. Falls nciht den Spieler bewegen. Wenn er an der bestimmten Position ist Programm beenden bzw. etsprechend handeln.
5. Zeichnen der Spielerposition

6. } Ende der Schleife
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
E-P-S



Anmeldungsdatum: 16.09.2004
Beiträge: 500
Wohnort: Neuruppin

BeitragVerfasst am: 30.06.2007, 14:10    Titel: Antworten mit Zitat

Ich persönlich empfehle dir einen Blick hierhin:

East Power Soft - Spiele Tutorial
_________________
Man kann sich öfter als zweimal im Leben halb tot lachen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 30.06.2007, 18:31    Titel: Antworten mit Zitat

Von mir früher einmal programmiertes Labyrinth:

http://www.dreael.ch/Deutsch/Download/Labyrinth.html

Geht mit der perspektivischen 3D-Darstellung bereits einen Schritt weiter, aber die Teile zu Beginn für das Erzeugen eines Labyrinths kannst Du sonst auch für Dein Projekt gebrauchen.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz