Bilder werden nicht angezeigt

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

feider

ehemals "Decelion"

Betreff: Bilder werden nicht angezeigt

BeitragSo, Okt 17, 2004 12:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe mir folgenden Code geschrieben, aber es wird kein Bild angezeigt.
Woran liegt das?
Code: [AUSKLAPPEN]
graphics 800, 600, 32, 2
dim items(4)
for i = 0 to 3
   items(i+1)=loadanimimage("imgs/Fallitems.bmp", 40, 40, i, 1)
   maskimage items(i+1) ,255, 0, 255
next
dim spielfeld(15, 10, 4)

type choosedItem
   field x
   field y
   field art = 0
end type
global item.choosedItem = new choosedItem

timer=createtimer(2)
repeat
   newChoosedItem()
   moveChoosedItem()
   fallItem()
   drawItems()
   waittimer(timer)
   cls   
until keyhit(1)

function drawitems()
   for x = 1 to 15
      for y = 1 to 10
         if spielfeld(x, y, 1)<>0 then
            drawimage items(spielfeld(x, y, 1)), (x-1)*40, (y-1)*40
         endif
      next
   next
end function

function moveChoosedItem()
   if keydown(205) and item\X <15 then
      for i = 1 to 4
         spielfeld(item\x+1, item\y, i) = spielfeld(item\x, item\y, i)
         spielfeld(item\x, item\y, i)=0
         item\x=item\x+1
      next
   endif
   if keydown(203) and item\X >1 then
      for i = 1 to 4
         spielfeld(item\x-1, item\y, i) = spielfeld(item\x, item\y, i)
         spielfeld(item\x, item\y, i)=0
         item\x=item\x-1
      next
   endif
end function

function fallItem()
    for x=1 to 15
       for y = 9 to 1 step -1
          if spielfeld(x, y+1, 1) = 0 then
             for i = 1 to 4
                spielfeld(x, y+1, i) = spielfeld(x, y, i)
                spielfeld(x, y, i) = 0
             next
          else
             if spielfeld(x, y, 4) = 1 then
                spielfeld(x, y, 4) = 1
                item\art = 0
                item\x = 0
                item\y=0
             endif
          endif
       next
   next
end function

function newChoosedItem()
   if item\art = 0 then
      item\x=rand(1, 15)
      item\y=1
      item\art=rand(1, 4)
   endif
end function


danke im vorraus
wammerl
  • Zuletzt bearbeitet von feider am So, Okt 17, 2004 16:51, insgesamt einmal bearbeitet

FreakForFreedom

BeitragSo, Okt 17, 2004 13:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Vieleicht liegt es daran, dass du keinen Buffer initialisiert hast?
(SetBuffer BackBuffer())
Mfg
F.F.F.
"Try and ERROR!"

shure_kyu

Newsposter

BeitragSo, Okt 17, 2004 13:53
Antworten mit Zitat
Benutzer-Profile anzeigen
genau und flip haste auch nicht drin.
dein bild wird gemalt und gleich wieder durch das cls vom bildschirm gelöscht
 

hot-bit

Gast

BeitragSo, Okt 17, 2004 13:57
Antworten mit Zitat
Hoi..

@Wammerl:

Probier zuerst mal, zu verstehen, worum es beim Programmieren geht !

Es geht darum, alles in kleinen Schritten, einem Baby beizubringen, welches sau-doof, aber dafür umso schneller ist.
Und das Baby ist nur so gescheit wie sein Programmierer.
Wenn das Baby also nicht das richtige macht, dann ist der Programmierer schuld !
Vielleicht sollte dieser Programmierer sich selbst eine Nachhilfe verordnen !
Die Online-Hilfe eignet sich sehr dafür Smile

Also nicht wild drauflos coden, dann fragen was falsch ist, sondern sich mal mit den Grundlagen und Gegebenheiten vertraut machen ...

Toni

simi

BeitragSo, Okt 17, 2004 15:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

dim items(4)
for i = 0 to 3
   items(i+1)=loadanimimage("imgs/Fallitems.bmp", 40, 40, i, 1)
   maskimage items(i+1) ,255, 0, 255
next


Warum lädts du hier mit LoadAnimImage die Einzelbilder einzeln Question Question Confused

Wolltest du das extra so machen oder weisst du nicht was du gemacht hast??
 

feider

ehemals "Decelion"

BeitragSo, Okt 17, 2004 15:23
Antworten mit Zitat
Benutzer-Profile anzeigen
@FreakForFreedom
´...Ich werd mal versuchen das mit Backbuffer und Flip zu machen, gute Idee. Danke

@shure_kyu
´...Auch dir danke für den Tip

@Hot-bit
´...

@simi
´... Das ist schon richtig simi. Ich habe vier verschiedene Bilder (ein Faß, eine Kiste, einen Stein und einen Stahlträger, wenn dus wissen willst) in einer Datei gespeichert.
Diese Bildr sollen keiner Animation angehören.
Ich will da nur Ausschnitte aus den Bildern laden.

simi

BeitragSo, Okt 17, 2004 15:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Kannst ja genau so gut LoadAnimImage("baal",bla,bla,0,4) machen, brauchst du ein Array weniger...
 

feider

ehemals "Decelion"

BeitragSo, Okt 17, 2004 15:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habs jetzt mal auf Backbuffer geändert, geht aber immer noch nicht(flip ist natürlich auch mit drin!)
Auch wenn sich fast nix geändert hat (nur 2 zusätzliche Zeilen), ich füg den code trotzdem nochmal hier ein:
Code: [AUSKLAPPEN]
graphics 800, 600, 32, 2
setbuffer backbuffer()
; Die 4 Bilder laden: Faß; Stein; Kiste; Stahlträger
dim items(4)
for i = 0 to 3
   items(i+1)=loadanimimage("imgs/Fallitems.bmp", 40, 40, i, 1)
   maskimage items(i+1) ,255, 0, 255
next
; Spielfeld dimensionieren
dim spielfeld(15, 10, 4)

; Type für das kontrollierbare Bild
type choosedItem
   field x
   field y
   field art = 0
end type
global item.choosedItem = new choosedItem

; Timer, dass das Spiel vor Lauter Übermut nicht gleich abhaut :-)
timer=createtimer(2)
; Hauptschleife
repeat
   newChoosedItem()
   moveChoosedItem()
   fallItem()
   drawItems()
   flip
   waittimer(timer)
   cls
until keyhit(1)


; Funktion zum Zeichnen der vorhandenen Bilder
function drawitems()
   for x = 1 to 15
      for y = 1 to 10
         if spielfeld(x, y, 1)<>0 then
            drawimage items(spielfeld(x, y, 1)), (x-1)*40, (y-1)*40
         endif
      next
   next
end function

; Funktion für die Links/Rechtsbewegung des kontrollierbaren Bildes
function moveChoosedItem()
   if keydown(205) and item\X <15 then
      for i = 1 to 4
         spielfeld(item\x+1, item\y, i) = spielfeld(item\x, item\y, i)
         spielfeld(item\x, item\y, i)=0
         item\x=item\x+1
      next
   endif
   if keydown(203) and item\X >1 then
      for i = 1 to 4
         spielfeld(item\x-1, item\y, i) = spielfeld(item\x, item\y, i)
         spielfeld(item\x, item\y, i)=0
         item\x=item\x-1
      next
   endif
end function

; Funktion zum Abwärtsewegen der Bilder
function fallItem()
    for x=1 to 15
       for y = 9 to 1 step -1
          if spielfeld(x, y+1, 1) = 0 then
             for i = 1 to 4
                spielfeld(x, y+1, i) = spielfeld(x, y, i)
                spielfeld(x, y, i) = 0
             next
          else
             if spielfeld(x, y, 4) = 1 then
                spielfeld(x, y, 4) = 1
                item\art = 0
                item\x = 0
                item\y=0
             endif
          endif
       next
   next
end function

; Funktion, um ein steuerbares Bildobjekt zu erstellen
function newChoosedItem()
   if item\art = 0 then
      item\x=rand(1, 15)
      item\y=1
      item\art=rand(1, 4)
   endif
end function


ciao
wammerl
 

feider

ehemals "Decelion"

BeitragSo, Okt 17, 2004 15:32
Antworten mit Zitat
Benutzer-Profile anzeigen
@simi
´...stimmt, ich änders später vielleicht.
Momentan will ich lieber übrehaupt was sehen...
 

hot-bit

Gast

BeitragSo, Okt 17, 2004 16:09
Antworten mit Zitat
Hoi...

hmm, du willst aus vier verschiedenen Bildern ein AnimImage laden ?

Sehr gut !

Toni
 

feider

ehemals "Decelion"

BeitragSo, Okt 17, 2004 16:14
Antworten mit Zitat
Benutzer-Profile anzeigen
@hot-bit
´... Das soll kein animiertes Bild sein, sondern 4 ganz normale, voneinander unabhängige Bilder.
 

hot-bit

Gast

BeitragSo, Okt 17, 2004 17:25
Antworten mit Zitat
Hoiu,

Ja und, hast es nun geschafft oder nicht ?

Würde mich wundern ....

Toni
 

feider

ehemals "Decelion"

BeitragSo, Okt 17, 2004 17:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, ging immer noch nicht. Ich tüftle noch.

simi

BeitragSo, Okt 17, 2004 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
hab mir den Code noch mal angeschaut, und habe den Fehler glaube ich gefunden.
Überleg dir mal:
- Du erstellst ein Objekt
- Jetzt ist es in Type item gespeichert
- Jetzt gehst du das Array Spielfeld durch und zeichnest die map.

(Bewegung lass ich mal weg)

Was Fehlt???

simi

BeitragSo, Okt 17, 2004 17:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry für Doppelpost, Internet ging plötzlich nicht mehr.... (Router aus und wieder eingeschaltet, dann gings wieder)
  • Zuletzt bearbeitet von simi am So, Okt 17, 2004 17:41, insgesamt einmal bearbeitet
 

feider

ehemals "Decelion"

BeitragSo, Okt 17, 2004 17:37
Antworten mit Zitat
Benutzer-Profile anzeigen
aaahhh, danke simi!
Ich lasse das Bild ja gar nicht in die Map einfügen!
*schäm* Embarassed
Danke! Ichprobiers gleich mal aus!

ciao
wammerl#


Edit: Es geht!

Sebastian

BeitragMo, Okt 18, 2004 11:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Tutorials helfen .....

Glaub mir ......
Seit 2 Jahren kein BlitzBasic und kein Windows mehr, und stolz darauf !

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group