WTF wieso zeichnet der nich???

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

ReLeNtLeSS

Betreff: WTF wieso zeichnet der nich???

BeitragMi, Okt 31, 2007 17:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Wieso zeichnet der mir die Bilder net?

Code: [AUSKLAPPEN]

;CrazyRace by Dominik van Megchelen
AppTitle "CrazyRace"
Graphics 1280,1024,32

SetBuffer BackBuffer()

;LoadImage;Loadsound

Global lade1=LoadImage("data/lade/1 (1).png")
DrawImage lade1,400,400
Delay 1000
Global lade2=LoadImage("data/lade/1 (2).png")
Global lade3=LoadImage("data/lade/1 (3).png")
DrawImage lade2,400,400
Delay 1000
Global lade4=LoadImage("data/lade/1 (4).png")
Global lade5=LoadImage("data/lade/1 (5).png")
DrawImage lade3,400,400
Delay 1000
Global lade6=LoadImage("data/lade/1 (6).png")
Global lade7=LoadImage("data/lade/1 (7).png")
Global lade8=LoadImage("data/lade/1 (8).png")
DrawImage lade4,400,400
Delay 1000
Global lade9=LoadImage("data/lade/1 (9).png")
Global lade10=LoadImage("data/lade/1 (10).png")
Global lade11=LoadImage("data/lade/1.png")
Global auto=LoadImage("data/auto.bmp")
DrawImage lade5,400,400
Delay 1000
Global autoruck=LoadImage("data/autoruck1.bmp")
Global crash=LoadImage("data/crash.bmp")
Global baum=LoadImage("data/baum.bmp")
DrawImage lade6,400,400
Delay 1000
Global crash2=LoadImage("data/crash2.bmp")
Global bg=LoadImage("data/bg.bmp")
Global maus=LoadImage("data/maus.bmp")
DrawImage lade7,400,400
Delay 1000
Global camel=LoadImage("data/camel.bmp")
Global cameltot=LoadImage("data/cameltot.bmp")
DrawImage lade8,400,400
Delay 1000
Global button1=LoadImage("data/buttons/buttonstart1.png")
Global button1_a=LoadImage("data/buttons/buttonstart2.png")
DrawImage lade9,400,400
Delay 1000
Global button2=LoadImage("data/buttons/buttonsettings1.png")
Global button2_a=LoadImage("data/buttons/buttonsettings2.png")
DrawImage lade10,400,400
Delay 1000
Global button3=LoadImage("data/buttons/buttonquit1.png")
Global button3_a=LoadImage("data/buttons/buttonquit2.png")
Global font=LoadFont("Comic Sans MS",40,True)
DrawImage lade11,400,400
Delay 1000

End

;ENDE


Ich bin ratlos...[/code]

mas93

BeitragMi, Okt 31, 2007 17:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich finde ja, dass dein code totaler schwachsinn ist, aber wenn du ihn unbedingt verwenden willst:
Wie wärs mit flip??

mfg
mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]
 

Dreamora

BeitragMi, Okt 31, 2007 18:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Code ist komplett unbrauchbar.

Da fehlt jegliche Struktur (LadePhase, MainLoop, CleanUpPhase)

Wenn du das gemacht hast, dann einfach noch ein Flip rein wie oben beschrieben. Das Flip ist in der MainLoop
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Jo0oker

BeitragMi, Okt 31, 2007 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich dir ein Tipp geben darf mach kein unnötigen ladebalken, sonder schreib dir eine Function die vvor dem Laden ein Bildanzeigt, und wärend des Ladens wird es dann auc wirklich angezeigt.

Hiem la so ein grobes bspl:

Load("Bilder")
Jetzt lade ich alle Bilder.............
Load("Map")
Jetzt Lade Ich die Map
Load("Player")
Jetzt noch den Player



Function Load(txt$)

t = loadimage("blababsad")

drawimage t,0,0
text 50,50,txt$

flip
freeimage t
end function

war nur mal so ein grobes Beispiel, klappt aber Prima!!!

lg Jo0oker
Tehadon, das kostenlose 3D RPG
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
Das Abenteuer wird beginnen!

ReLeNtLeSS

BeitragDo, Nov 01, 2007 17:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Meine Güte,
wieso sagt ihr mir das der Code unbrauchbar ist? Das weis ich selber... ich wollte nur wissen warum er mir nicht zeichnet weil ich diesen CODEAUSSCHNITT(!!!) nämlihc in einem Hauptprogramm verwende, wo er auch net funktioniert...

Jo0oker

BeitragDo, Nov 01, 2007 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
!!!!!!!!!!! weil FLIP fehlt !!!!!!!!!!!!!!

FLIP FEHLT



lg Jo0oker
Tehadon, das kostenlose 3D RPG
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
Das Abenteuer wird beginnen!

ReLeNtLeSS

BeitragDo, Nov 01, 2007 17:47
Antworten mit Zitat
Benutzer-Profile anzeigen
in meinem hauptprogramm nich...

Jo0oker

BeitragDo, Nov 01, 2007 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Weil du vorher bestimmt einmal Cls verwendet hast, und somit alles wieder gelöscht...


lg Jo0oker
Tehadon, das kostenlose 3D RPG
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
Das Abenteuer wird beginnen!

ReLeNtLeSS

BeitragDo, Nov 01, 2007 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Global lade1=LoadImage("data/lade/1 (1).png")
DrawImage lade1,400,400
Delay 1000
Global lade2=LoadImage("data/lade/1 (2).png")
Global lade3=LoadImage("data/lade/1 (3).png")
DrawImage lade2,400,400
Delay 1000
Global lade4=LoadImage("data/lade/1 (4).png")
Global lade5=LoadImage("data/lade/1 (5).png")
DrawImage lade3,400,400
Delay 1000
Global lade6=LoadImage("data/lade/1 (6).png")
Global lade7=LoadImage("data/lade/1 (7).png")
Global lade8=LoadImage("data/lade/1 (8).png")
DrawImage lade4,400,400
Delay 1000
Global lade9=LoadImage("data/lade/1 (9).png")
Global lade10=LoadImage("data/lade/1 (10).png")
Global lade11=LoadImage("data/lade/1.png")
Global auto=LoadImage("data/auto.bmp")
DrawImage lade5,400,400
Delay 1000
Global autoruck=LoadImage("data/autoruck1.bmp")
Global crash=LoadImage("data/crash.bmp")
Global baum=LoadImage("data/baum.bmp")
DrawImage lade6,400,400
Delay 1000
Global crash2=LoadImage("data/crash2.bmp")
Global bg=LoadImage("data/bg.bmp")
Global maus=LoadImage("data/maus.bmp")
DrawImage lade7,400,400
Delay 1000
Global camel=LoadImage("data/camel.bmp")
Global cameltot=LoadImage("data/cameltot.bmp")
DrawImage lade8,400,400
Delay 1000
Global button1=LoadImage("data/buttons/buttonstart1.png")
Global button1_a=LoadImage("data/buttons/buttonstart2.png")
DrawImage lade9,400,400
Delay 1000
Global button2=LoadImage("data/buttons/buttonsettings1.png")
Global button2_a=LoadImage("data/buttons/buttonsettings2.png")
DrawImage lade10,400,400
Delay 1000
Global button3=LoadImage("data/buttons/buttonquit1.png")
Global button3_a=LoadImage("data/buttons/buttonquit2.png")
Global font=LoadFont("Comic Sans MS",40,True)
DrawImage lade11,400,400
Delay 1000

Flip


Er zeichnet GAR nichts



/EDIT: Ich habs.... ich muss das SetBuffer Backbuffer() vor dem Zeichnen wegnehmen, fragt mich nicht wieso.

Xeres

Moderator

BeitragDo, Nov 01, 2007 17:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Immer wenn du ein Bild zeichnest, geht das auf den Backbuffer -->
Code: [AUSKLAPPEN]
Global lade1=LoadImage("data/lade/1 (1).png")
DrawImage lade1,400,400
flip
Delay 1000
[...usw...]
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Jo0oker

BeitragDo, Nov 01, 2007 18:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Mach mal:
Code: [AUSKLAPPEN]

Graphics 1024,768,32,2
setbuffer Backbuffer()


davor.

Weil du zeichnest ja bei 400x400 und das ist auserhalb des Fensters.

lg Jo0oker
Tehadon, das kostenlose 3D RPG
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
Das Abenteuer wird beginnen!
 

Goaly

BeitragDo, Nov 01, 2007 18:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst 11 Sekunden warten. Dann siehst du etwas.

Warum? Zunächst einmal ein paar Informationen zum Flip(<-link) Befehl:
Code: [AUSKLAPPEN]
Dieser Befehl wird bei Doublebuffering angewendet. Dabei muss man zuerst den Hintergrundbuffer mit SETBUFFER BACKBUFFER() auswählen. Nun kann man alle Grafikbefehle wie z.B. LINE ausführen. Zuletzt wird der Befehl FLIP benutzt, um die Grafik sichtbar zu machen. Dabei werden BACKBUFFER und FRONTBUFFER miteinander vertauscht. Nur so können flimmerfreie Spiele entwickelt werden.


So.. Nochmals.. warum musst du 11 Sekunden warten bis Du etwas siehst? Ganz einfach... Du tust erst am Schluss deines Quellcodes einmal Flip verwenden. Somit wird also erst am Schluss etwas dargestellt.

Du solltest demnach Flip(<-link) immer vor einer delay Anweisung verwenden.

bye
 

Marek

BeitragDo, Nov 01, 2007 18:05
Antworten mit Zitat
Benutzer-Profile anzeigen
durch die ganzen delays darfst du erstmal 10 Sekunden warten, bis was gezeichnet wird.
Zudem fehlt noch ein Waitkey am Ende des Codes, damit das Programm nicht gleich beendet wird. So wie es jetzt ist, macht das Programm folgendes:

Laden
Zeichnen
Warten
.
.
.
Flip(auf den FrontBuffer zeichnen)
Beenden

Code: [AUSKLAPPEN]

Global lade1=LoadImage("data/lade/1 (1).png")
Global lade2=LoadImage("data/lade/1 (2).png")
Global lade3=LoadImage("data/lade/1 (3).png")
Global lade4=LoadImage("data/lade/1 (4).png")
Global lade5=LoadImage("data/lade/1 (5).png")
Global lade6=LoadImage("data/lade/1 (6).png")
Global lade7=LoadImage("data/lade/1 (7).png")
Global lade8=LoadImage("data/lade/1 (8).png")
Global lade9=LoadImage("data/lade/1 (9).png")
Global lade10=LoadImage("data/lade/1 (10).png")
Global lade11=LoadImage("data/lade/1.png")
Global auto=LoadImage("data/auto.bmp")
Global autoruck=LoadImage("data/autoruck1.bmp")
Global crash=LoadImage("data/crash.bmp")
Global baum=LoadImage("data/baum.bmp")
Global crash2=LoadImage("data/crash2.bmp")
Global bg=LoadImage("data/bg.bmp")
Global maus=LoadImage("data/maus.bmp")
Global camel=LoadImage("data/camel.bmp")
Global cameltot=LoadImage("data/cameltot.bmp")
Global button1=LoadImage("data/buttons/buttonstart1.png")
Global button1_a=LoadImage("data/buttons/buttonstart2.png")
Global button2=LoadImage("data/buttons/buttonsettings1.png")
Global button2_a=LoadImage("data/buttons/buttonsettings2.png")
Global button3=LoadImage("data/buttons/buttonquit1.png")
Global button3_a=LoadImage("data/buttons/buttonquit2.png")
Global font=LoadFont("Comic Sans MS",40,True)


DrawImage lade1,400,400
Flip
Delay 1000

DrawImage lade2,400,400
Flip
Delay 1000

DrawImage lade3,400,400
Flip
Delay 1000

DrawImage lade4,400,400
Flip
Delay 1000

DrawImage lade5,400,400
Flip
Delay 1000

DrawImage lade6,400,400
Flip
Delay 1000

DrawImage lade7,400,400
Flip
Delay 1000

DrawImage lade8,400,400
Flip
Delay 1000

DrawImage lade9,400,400
Flip
Delay 1000
 
DrawImage lade10,400,400
Flip
Delay 1000
 
DrawImage lade11,400,400
Flip
Delay 1000

Waitkey()
End


Jetzt macht es das hier:
Alles Laden

Bild malen
Backbuffer anzeigen
warten(eine Sekunde)
.
.
.
Auf Eingabe warten
Beenden

Was du jetzt noch machen musst:
-Für jedes Bild ein Freeimage-Befehl vor dem End einfügenBefehl (wichtig!!!)
-Ungenutzte Bilder entfernen
Wer lesen kann ist klar im Vorteil...

ReLeNtLeSS

BeitragDo, Nov 01, 2007 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
nein nein nein
ihr versteht alle mein schon längst gelöstes problem nich! was jetz aber auch egal ist, ich musste den setbuffer backbuffer() davor wegnehmen dann gings.
 

Marek

BeitragDo, Nov 01, 2007 18:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Meins würde auch gehen. Ich habe dein Problem schon verstanden...
Pass auf:

Jedes Programm startet automatisch im "Front-Buffer-Modus". Der FrontBuffer ist das, was du auf dem Bildschirm siehst. Zeichnest du also auf den FronBuffer, siehst du das sofort.

Benutzt du aber SetBuffer BackBuffer(), so gehst du in den "Back-Buffer-Modus", das heißt, du zeichnest alles auf einen "virtuellen Bildschirm". Um diesen "virtuellen Bildschirm" anzuzeigen brauchst du den Befehl Flip. Der zeichnet den Backbuffer(also alles auf dem "virtuellem Bildschirm; in diesem Fall deine Bilder) auf den FrontBuffer. Du musst also immer, wenn du was angezeigt haben möchtest, Flip benutzen.
MfG Marek
Wer lesen kann ist klar im Vorteil...

Lunatix

BeitragDo, Nov 01, 2007 19:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Global lade1=LoadImage("data/lade/1 (1).png")
DrawImage lade1,400,400
Delay 1000


Da musst du vor das Delay ein Flip schreiben. Anstatt die, die hier Ihre Kostbare Zeit für dein (sorry) Billig-Problem nehmen, anzuschreihen und im Übertragenen Sinne für Blöd darzustellen, solltest du, lieber Relentless, lieber mal besser lesen. Vielleicht auch einfach mal das machen, was man dir sagt... es wäre so einfach Rolling Eyes
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

ozzi789

BeitragDo, Nov 01, 2007 20:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie wärs mit "Waitimer" ?
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

Marek

BeitragDo, Nov 01, 2007 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
@ozzi das hätte das Problem hier auch nicht gelöst Wink
Wer lesen kann ist klar im Vorteil...

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Nov 01, 2007 21:56
Antworten mit Zitat
Benutzer-Profile anzeigen
@ReLeNtLeSS, wenn du wirklich die User warten lassen willst, dann doch bitte nicht mit einem langweiligen Ladebalken der in der gesamten Anzeigedauer garnichts lädt. Mach dann doch besser eine kurze Animation wo ein Schriftzug durch den Bildschirm fliegt oder der gleichen. Diese sollte aber auch nicht 10 Sekunden dauern, denn ab 4 Sekunden haben die meisten schon garkeine Lust mehr zu warten. Dass Spiele mit Ladedauer vom Gefül her aber 'hochwertiger' erscheinen, leutet mir auch ein. Ich neige auch gerne dazu ein Delay von 1500 zu machen, mehr aber nicht.

Um dein Problem nochmal anzukurbeln wurde obwohl bereits alles gesagt wurde. Du siehst nichts, weil du eben alles in dem Hintergrund gemalt hast. Der Hintergrund ist dein Backbuffer (ein zweiter 'Bildschirm' der nicht auf dem Monitor erscheint, sondern nur im Grafikspeicher deiner Grafikkarte). Bei Flip werden beide Bildschirme vertauscht (bei Vollbild) oder umkopiert (beim Fenstermodus). Speziell in deinem Fall hätte ich SetBuffer FrontBuffer() gemacht, deine Ladebalken gezeichnet und anschliessend dann auf SetBuffer BackBuffer() gestellt, welches für die meisten Spiele notwendig ist.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

ReLeNtLeSS

BeitragDo, Nov 01, 2007 22:38
Antworten mit Zitat
Benutzer-Profile anzeigen
hey leute
sorry falls ich aggressiv gewirkt habe; war net so gemeint.

ich habe das jetz schon verstanden und ihr müsst es auch nich noch mal wiederhohlen - dank der vernünftigen erklärung von marek.

Allerdings kann ich einfach die leute die sich über den code kaputtlachen, obwohl sie gar net wissen wozu er gehört. manche codeauschnitte mögen so einsam dahingstellt nuttzlos aussehen, was sie in einem hauptprogramm allerdings nicht sind.

und die delays waren nur zur kontrolle... was mir ja im endeffekt nix gebracht hat.. naja.. mfg

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group