Anzeige des Sprites funktioniert nicht!

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Macros
Beiträge: 1365
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Ich war gestern auf einer Lan-Party, und bin jetzt ein bisschen geplättet.
Natürlich kann man das Problem auch am Code erkennen,
aber heute echt nicht mehr Bild.
Morgen nach der Schule helfe ich dir. Übrigens, ich hab dir eine Mail geschrieben,
wo drinnensteht, dass du die Bilder im JPG Format komprimieren solltest,
dann verlieren sie enorm an Größe.
Benutzeravatar
Macros
Beiträge: 1365
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Tut mir leid, dass es so lange gedauert hat :(

Code: Alles auswählen

If delay<50
  If move=1
    AniFrame+1
    If aniframe<minrange
    AniFrame=minrange 
    EndIf
    If AniFrame >maxrange
      AniFrame=minrange
    EndIf
    delay=60
  EndIf
Else
  delay-1
EndIf
(Aber jetzt bin ich wieder zu deiner Verfügung)
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Wenn er die Bilder teilweise transparent anzeigen will (sry, bin auch zu geplättet, um mir jetzt den ganzen Code da reinzuziehn...), sollte er möglichst kein JPG nehmen. Besser PNG... JPG ist ein verlustbehaftetes Format, will heißen, dass die Transparenz in 90% aller Fälle nicht korrekt angezeigt werden wird, weil JPG das Bild zu stark komprimiert...
Benutzeravatar
Macros
Beiträge: 1365
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Ich meinte auch nur, dass er mir sie im JPG-Format schicken soll,
da´s dann etwas schneller geht.

Damit meinte ich nicht, das er auch im Spiel JPG verwenden soll.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

hey, macros.. keine 2 monate hier und schon anfängerstunden geben.. respekt.. ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Macros
Beiträge: 1365
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Ich hatte vorher schon 1.5 Jahre 3.30 Übung.
Dann kam das Internet mit 3.94 und dem Pureboard.
Also so großartig bin ich nun auch nicht. :wink:

(Ich geb sogar einen Programmierkurs an meiner Schule)
Janiboy
Beiträge: 71
Registriert: 02.01.2005 15:22

Beitrag von Janiboy »

So, bin mal wieder im Forum on. Danke, funktioniert jetzt alles, demnächste werden aber wohl wieder Probleme mit der Kollisionsabfrage auftauchen :wink: .

Gruß,
Janiboy
Janiboy
Beiträge: 71
Registriert: 02.01.2005 15:22

Beitrag von Janiboy »

Gut, ok, direkt weiter mit der nächsten frage: wie kann man den sprite "spiegeln", also, wenn er nach links geht, dass man nicht extra en neues sprite braucht?

Danke im Vorraus,
Janiboy
Benutzeravatar
Macros
Beiträge: 1365
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Ich bin wieder da,
wie ich sehe, werden die Fragen komplizierter
---> Dauert noch kurz
Benutzeravatar
Macros
Beiträge: 1365
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Mit dieser Procedur:

Code: Alles auswählen

Procedure spiegle(sprite$,gespiegelt$) 

Image1Dc = CreateCompatibleDC_(0) 
Image1 = LoadImage_(0,sprite$,0,0,0,$2050) 
OldObject = SelectObject_(Image1DC,Image1) 
GetObject_(Image1,SizeOf(BITMAP),bmp.BITMAP) 

Image2Dc = CreateCompatibleDC_(0) 
Image2 = CreateCompatibleBitmap_(Image1DC,bmp\bmWidth,bmp\bmHeight) 
SelectObject_(Image2DC,Image2) 

For a=0 To bmp\bmHeight 
    For b=0 To bmp\bmWidth 
    BitBlt_(Image2DC,bmp\bmWidth-b,a,1,1,Image1DC,b,a,#SRCCOPY) 
     Next
  Next

CreateImage(999,bmp\bmWidth,bmp\bmHeight) 
Windc = StartDrawing(ImageOutput()) 
StretchBlt_(WinDC,0,0,bmp\bmWidth,bmp\bmHeight,Image2DC,0,0,bmp\bmWidth,bmp\bmHeight,#SRCCOPY) 
StopDrawing() 

ReleaseDC_(0,Image1DC) 
DeleteObject_(Image1) 
ReleaseDC_(0,Image2DC) 
DeleteObject_(Image2) 
SaveImage(999,gespiegelt$)
FreeImage(999)
EndProcedure 

spiegle("C:\sprite.bmp","C:\sprite.bmp")
kannst du das Bild im Programm spiegeln, dann musst du das Sprite neu laden, und es ist gespiegelt.
Jetzt hab ich was durch dich gelernt.
Antworten