Einsteiger Schwierigkeiten...

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
kswb73
Beiträge: 319
Registriert: 04.02.2008 16:51
Kontaktdaten:

Beitrag 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).
Windows XP: PB 4.31, PB 4.4, PB 4.51
Open Suse 11.2: PB 4.4
Link2Death

Beitrag von Link2Death »

Ah cool ok! Danke sher ihr seid mir alle echt ne riesen hilfe :allright: :allright: :allright:
Link2Death

Beitrag 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:
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag 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.
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
tmjuk
Beiträge: 380
Registriert: 30.06.2006 00:10
Wohnort: Backaryd, Schweden

Beitrag 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
PB 4.51 32 Windows Vista, 32 XP, PB 4.51 32 Ubuntu 10.10
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Link2Death

Beitrag 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:
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag 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).
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Link2Death

Beitrag 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
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag 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.
Zuletzt geändert von Batze am 20.09.2008 18:47, insgesamt 5-mal geändert.
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Antworten