 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Odys
Anmeldungsdatum: 14.01.2006 Beiträge: 40
|
Verfasst am: 20.02.2006, 20:18 Titel: Bild-Adventure |
|
|
Ich habe vor ein Adventure mit .bmp (Paint) Bildern zu machen allerdings tun sich mir dabei 2 Fragen auf :
1. Ich will das Adventure so machen das erst ein Bild mit Text darauf kommt man entscheiden kann (mind. 4 Möglichkeiten, a,b,c oder d) und dann ein nächstes Bild mit Text kommt man was entscheiden kann und so weiter......
Könnt ihr mir zeigen wie man das am besten programmiert ? (Und möglichst einfach^^)
Vor allem der Übergang von den einen Bild (a,b,c oder d eingeben) nächstes Bild (a,b,c oder d eingeben) u.s.w....macht mir zu schaffen !
2. Wie kann ich es machen das wenn das .bmp Bild im Spiel angezeigt wird der Windowsumriss nicht dabei ist (Dies mit Bild vergrößern, Exit und verkleinern)
thx schon mal im Voraus  _________________ Ich bin (noch) kein Profi, habt etwas Verständnis ! |
|
Nach oben |
|
 |
Progger_X Mr. Lagg
Anmeldungsdatum: 24.11.2004 Beiträge: 784 Wohnort: Leipzig
|
Verfasst am: 20.02.2006, 20:24 Titel: |
|
|
Zu erstens:
Erstmal das Bild anzeigen, dann
Code: |
WHILE auswahl=0
zeichen$=INKEY$
IF zeichen$="a" THEN auswahl=1
IF zeichen$="b" THEN auswahl=2
IF zeichen$="c" THEN auswahl=3
IF zeichen$="d" THEN auswahl=4
WEND
|
Und wenn auswahl 1 ist, gibst du das Bild für Möglichkeit a aus, und dann wieder ne Auswahl, usw.
2.
Der Windows Umriss? Also bei mir ist der nie dabei, wenn ich ne Bitmap anzeige, zumindest nicht bei der Bitmap. Den Fensterrahmen kriegst du aber z.B. weg, wenn du Vollbild nimmst. Da sollte es auch nen Befehl für geben, bei SDL war das SDL_NoFrame, aber kA wie das bei Screen geht. |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
|
Nach oben |
|
 |
Odys
Anmeldungsdatum: 14.01.2006 Beiträge: 40
|
Verfasst am: 20.02.2006, 20:47 Titel: |
|
|
Wenn ich 18,,,1 eingebe bleibt der ganze Bildschirm schwarz und die .bmp wird gar nicht angezeigt ! _________________ Ich bin (noch) kein Profi, habt etwas Verständnis ! |
|
Nach oben |
|
 |
Odys
Anmeldungsdatum: 14.01.2006 Beiträge: 40
|
Verfasst am: 20.02.2006, 20:52 Titel: |
|
|
Progger_X hat Folgendes geschrieben: | Zu erstens:
Erstmal das Bild anzeigen, dann
Code: |
WHILE auswahl=0
zeichen$=INKEY$
IF zeichen$="a" THEN auswahl=1
IF zeichen$="b" THEN auswahl=2
IF zeichen$="c" THEN auswahl=3
IF zeichen$="d" THEN auswahl=4
WEND
|
Und wenn auswahl 1 ist, gibst du das Bild für Möglichkeit a aus, und dann wieder ne Auswahl, usw.
|
Irgendwie verstehe ich das nicht !
Wo kann ich mein Text rein setzen und wo kommt dann das Bild ?
Muss ich dann statt auswahl=1 auswahl="text" then "Bild" machen. _________________ Ich bin (noch) kein Profi, habt etwas Verständnis ! |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 20.02.2006, 21:50 Titel: |
|
|
Der Code von ProggerX ist nicht ganz vollständig.
Du müsstest in die WHILE-Schleife noch eine SELECT CASE einbauen:
Also ungefähr so.
Code: |
DECLARE SUB ShowBMP(FileName$, X As Integer, Y As Integer)
SUB ShowBMP(FileName$, X As Integer, Y As Integer)
DIM DeinBild As Any Ptr
OPEN FileName$ FOR BINARY AS #1
GET #1,19,hoehe
GET #1,23,breite
CLOSE #1
DeinBild=IMAGECREATE(hoehe, breite)
BLOAD FileName$, DeinBild
PUT (X,Y),DeinBild
IMAGEDESTROY(DeinBild)
END SUB
WHILE auswahl=0
zeichen$=INKEY$
IF zeichen$="a" THEN auswahl=1
IF zeichen$="b" THEN auswahl=2
IF zeichen$="c" THEN auswahl=3
IF zeichen$="d" THEN auswahl=4
SELECT CASE auswahl
CASE 1
ShowBMP("bild1.bmp",0,0)
CASE 2
ShowBMP("bild2.bmp",0,0)
CASE 3
ShowBMP("bild3.bmp",0,0)
CASE 4
ShowBMP("bild4.bmp",0,0)
END SELECT
WEND
|
Ich hoffe mal, dass der Code fehlerfrei ist - ist ungetestet. Achja: Eine Clippingfunktion ist nicht eingebaut - das müsstest entweder du erledigen, oder du passt ebend selbst auf, dass die Bilder nicht außerhalb des Bildschirmbereiches kommen. [/code]
/edit: Code funktionstüchtig gemacht.  _________________ Eine handvoll Glück reicht nie für zwei.
--

Zuletzt bearbeitet von Mao am 20.02.2006, 21:53, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 20.02.2006, 21:53 Titel: |
|
|
Aus meiner berühmten Sammlung:
http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/Abenteuerspiel.html
Die dort gezeigten Programmier-Grundprinzipien sind völlig unabhängig von der verwendeten Programmiersprache und gelten für FreeBasic genauso.
Ansonsten bekommt halt einfach die Orts- und Gegenstandverwaltung einfach ein zusätzliches Attribut .BMP-Dateiname, damit das Richtige geladen werden kann. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
Odys
Anmeldungsdatum: 14.01.2006 Beiträge: 40
|
Verfasst am: 21.02.2006, 15:10 Titel: |
|
|
Also wenn ich das mache wie Mao gezeigt hat bleibt der Bildschirm schwarz !
(Außerdem weiß ich gar nicht so genau wo ich meine Bildernamen rein setzen soll und wo ich die Adresse hin packen soll)
p.s. (@dreal)Ich wollte ja eher das mir das jemand erklärt und relativ einfache Programmierung zeigt(Ich steig das nämlich nicht wirklich durch ) _________________ Ich bin (noch) kein Profi, habt etwas Verständnis ! |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 21.02.2006, 18:33 Titel: |
|
|
Der Kollege Mao hat beim Programmieren geschlafen und das SCREEN vergessen.
Zudem ist etwas unglücklich, das sich das Programm gleich nach der Auswahl beendet.
Code: | DECLARE SUB ShowBMP(FileName$, X As Integer, Y As Integer)
SUB ShowBMP(FileName$, X As Integer, Y As Integer)
DIM DeinBild As Any Ptr
OPEN FileName$ FOR BINARY AS #1
GET #1,19,hoehe
GET #1,23,breite
CLOSE #1
DeinBild=IMAGECREATE(hoehe, breite)
BLOAD FileName$, DeinBild
PUT (X,Y),DeinBild
END SUB
SCREEN 18,32,,1
do
zeichen$=INKEY$
SELECT CASE val(zeichen$)
CASE 1
cls
ShowBMP("bild1.bmp",0,0)
CASE 2
cls
ShowBMP("bild2.bmp",0,0)
CASE 3
cls
ShowBMP("bild3.bmp",0,0)
CASE 4
cls
ShowBMP("bild4.bmp",0,0)
END SELECT
loop |
Das Bild wird mit 1 2 3 4 Ausgewählt.
Zitat: | (Außerdem weiß ich gar nicht so genau wo ich meine Bildernamen rein setzen soll und wo ich die Adresse hin packen soll) |
ShowBMP("Hier gehört der Dateinamen und der Pfad rein",0,0)
Die beiden Nullen kannst du ändern, wenn es nicht im Ecken oben links kommen soll. _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
Odys
Anmeldungsdatum: 14.01.2006 Beiträge: 40
|
Verfasst am: 21.02.2006, 19:58 Titel: |
|
|
DANKE !
Dann hab ich ja fast schon alles
Echt danke,danke,danke !
Ein Problem hab ich jetzt allerdings :
Von dem Bild wird nur ein Teil angezeigt, nicht das ganze. _________________ Ich bin (noch) kein Profi, habt etwas Verständnis ! |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 21.02.2006, 20:44 Titel: |
|
|
Probier statt:
SCREEN 18,32,,1
mal das
SCREEN 19,32,,1
oder das
SCREEN 20,32,,1
aus, dann sollte es gehen. _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 21.02.2006, 21:00 Titel: |
|
|
Odys hat Folgendes geschrieben: | p.s. (@dreal)Ich wollte ja eher das mir das jemand erklärt und relativ einfache Programmierung zeigt(Ich steig das nämlich nicht wirklich durch) |
Für Dich sonst noch ein Artikel:
http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/Anfaengerfehler.html
Der Artikel zeigt so die typischen Fehler von Programmierneulingen auf und bietet jeweils passende Lösungen dazu. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 22.02.2006, 11:30 Titel: |
|
|
@Micheal Frey: Ich hatte den Code nur auf syntaktische Fehler gecheckt. Dachte, das soll nur ein Teilcode sein, sodass der SCREEN-Befehl und andere SUB's schon drinne steh'n. Ja, das CLS hatte ich auch vergessen. Kann schon seltsame Ausgaben bringen, wenn die Bilder nicht immer gleich groß sind.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Odys
Anmeldungsdatum: 14.01.2006 Beiträge: 40
|
Verfasst am: 23.02.2006, 19:18 Titel: |
|
|
Jetzt hab ich noch das Problem das wenn ich das Adventure weiter machen will immer auf Fehler stoße !
Ich wollte z.b.s :
Code: | DECLARE SUB ShowBMP(FileName$, X As Integer, Y As Integer)
SUB ShowBMP(FileName$, X As Integer, Y As Integer)
DIM DeinBild As Any Ptr
OPEN FileName$ FOR BINARY AS #1
GET #1,19,hoehe
GET #1,23,breite
CLOSE #1
DeinBild=IMAGECREATE(hoehe, breite)
BLOAD FileName$, DeinBild
PUT (X,Y),DeinBild
END SUB
SCREEN 18,32,,1
do
zeichen$=INKEY$
SELECT CASE val(zeichen$)
CASE 1
cls
ShowBMP("bild1.bmp",0,0) then
Print "Hallo"
DECLARE SUB ShowBMP(FileName$, X As Integer, Y As Integer)
SUB ShowBMP(FileName$, X As Integer, Y As Integer)
DIM DeinBild As Any Ptr
OPEN FileName$ FOR BINARY AS #1
GET #1,19,hoehe
GET #1,23,breite
CLOSE #1
DeinBild=IMAGECREATE(hoehe, breite)
BLOAD FileName$, DeinBild
PUT (X,Y),DeinBild
END SUB
SCREEN 18,32,,1
do
zeichen$=INKEY$
SELECT CASE val(zeichen$)
CASE 1
cls
ShowBMP("bild1.bmp",0,0) then
Print "Du gehst weiter!"
CASE 2
cls
ShowBMP("bild2.bmp",0,0)
CASE 3
cls
ShowBMP("bild3.bmp",0,0)
CASE 4
cls
ShowBMP("bild4.bmp",0,0)
END SELECT
loop
CASE 2
cls
ShowBMP("bild2.bmp",0,0)
CASE 3
cls
ShowBMP("bild3.bmp",0,0)
CASE 4
cls
ShowBMP("bild4.bmp",0,0)
END SELECT
loop |
Also das man nach der Auswahl noch eine Auswahl hat und so weiter....
Editiert durch Moderator: Source in code-Tags gesetzt. (Sebastian) _________________ Ich bin (noch) kein Profi, habt etwas Verständnis ! |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 23.02.2006, 19:59 Titel: |
|
|
Stimmt, jetzt im Kasten sieht's besser aus.
Nun zum Fehler:
Das darf nur einmal im Programm stehen:
Code: | SUB ShowBMP(FileName$, X As Integer, Y As Integer)
DIM DeinBild As Any Ptr
OPEN FileName$ FOR BINARY AS #1
GET #1,19,hoehe
GET #1,23,breite
CLOSE #1
DeinBild=IMAGECREATE(hoehe, breite)
BLOAD FileName$, DeinBild
PUT (X,Y),DeinBild
END SUB |
(Entweder ganz am Anfang oder schluss)
Auch das hier braucht es nur einmal, wobei hier das mehrfach nicht schadet. _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
|
|
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.
|
|