Einfache Animation
- Green Snake
- Beiträge: 1394
- Registriert: 22.02.2005 19:08
Einfache Animation
Hallo
habe eine einfache frage, die ich gerne beantwortet haben möchte:
ich habe zb ein bild von einem raumschiff `(2D)
jetz will ich, das das raumschiff auf dem vollbildmodus von rechts nach links quasi animiert wird.
ausserdim, sollte es, wenn es über den rechten bildschirmrand
(ich verwende 1024*768)
snimiert wurde, dass dann das raumschiff auf der linken bildschirmseite wieder herauskommt, und die animation wiederholt wird, bis ich
ESCAPE drücke.
dabei sollte das raumschiff auf der linken seite in einer zufallshöhe sein
DH. einmal ist das Y villeicht 500, dann 150 usw
ich hoffe ihr könnt mir helfen
gruss atomkern
habe eine einfache frage, die ich gerne beantwortet haben möchte:
ich habe zb ein bild von einem raumschiff `(2D)
jetz will ich, das das raumschiff auf dem vollbildmodus von rechts nach links quasi animiert wird.
ausserdim, sollte es, wenn es über den rechten bildschirmrand
(ich verwende 1024*768)
snimiert wurde, dass dann das raumschiff auf der linken bildschirmseite wieder herauskommt, und die animation wiederholt wird, bis ich
ESCAPE drücke.
dabei sollte das raumschiff auf der linken seite in einer zufallshöhe sein
DH. einmal ist das Y villeicht 500, dann 150 usw
ich hoffe ihr könnt mir helfen
gruss atomkern
-.-"
Hi
Der Code könnte vieleicht so aussehen
musst hald ausprobieren. Ich weiß nicht ob das bei Version 3.3 Funktioniert.
Der Code könnte vieleicht so aussehen
Code: Alles auswählen
InitSprite()
initKeyboard()
OpenScreen(1024,768,32,"Vollbild")
LoadSprite(0,"Pfad\Sprite.bmp",0)
Schiffy = Random(718) ;768 - Spritehöhe
Schiffx = 1074 ;1024 + Spritebreite
Repeat
ExamineKeyboard()
ClearScreen(0,0,0)
If Schiffx < -50 ;SpriteBreite
Schiffx = 1074 ;1024 + Spritebreite
Schiffy = Random(718) ;768 - Spritehöhe
Else
Schiffx - 5 ;Geschwindigkeit
EndIf
DisplayTransparentSprite(0,Schiffx,Schiffy)
FlipBuffers()
Until KeyboardPushed(#pb_key_escape)
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
zur begriffsklärung
meinst du jetzt Bewegung oder Animation?
du schreibst zwar 'quasi animiert', aber eigentlich sprichst du von einer einfachen bewegung.
als animation bezeichnet man eher eine bewegung im sprite selber,
z.b. eine drehung des raumschiffs um die länsachse,
das wird normalerweise durch eine wechselweise darstellung
verschiedener sprites gelöst.
das prinzip der einfachen bewegung wirdst du immer brauchen.
der code von zigapeda ist da schon ein gutes beispiel.
es geht eben darum, für die spritekoordinaten variablen einzusetzen statt
absoluten zahlen, und diese variablen in den schleifendurchläufen zu verändern.
meinst du jetzt Bewegung oder Animation?
du schreibst zwar 'quasi animiert', aber eigentlich sprichst du von einer einfachen bewegung.
als animation bezeichnet man eher eine bewegung im sprite selber,
z.b. eine drehung des raumschiffs um die länsachse,
das wird normalerweise durch eine wechselweise darstellung
verschiedener sprites gelöst.
das prinzip der einfachen bewegung wirdst du immer brauchen.
der code von zigapeda ist da schon ein gutes beispiel.
es geht eben darum, für die spritekoordinaten variablen einzusetzen statt
absoluten zahlen, und diese variablen in den schleifendurchläufen zu verändern.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- Green Snake
- Beiträge: 1394
- Registriert: 22.02.2005 19:08
Anders Rum
hallo
jetzt geht das bild ja von links nach rechts, was aber mus ich machen das es von rechts nach links geht?
habe schon diverse sachen probiert, jedoch ist das bild dann gar nicht mehr zu sehen
jetzt geht das bild ja von links nach rechts, was aber mus ich machen das es von rechts nach links geht?
habe schon diverse sachen probiert, jedoch ist das bild dann gar nicht mehr zu sehen
-.-"
Oh Sry hab garnicht mitgedacht:
Du musst hald die Bewegungsrichtung, die Startposition und die Position wenn es über den Bildschirmrand hinausgeht ändern außerdem musst du den eingang der Auswahl ändern.
Code: Alles auswählen
InitSprite()
initKeyboard()
OpenScreen(1024,768,32,"Vollbild")
LoadSprite(0,"Pfad\Sprite.bmp",0)
Schiffy = Random(718) ;768 - Spritehöhe
Schiffx = -50 ;0 - Spritebreite
Repeat
ExamineKeyboard()
ClearScreen(0,0,0)
If Schiffx < 1074 ;1024 + Spritebreite
Schiffx = -50 ;0 - Spritebreite
Schiffy = Random(718) ;768 - Spritehöhe
Else
Schiffx + 5 ;Geschwindigkeit
EndIf
DisplayTransparentSprite(0,Schiffx,Schiffy)
FlipBuffers()
Until KeyboardPushed(#pb_key_escape)
anfänger hin oder her, dass ist simple mathematik... plus und minus. du könntest es wenigstens versuchen selber irgendwie zu machen.
edit: arghs zigapeda jetzt hab ich so lang rumgetrödelt dass schon fast 10min. vergangen sind. das passiert wenn man nicht ganz so bei der sache ist und nebenher beschäftigt ist. ^^
c ya,
nco2k
Code: Alles auswählen
#ScrWidth = 1024
#ScrHeight = 768
#ScrDepth = 32
If InitSprite() = 0 Or InitKeyboard() = 0 Or OpenScreen(#ScrWidth, #ScrHeight, #ScrDepth, "") = 0 Or LoadSprite(0, "C:\test.bmp", 0) = 0
End
EndIf
SprWidth = SpriteWidth(0)
SprHeight = SpriteHeight(0)
Repeat
ClearScreen(0, 0, 0)
If SprX = #ScrWidth + SprWidth
SprX = 0 - SprWidth
SprY = Random(#ScrHeight - SprHeight)
Else
SprX + 4
EndIf
DisplaySprite(0, SprX, SprY)
FlipBuffers()
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape) : End
c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Green Snake hat geschrieben:jetzt geht das bild ja von links nach rechts, was aber mus ich machen das es von rechts nach links geht?
umgekehrt... oder....?
du musst dir erstmal grundsätzlich über das konzept von bildschirm-koordinaten klarwerden.
ausserdem solltest du verstehen, was ein screen ist.
leider ersehe ich aus deinen posts zwar, das du grundwissen benötigst,
aber ich kann nicht erkennen, was du schon weisst.
---------------------------------------------------------------------
nco2k hat geschrieben:anfänger hin oder her, dass ist simple mathematik... plus und minus. du könntest es wenigstens versuchen selber irgendwie zu machen.
er scheint es ja wohl mit + statt - ausprobiert zu haben, ohne allerdingsGreen Snake hat geschrieben:habe schon diverse sachen probiert, jedoch ist das bild dann gar nicht mehr zu sehen
die startkoordinaten zu verändern.
ich denke, Green Snake braucht erstmal grundsätzliche erklärungen,
posten von unkommentierten codesnippets halte ich da für wenig sinnvoll.
@Green Snake:
beschreibe doch erstmal, was du schon weisst, und wie du dir die sache vorstellst,
damit ich weiss, was für infos du benötigst.
evtl. wäre ein chat hier auch angebrachter
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- Rubiko
- Beiträge: 943
- Registriert: 25.02.2005 19:43
- Computerausstattung: Intel i7 2600k
8GB Ram
GeForce GTX 560 Ti - Wohnort: Schwabach
green snake:
also wie kaeru schon sagte, falls du überhaupt kein grundwissen hast schau dir mal das an
http://www.purebasic.de/files/PB_Tutorium1.exe
das beschäftigt sich mit vielen grundlagen und da werden auch 2 spiele gemacht, beim 1 z.B gehts auch um koordinaten
PS: der autor macht auch einen fehler und globalisiert jede variable was aber nur für strukturen notwendig ist
aber schlimmeres auch nicht
Rubiko
also wie kaeru schon sagte, falls du überhaupt kein grundwissen hast schau dir mal das an
http://www.purebasic.de/files/PB_Tutorium1.exe
das beschäftigt sich mit vielen grundlagen und da werden auch 2 spiele gemacht, beim 1 z.B gehts auch um koordinaten
PS: der autor macht auch einen fehler und globalisiert jede variable was aber nur für strukturen notwendig ist
aber schlimmeres auch nicht
Rubiko
Ich wollte die Welt verändern, doch Gott gab mir nicht den Quelltext.