sprites

Anfängerfragen zum Programmieren mit PureBasic.
Impact:)
Beiträge: 20
Registriert: 17.06.2008 17:25

sprites

Beitrag von Impact:) »

hi leute :mrgreen:


hi leute ich wollte mal ein kleines weltraumspiel machen und dazu hab ich eine frage:

also ich wollte fragen wie ich 2sprites laden kann (hintergrund und die spielfigur)

bei mir klappt das irgendwie net es kommt immer nur der hintergrund :(


ps:wie kann man mehrere hintergründe laden(z.b wenn das raumschiff den hintergrund verlässt das ein anderer hintergrund kommt)

bedanke mich für jede antwort



________________________________________
gruß Impact:)
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

also, du musst die verschiedenen sprites mit verschiedenen nummern laden.

anzeigen musst du die dann von hinten nach vorne, also die werden übereinandergemalt.

und das mit dem scrollenden hintergrund kriegen wir später... ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Re: sprites

Beitrag von Fluid Byte »

Impact:) hat geschrieben:also ich wollte fragen wie ich 2sprites laden kann (hintergrund und die spielfigur)
Die Hilfe ist dein Freund.
Impact:) hat geschrieben:bei mir klappt das irgendwie net es kommt immer nur der hintergrund :(
Was genau klappt nicht? Sourcecode wäre extrem hilfreich.
Windows 10 Pro, 64-Bit / Outtakes | Derek
Impact:)
Beiträge: 20
Registriert: 17.06.2008 17:25

Beitrag von Impact:) »

hi leute
bedanke mich erstmal für eure antworten

also ich hab das mal so gemacht(ich bin noch ein ziemlicher anfänger also wundert euch nicht wenn ich es falsch gemacht habe)

Code: Alles auswählen

If InitSprite() = 0
EndIf
If InitKeyboard()=0
MessageRequester("Fehler","Konnte dx nicht finden",0)
EndIf


If OpenScreen(800,600,32,"Vollbild")=0
MessageRequester("Fehler","Konnte kein Vollbild erstellen",0)
EndIf


LoadSprite(0,"C:\spiel\galaxy3.bmp")
LoadSprite(1,"C:\spiel\df.bmp")



Repeat

ClearScreen(0)



DisplayTransparentSprite(galaxy,30,30)
FlipBuffers()
ExamineKeyboard()

If KeyboardPushed(#PB_Key_Escape)

End
EndIf
ForEver
______________________________
gruß Impact:)

__________________________________________________
Code-Tags hinzugefügt
25.07.2008
RSBasic
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

als erstes:

benutz das ding für Code:

Code: Alles auswählen

Hello from a code block!
2.:

Die gleiche Frage die ich jedem von denen stelle die in ihren ersten posts gleich Spiele und Grafiken erstellen wollen:

Weißt du was eine Variable ist und wie man ihr einen Wert gibt, ihn ließt oder wie man sie definiert?
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

Beitrag von Franky »

Gut, fang`sch ma an:

1.) Haste diesen Thread im Archiv gesehen?
http://www.purebasic.fr/german/archive/ ... php?t=5220

2.)Du lässt dir ein transparentes Sprite anzeigen, ohne eine Transparenzfarbe angegeben zu haben

3.)Wo wird die Variable galaxy mit einem Wert belegt? :?
Das, was du bei Loadsprite vor der Dateiadresse angibst (die übrigends auch Relativ zum Ordner der Quelltextdatei sein darf ;)) ist die IdentifikationsNR des Sprites. diese musst du als ersten Parameter bei DisplaySprite() angeben ;)
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
Benutzeravatar
lassma-asma
Beiträge: 107
Registriert: 10.07.2007 09:14
Wohnort: Saarland

Beitrag von lassma-asma »

Code: Alles auswählen

If InitSprite() = 0
EndIf
If InitKeyboard()=0
MessageRequester("Fehler","Konnte dx nicht finden",0)
EndIf


If OpenScreen(800,600,32,"Vollbild")=0
MessageRequester("Fehler","Konnte kein Vollbild erstellen",0)
EndIf


LoadSprite(0,"C:\spiel\galaxy3.bmp")
LoadSprite(1,"C:\spiel\df.bmp")



Repeat

ClearScreen(0)



DisplayTransparentSprite(galaxy,30,30)
FlipBuffers()
ExamineKeyboard()

If KeyboardPushed(#PB_Key_Escape)

End
EndIf
ForEver 
Hi mal als erstes !

Also dein Problem liegt hier :

Code: Alles auswählen

DisplayTransparentSprite(galaxy,30,30) 
damit würdest du ja ein Sprite mit der "ID" (also Identifikationsnummer )
der Variablen "galaxy" darstellen wollen ...

Das Sprite , das du darstellen willst , hast du aber unter der "ID" 0 geladen

Code: Alles auswählen

LoadSprite(0,"C:\spiel\galaxy3.bmp") ; <-- also die 0 nach der ersten Klammer 
und nicht "galaxy" , das ist nur der Dateiname der Datei , die du geladen hast ...

also muss es heißen :

Code: Alles auswählen

DisplayTransparentSprite(0,30,30) ; <--  statt "galaxy" die  0 
Viel Erfolg bei deinem Spiel !
Gruß lassma-asma

:)
Gruß lassma-asma

MultiPONG
HANGMAN


PB 3.94 und PureBasic 4.51 !!!
Impact:)
Beiträge: 20
Registriert: 17.06.2008 17:25

Beitrag von Impact:) »

hi leute

ohh man ich glaube ich sollte noch etwas dran arbeiten^^

sry Franky ich hab diesen thread noch nicht gesehen aber danke für denn link :)

jetzt zu andreas
also ich habe schon ein paar andere sachen gemacht ^^und was variablen sind weiß ich schon(glaube ich xD)

naja ich versuche jetzt mal mein glück aufs neue ^_^


_____________
gruß Impact:)
Impact:)
Beiträge: 20
Registriert: 17.06.2008 17:25

Beitrag von Impact:) »

hi leute

da bin ich wieder mit einer neuen frage :mrgreen:

also mein problem ist jetzt das ich das raumschiff nicht steuern kann

(ich glaube ich habe irgendwas vergessen)

Code: Alles auswählen

If InitSprite() = 0
MessageRequester("Fehler","Konnte dx nicht finden",0)
EndIf
If InitKeyboard()=0
MessageRequester("Fehler","Konnte dx nicht finden",0)
EndIf


If OpenScreen(800,600,32,"Vollbild")=0
MessageRequester("Fehler","Konnte kein Vollbild erstellen",0)
EndIf


LoadSprite(0,"C:\spiel\galaxy3.bmp")
LoadSprite(1,"C:\spiel\raumschiff.bmp")


Repeat

ClearScreen(0)



DisplayTransparentSprite(0,0,0) 
DisplayTransparentSprite(1,120,120) 
FlipBuffers()


If KeyboardPushed(#PB_Key_Escape)

ExamineKeyboard()

If KeyboardPushed(#PB_Key_Right)
position_x + 5
If position_x > 700
position_x = 700
EndIf
EndIf

If KeyboardPushed(#PB_Key_Left)
position_x - 5
If position_x < 0
position_x=0
EndIf
EndIf

If KeyboardPushed(#PB_Key_Up)
position_y -5
If position_y <0
position_y=0
EndIf
EndIf

If KeyboardPushed(#PB_Key_Down)
position_y +5
If position_y > 500
position_y =500
EndIf
EndIf

If KeyboardPushed(#PB_Key_Escape)

End
EndIf
ForEver
bedanke mich für jede antwort :allright:
________________
gruß Impact:)

__________________________________________________
Code-Tags hinzugefügt
25.07.2008
RSBasic
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

Na klar hast du was vergessen, aber das ist so klar das du eigendlich selber draufkommen solltest...

Schau mal bei

Code: Alles auswählen

...
DisplayTransparentSprite(1,120,120)
...
-.-


Edit:
__________________________________________________
Code-Tags hinzugefügt
25.07.2008
RSBasic
Langsam solltest du dir das mit den Tags merken...
Antworten