Problem mit Grafiken anzeigen sowie Text ausdrucken
Übersicht

![]() |
Hannes1995Betreff: Problem mit Grafiken anzeigen sowie Text ausdrucken |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo !
Ich 'hab mir ein kleines RPG gebastelt doch dann kam ein Fehler: BlitzBasic druck 2 Bilderr und Text nicht aus. Hier der Code ,,Was ist Falsch daran ?": Code: [AUSKLAPPEN] Graphics 1024,768,32,1
;Laden von allen Daten bg=LoadImage("bg.jpg") tileset=LoadAnimImage("tileset.bmp",32,32,0,5) char=LoadImage("char.bmp") load=LoadImage("neon1.bmp") speak=LoadImage("speak.jpg") foto=LoadImage("hannes.jpg") MaskImage char,255,255,255 ; SetBuffer BackBuffer() Cls DrawImage load,300,354 Flip Locate 450,325 Print "Laden..." Delay 6000 SetBuffer BackBuffer() Cls Flip Locate 450,325 Print "Laden erfolgreich ! Bitte drücken Sie eine Taste." WaitKey SetBuffer BackBuffer() Cls DrawImage bg,0,0 Flip Color 255,255,0 Print "Willkommen!" Global name$=Input$("Wie heißt du? ") SetBuffer BackBuffer() Cls DrawImage bg,0,0 Flip Select name$ Case "Hannes" Print "Mein Gebieter! Mein Schöpfer! Ich hätte Sie hier nicht erwartet. " Default Print "Hallo " +name+ "! Schön dich kennen zu lernen ! " End Select Global alt=Input("Wie alt bist du ?") SetBuffer BackBuffer() Cls DrawImage bg,0,0 Flip Print "Aha. Du bist also " +alt+ " Jahre alt." Delay 2000 SetBuffer BackBuffer() Cls DrawImage bg,0,0 Flip Print name+ " , was möchtest du tun ?" Local tun=Input("1 - Adventure starten 2 - Spielstand laden 3 - Beenden ") SetBuffer BackBuffer() Cls DrawImage bg,0,0 Flip Select tun Case "1" Print "Dann kann es ja los gehen !" Gosub Spielstart Case "2" Print "Spielstand wird geladen." Case "3" Print "Das Programm wird beim nächsten Tastendruck beendet." Default Print "Ungültige Eingabe" Delay 1000 End End Select .Spielstart PlayMusic("fröhlich.mid") SetBuffer BackBuffer() DrawImage speak,200,610 DrawImage foto,0,620 Color 255,0,0 Locate 240,620 Print "Hallo, und Herzlich Willkommen zu .......!" Flip SetBuffer BackBuffer() ;die benötigten variablen Global ppx = 10*32 ;X-Position des Charackters Global ppy = 7*32 ;Y-Position des Charackters Global py = 7 ;Kollisions X-Position des Charackters Global px = 10 ;Kollisions Y-Position des Charackters Global scrolly ;Die Variable für die ScrollY-Position Global scrollx ;Die Variable für die ScrollX-Position ;die map-array Dim map(20,20) ;die Karte Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4 Data 4,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,4 Data 4,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4 Data 4,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4 Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4 Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4 Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4 Data 4,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,4 Data 4,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,4 Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4 Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4 Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4 Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4 Data 4,0,0,0,3,3,0,0,0,0,0,0,0,0,3,3,0,0,0,0,4 Data 4,0,0,0,3,3,0,0,0,0,0,0,0,0,3,3,0,0,0,0,4 Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4 Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4 Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4 Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4 Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 ;einlesen und die zahlen der Tiles in der array speichern For y = 0 To 20 For x = 0 To 20 ;einlesen der werte aus der data map in die array Read map(x,y) Next Next ;start der hauptschleife Repeat ;unnütze graficreste löschen Cls ;esc-taste zum beenden abfragen If KeyDown(1) Then Exit ;die 20*20 tiles große map laden For x = 0 To 20 For y = 0 To 20 ;malt die karte an der positon x*32,y*32 und man kann die variablen scrollx und scrolly ;von außen manipulieren, um so scrolling zu erzeugen DrawBlock tileset,x*32-scrollx,y*32-scrolly,map(x,y) Next Next ;malt den charackter den du steuerst DrawImage char,ppx-scrollx,ppy-scrolly Text 0,0,py Text 0,20,px ;_____________________Bewegungsrutinen für die einzelnen pfeil-tasten________________________________ ;diese rutinen funcktionieren ganz einfach, solange aa größer 0 ist bleiben sie ;acktiv und es wird gescrollt ;pfeilrunter-taste If move = 1 Then ;wenn der wert aa größer 0 ist wird fortgesetzt If aa > 0 ;solange der wert aa größer 0 ist wird um 2 pixel weiter gescrollt scrolly = scrolly + 2 ;die sichtbare figur wird bewegt ppy = ppy + 2 ;die variable xo wird solange aa > 0 ist erhöht xo = xo + 1 ;wenn xo den wert 16 erreicht hat wird aa wieder auf 0 gesetzt und der kollisionsparameter ;py wird verändert, danach wird xo wieder auf 0 gesetzt If xo = 16 Then aa = 0:py = py + 1:xo = 0 End If End If ;pfeilhoch-taste If move = 2 Then If aa > 0 scrolly = scrolly - 2 ppy = ppy - 2 xo = xo + 1 If xo = 16 Then aa = 0:py = py - 1:xo = 0 End If End If ;pfeillinks-taste If move = 3 Then If aa > 0 scrollx = scrollx - 2 ppx = ppx - 2 xo = xo + 1 If xo = 16 Then aa = 0:px = px - 1:xo = 0 End If End If ;pfeilrechts-taste If move = 4 Then If aa > 0 scrollx = scrollx + 2 ppx = ppx + 2 xo = xo + 1 If xo = 16 Then aa = 0:px = px + 1:xo = 0 End If End If ;rechs-taste If KeyDown(205) Then ;kollision checken, wie ihr es schon kennt If map(px+1,py) < 1 Then ;der nächste tastatur-eingabe-impuls wird möglich sobald aa weniger als 1 wert ist ;das heißt in der zeit wo keine tastatur-eingabe erfolgen kann wird zur zeit gescrollt If aa < 1 Then ;die scrollrutine move = 4 wird aufgerufen move = 4 ;aa nimmt den wert 1 an dadurch kann man erst wieder auf eine taste drücken, wenn ;aa < 1 wird aa = 1 End If End If End If ;lings-taste If KeyDown(203) Then ;kollision checken, wie ihr es schon kennt If map(px-1,py) < 1 Then If aa < 1 Then move = 3 aa = 1 End If End If End If ;oben-taste If KeyDown(200) Then ;kollision checken, wie ihr es schon kennt If map(px,py-1) < 1 Then If aa < 1 Then move = 2 aa = 1 End If End If End If ;unten-taste If KeyDown(208) Then ;kollision checken, wie ihr es schon kennt If map(px,py+1) < 1 Then If aa < 1 Then move = 1 aa = 1 End If End If End If ;flippen und zurück zum Anfang der Hauptschleife Flip Forever ;Images wieder freigeben FreeImage tileset FreeImage char WaitKey End Brauche möglichst schnell Hilfe ! Mfg, Hannes |
||
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du weisst schon, das du äussert unverschämt rüberkommst?
"Hier ist der code, helft mir mal! Und n bisschen Zackig !! Schliesslich seid ihr nur dafür da mir zu helfen!" ![]() An welcher stelle ist denn der fehler... hier haben glaub 99% der leute keine Lust sich 500 zeilen code reinzuziehen... |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du benutzt Setbuffer falsch - es reicht den Buffer einmal auf Backbuffer zu setzen, dann ist das solange so bis Du es ausdrücklich wieder änderst.
Desweiteren ist print nicht Backbuffer-Kompatibel, denn es benutzt immer den Frontbuffer. Text ist hier das Kommando der Wahl. Als drittes: Dein Code ist nur schlecht nachzuvollziehen, Da du weder einrückst noch sonderlich aussagekräftige Variablennamen benutzt. Viertes Problem ist dass nicht genau ersichtlich ist welche Grafik Du meinst, und dass man den Code ohne Media nur begrenzt testen kann. |
||
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 |
![]() |
Hannes1995Betreff: OK Thx |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok THX Blade Runner und Junkprogger !
Aber es klappt immer noch nicht. Auch nicht als ich den Set Buffer weggenommen habe. Print schreibt er immer noch nicht obwohl er im Frontbuffer schreiben sollte. Trotzalledem, Thx |
||
![]() |
mas93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich will echt nix sagen, aber genau wie du oben gschrieben hast:
Ich hab mir ein kleines RPG GEBASTELT. Ich kenn den Code. Ich hab nämlich auch die tutorials von der robsite gelesen. Und ich kann nur sagen, dass alles außer den texten am anfang 1 zu 1 kopert ist ![]() Das soll jetzt kein Vorwurf sein, sondern ein tipp. Wenn du nur 1 zu 1 kopierst wird das nix. und wenn du schon seit einem jahr proggst und schon ganz gut dabei bist ->https://www.blitzforum.de/foru...p;start=60 dann bin ich mir sicher, dass du das auch alleine besser hinbekommst. Ich dachte am anfang auch immer: Ja gebt mal alle her mit dem code.Aber so lernst dus nicht... Wie gesagt, nur ein Tipp. und jetzt noch was back to topic: Ich würde vermeiden den buffer dauernd hin und her zu "flippen". Das muss ja in nem chaos enden. |
||
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau] |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group