Seite 2 von 4

Verfasst: 20.09.2008 12:00
von kswb73

Code: Alles auswählen

DisplayTransparentSprite(#Cursor, MouseX(), MouseY()) 
DisplaySprite() zeigt das Sprite nur so an wie es ist. DisplayTransparentSprite() zeigt das Bild ohne seine Transparente Farbe an (standartmäßig Schwarz).

Verfasst: 20.09.2008 12:52
von Link2Death
Ah cool ok! Danke sher ihr seid mir alle echt ne riesen hilfe :allright: :allright: :allright:

Verfasst: 20.09.2008 17:41
von Link2Death
Hmmmmmm.... das mit dem Sprites bewegen klappt noch nicht so ganz :(

Ich schaffe es das Bild innerhalb des Bildschirms zu bewegen, aber ich möchte eigentlich jeweils ein bild von links un eins von rechts einfliegen lassen, die sich dann zum Titel des Spiels ergenzen.

also soll man sie zuallererst nicht sehen. ich möchte sie von außerhalb des bildschirmrands einfliegen lassen.

und zwar von x = -800 bis x = 20.

Das Bild das von links kommen soll habe ich mit #Titel1 und das andere mit #Titel2 nummeriert...

kann mir jemand den Code dafür schreiben biiiiitteeeeeeee?????
:cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry:

Verfasst: 20.09.2008 18:04
von Batze
Das können wir schon, aber dann lernst du nichts. :mrgreen:
Man kann Sprites auch außerhalb des Screens zeichnen, das ist kein Problem, dann sind sie nicht zu sehen.
Du musst eine Variable einsetzen die du nach und nach von -800 auf +20 erhöhst indem du zum beispiel in jeder schleife XPos+2 ausführst, bis XPos => 20 ist.

Verfasst: 20.09.2008 18:04
von tmjuk
Hallo,

also erst mal müsstest du schon noch ein wenig selbst probieren. Zwischen den Postings sind noch nicht mal 24h vergangen.
Quasi hast du noch nicht richtig selbst gelesen, gesucht und probiert. Aber du willst doch das Programmieren lernen, oder habe ich das falsch verstanden?

Also noch ein kleines bischen mehr Anstrengung deinerseits.

Hier findest du Hilfe, aber selten fertige Codes.


Torsten

Verfasst: 20.09.2008 18:06
von Kaeru Gaman
und das ist jetzt die stelle an der eigeninitiative gefragt ist.

du kennst die breite und die höhe deines screens.
die koordinate 0,0 ist die linke obere ecke.

du kennst die breite und höhe deines sprites.
die linke obere ecke wird an der koordinate angezeigt, die du per DisplaySprite übergibst. da kannst du auch negative zahlen angeben.

... und der rest ist einfachstes mathe, + und - muss man schon rechnen können.

Verfasst: 20.09.2008 18:11
von Link2Death
Mommentan sieht es bei mir so aus:

Code: Alles auswählen

InitSprite()
InitMouse()

Enumeration
#Titel1
#Titel2
#Cursor
EndEnumeration

OpenScreen(800, 600, 16, "Gunner X")

UsePNGImageDecoder() 

LoadSprite(#Cursor, "Sprites\Menu\cur.png")
LoadSprite(#Titel1, "Sprites\Menu\Titel1.png")
LoadSprite(#Titel2, "Sprites\Menu\Titel2.png")

Repeat

FlipBuffers()
ClearScreen(RGB(0, 0, 0))

ExamineMouse()
a = MouseX()
b = MouseY()
MouseButton(#PB_MouseButton_Left)

SpriteX = -800

DisplayTransparentSprite(#Titel1, SpriteX, 0)
SpriteX + Direction
If SpriteX > 20 : direction = -2 : EndIf
If SpriteX < 20 : direction = 0 : EndIf

DisplayTransparentSprite(#Cursor, MouseX(), MouseY())

Until MouseButton(#PB_MouseButton_Left)
Warum Bewegt sich das Bild nicht sobalt ein bisschen davon aus dem
draußen ist????? Bitte helft mir :praise: sonst: :bluescreen:

Verfasst: 20.09.2008 18:24
von Batze
Fast richtige Herangehensweise bei dir, nur falsch gerechnet.
Überleg mal was dein Programm macht mit der Variablen SpriteX und rechne es mal selber aus, dann siehst du schnell selber wo dein Fehler ist (was viel befriedigender ist als wenn es einem jemand sagt).

Verfasst: 20.09.2008 18:39
von Link2Death
Oh sorry..... da is nur n fehler von mir drinne.. ich habs vorher in die andere richtung probiert und hab dann vergessen den wert bei der bewegung
wieder umzudrehen^^ ich habe es in meinem script mit

Code: Alles auswählen

DisplayTransparentSprite(#Titel1, SpriteX, 0)
SpriteX + Direction
If SpriteX < 20 : direction = 2 : EndIf
If SpriteX > 20 : direction = 0 : EndIf

Verfasst: 20.09.2008 18:43
von Batze

Code: Alles auswählen

Repeat
[...]
SpriteX = -800
[...]
Until MouseButton(#PB_MouseButton_Left)
Wie oft wird es denn in deinem Programm auf den Startwert gesetzt? :wink:
Ansonsten sollte es jetzt funktionieren.
Allerdings würde ich dir raten

Code: Alles auswählen

If   SpriteX < 20 : direction = 2
else              : direction = 0
EndIf
zu verwenden, da SpriteX ja wohl kaum > 20 sein kann wenn es schon kleiner als 20 ist.