Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Bull-t07
Anmeldungsdatum: 10.07.2007 Beiträge: 12
|
Verfasst am: 11.07.2007, 14:36 Titel: Fragen zu Sound und Bilder einfügen in Freebasic |
|
|
Guuuten Morgen...
Ich bin neu hier im Forum und habe zu alldem auch noch eine Frage (unverschämt).
Also ich fange grade mit Freebasic an (ich bin noch ein alter qbasicer), und am meisten will ich in Freebasic kleine Spiele Programmieren.... meisten Textquest... Ausgelegt in IF und Then Sätzen, aber da das eine Extrem lange arbeit ist dachte ich mir Freebasic ist doch relativ neuer als Qbasic...
Bei qbasic so weit ich weiß konnte man keine Bilder(jpg,bmp)geschweigeden schon fertige sounds einspielen... (wav,mp3).
Aber da ich schon gesehen habe das geht mit Freebasic, wollte ich nun gerne den Befehl dazu wissen...
das bild sollte so ausehen das oben das Bild ist mit zwei optionen und unten steht der text dir formel sollte dann so lauten
Loadb name1.bmp
Input "Du stehst vor einem Wald, du kannst entweder nach (links) oder nach (rechts) gehen..."; richtung$
IF richtung$="links" Then Loadb Links1.bmp
IF richtung$="links" Then Input "du siehst auf dem Bild eine Scherbe willst du sie aufheben. (ja) oder (nein)."; Scherbe$
usw. kann mir nun einer Bitte einfach den Befehl zum Bild load sagen?
dann wollt ich auch noch kleine Sounds einspielen... wenn einer mir den Befehl bitte auch noch sagen?...
Dank Voraus Bull-t07
P.S Hoffe ihr habt verstanden...! |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
Bull-t07
Anmeldungsdatum: 10.07.2007 Beiträge: 12
|
Verfasst am: 11.07.2007, 15:04 Titel: |
|
|
Also danke für den Post...
das bild sollte so ausehen und dann immer neue bilder kann mir einer ne genaue anleitung geben wie ichs lade (noch nie gemacht...)
also hier der entwurf so in der größe...
http://img516.imageshack.us/img516/1139/entwurfbr7.png
... also pls noch eine antwort..... thx im voraus....
Bull-t07 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 11.07.2007, 15:40 Titel: |
|
|
Naja
Code: |
dim as any ptr bild1, bild2, bilb3, ...
bild1 = imagecreate(Höhe, Breite)
bload "bild1.bmp", bild1
put(x,y), bild1
|
Skalieren:
a) OGL ( )
b) Pixel mal zwei nehmen (einfach, aber langsam)
c) FreeImage_Rescale
such' dir eins aus.
OGL ist das schwierigste, aber auch das schnellste (HW-Beschleunigung usw.)
b) ist sehr einfach zu realisieren, aber seehr CPU lastig + langsam
c) vorher mit FI laden, dann skalieren (siehe hier), gibt aber probleme mit Bildpuffer Typ 1 & 2...
such dir eins aus... _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 11.07.2007, 15:44 Titel: |
|
|
Hallo und willkommen im Forum!
Zuersteinmal ein nat. nur nett gemeinter Ratschlag: Du ersparst dir selbst teilweise viel Zeit, wenn du die Suchfunktion verwendest. Viele derartige Fragen wurden schon beantwortet. Falls mal etwas nicht mehr gehen sollte (denn FB ist eine lebendige Sprache), sind hier alle sicherlich gerne bereit, zu helfen. (Sind wir ja sowieso. )
Trotzdem (oder gerade deshalb?): SuFu ftw!
Dann noch ein Tipp: Zur deutschen FB-Community gibt es zwei mehr oder minder aktive Portale mit vielen Informationen, Beispiel-Codes und Tutorials. Zum Einen wäre da das etwas neuere FreeBasic-Portal und FreeBasic.de.
Von FBP stammt auch folgendes Tutorial zum Anzeigen von Bildern: Tutorial von Volta zum Anzeigen von BMP-Bildern.
Noch viel Spaß hier im Forum,
Mao _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Bull-t07
Anmeldungsdatum: 10.07.2007 Beiträge: 12
|
Verfasst am: 11.07.2007, 15:54 Titel: |
|
|
Danke für die nette aufnahme hier....únd für die vielen Post
werd heud abend mal gucken was von den tipps klappt muss jetz weg.....
ich werde mal einen kleinen quelltext rein haun und wenn einer ein verbesserungs vorschlag hat dann bitte reinposten....
MFG: Bull-t07 |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 11.07.2007, 16:07 Titel: |
|
|
von hand skalieren (cpu-last und langsam) ist kein problem, wenn du eh nur zweima pro minute n bild anzeigst oder so.. kannst ja bild anzeigen, text hinschreiben, nächstes bild berechnen (dauert allerallerhöchstens ne zehntel sekunde), dann auf eingabe warten, das grad berechnete bild wieder anzeigen, nächster text, nächstes bild, oder einfach das bild direkt vorm anzeigen immer berechnen, du machst das ja nur so selten, das is kein problem. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Bull-t07
Anmeldungsdatum: 10.07.2007 Beiträge: 12
|
Verfasst am: 11.07.2007, 19:53 Titel: |
|
|
Danke MR.D könntest du oder irgend jemand eins zwei zeilen schreiben das ich rein komme???
THX im Voraus Bull-t07 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 11.07.2007, 20:52 Titel: |
|
|
naja
Pseudo Code:
Code: |
for x = 1 to 10
for y = 1 to 10
point (x,y), farbe
pset (x,y), farbe
pset (x+1,y+1), farbe
pset (x+1,y), farbe
pset (x,y+1), farbe
next
next
|
integer = x,y,farbe
das is jetzt um das bild 2xzu vergrößern... _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 11.07.2007, 21:25 Titel: |
|
|
Imho vergrößerst du das Bild damit nicht.
Nehmen wir mal für X den Wert 2, für Y den Wert 3.
Du liest den Farbwert des Punktes {2;3}. Dann setzt du ihn an der gleichen Stelle nochmal (wozu?) und gleichzeitig noch an {3;4} sowie {3,3}. Y wird durch die FOR-Schleife inkrementiert. Also haben wir den Punkt {2;4}. Jetzt liest du wieder Farbe und setzt sie an {2;4}, {3;5} und {3;4}. Gehen wir dann davon aus, dass irgendwann mal ein Durchlauf von Y vorbei ist.
X wird inkrementiert. Gelesen wird dann irgendwann vom Punkt {3; 3}. Jetzt wird aber nicht mehr der urpsprüngliche Pixel geleen, sondern der der durch die Routine schon gesetzt wurde. (Siehe oben.) Als Folge bekommst du eine schöne (fast) einfarbige Pixelfläche.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 11.07.2007, 21:52 Titel: |
|
|
du hast das entscheidene x2 vergessen, also ist es ein FALSCHER pseudocode. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Bull-t07
Anmeldungsdatum: 10.07.2007 Beiträge: 12
|
Verfasst am: 12.07.2007, 01:00 Titel: |
|
|
Also so sollte es in etwa ausehen:
Code: | .....
.....
.....
CLS
Load Baum1.jpg
Input "Du stehst vor einem Baum willst du ihn Untersuchen???(ja) oder (nein)..."; Baumuntersuchen$
IF Baumuntersuchen$="ja" Then Print "Du untersuchst ihn doch findest nichts...."
IF Baumuntersuchen$="nein" Then Print "Du untersuchst ihn nicht... Wir wollen ja keine Zeit verlieren..."
.....
.....
.....
usw. |
Kann mir da einer genau schreiben wie es richtig geschrieben wird...?
des Bild Baum1.jpg hab cih auf dem rechner nur wie ich weiter machen soll wie einfügen k.a und unten mit dem text oder frage ich habe keine ahnung.... also wenn mir einer ein kleines stück schreiben könnte dass ich dann weiter schreiben kann..... THX im Voraus: Bull-t07 |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 12.07.2007, 12:29 Titel: |
|
|
Falscher Pseudo-Code ist aber nicht gerade die netteste Art, jemandem zu helfen. Dann hätte man ihm auch nur die Befehle sagen können, ich glaub, dann würde man schneller zum Ziel kommen, als falschen Code zu übernehmen.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 12.07.2007, 13:57 Titel: |
|
|
Ich nehme mal an, dass du statt
gemeint hast. Allerdings ist Baum1.jpg wohl kaum ein Variablenname, sondern ein String:
Allerdings kann bload nur Bitmaps anzeigen. Für alles andere brauchst Bibliotheken, oder ein eigenen JPG-Loader. Ein guter JPG-Loader ist in der FreeImage.dll enthalten. Lade dir einfach von meiner Homepage mein Programm "RatsJView" herunter. Dort ist die FreeImage.dll dabei, und im Sourcecode gibt es die Funktion "GetJPEG". Diese lädt ein JPEG-Bild, und skaliert es. Um ein JPEG in Originalgröße anzuzeigen kannst du "RawJPEG" verwenden.
Um einen FB-Bildpuffer selber zu skalieren, gehst du in etwa so vor:
Code: |
Bild laden usw.
neuen Bildpuffer erstellen
in einer schleife alle pixel des geladenen bildes durchgehen
einen pixel aus alten bild nehmen
und 4 mal in den neuen Bildpuffer schreiben
|
Nur so ungefähr. _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
Bull-t07
Anmeldungsdatum: 10.07.2007 Beiträge: 12
|
Verfasst am: 13.07.2007, 19:37 Titel: |
|
|
Danke für die vielen Posts also mein Problem ist das das Bild nicht geloadet wird....
Code: | Screen 9
Print "Test"
BLoad "Baum1.bmp"
Sleep 5000
END |
das ganze ist in einem ordner....
und wenn es mal gezeigt wird, wie bekomm ich den da dann den Text oder die Frage drunter???
wäre euch sehr verbunden wenn mir das mal einer erklärt....
MFG:Bull-t07 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 13.07.2007, 19:55 Titel: |
|
|
Screen 9 hast du nicht im 32-Bit modus initialisiert:
dann
Code: | bload "Baum1.bmp", screenptr |
Naja
Wenn du was auf den Screen zeichnest, und danach was ÜBER den GANZEN Bildschirm malst, ist der vorhige Inhalt natürlich weg
Daher:
Zuerst Bild
dann mit DRAW STRING die Schrift
Code: | draw string (X ,Y), "Text", Farbe |
"Farbe" ist ein 32-Bit Integer. Mit dem Makro "rgb(Rot, Gruen, Blau)" kannst du den automatisch erstellen lassen. Dieser Makro ist in der "fbgfx.bi" notiert; also muss ein
Code: | #include "fbgfx.bi" |
Am Anfang stehen. _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
Bull-t07
Anmeldungsdatum: 10.07.2007 Beiträge: 12
|
Verfasst am: 13.07.2007, 20:29 Titel: |
|
|
He rats kann man dich auch privat anschreiben dann müssen wir nicht übers forum komunizieren und es geht schneller und einfacher was für chates benutzt du denn? |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 13.07.2007, 20:36 Titel: |
|
|
Hi,
leider funktioniert Bload mit 24/32bit BMP's nicht in den emulierten Screenmodi.
Erst ab Screen 14 geht es dann (auch ohne 'Screenpointer'). Code: | Screen 14,32
Bload "Baum1.bmp"
Draw String (20 ,30), "Text", RGB(255,255 ,0)
Color &hFFFF00 '=RGB(255,255 ,0)
Print "TEXT"
Sleep
End | Die fbgfx.bi muss dazu nicht extra includet werden. _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
|