RotateSprite3D

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

RotateSprite3D

Beitrag von Green Snake »

hallo

habe eine frage. könnte jemand mir einen code geben, der ein bild lädt, (im vollbild wenn möglich) und das sich dan stetig um1 grad verschiebt.
also eine bewegung (animation), die sich immer wiederhohlt.

kurz:

ein sprite, dass sich dreht.

(habe schon in der helfe nachgeschaut, das gemacht was steht, doch es kam ein fehler)

ich währe sehr froh, wenn mir jemand einen code bzw ein beispiel, oder eine erklärung geben könnte.

gruss greensnake
-.-"
Benutzeravatar
MLK
Beiträge: 267
Registriert: 01.11.2004 13:17
Wohnort: Hamburg

Beitrag von MLK »

Code: Alles auswählen

If InitSprite() = 0 Or InitSprite3D() = 0 Or InitKeyboard() = 0 Or OpenScreen(800, 600, 16, "") = 0 : End : EndIf

Sprite3DTexture = CreateSprite(#PB_Any, 128, 128, #PB_Sprite_Texture)
If StartDrawing(SpriteOutput(Sprite3DTexture))
  Box(0,0, 128, 128, RGB(0, 0, 200))
Else :  End 
EndIf
Sprite3D = CreateSprite3D(#PB_Any, Sprite3DTexture)
If Sprite3D = 0 : End : EndIf

Repeat
  ClearScreen(255, 255, 255)
  ExamineKeyboard()
  
  Start3D()
    RotateSprite3D(Sprite3D, 1, 1) ;oder modus 0 (siehe hilfe)
    DisplaySprite3D(Sprite3D, 200, 200)
  Stop3D() 
    
  FlipBuffers()
  Delay(1)
Until KeyboardPushed(#PB_Key_Escape)
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Das meinte ich.... fast

Beitrag von Green Snake »

hallo

dein beispiel hat mir geholfen, jedoch weis ich immer noch nit, wie ich das mit einen sprite machen kann:
dh:
ich habe ein sprite im verzeichnis "DiesesBild.bmp"
jetzt möchte ich, das dieses bild rotiert
wie mache ich das bzw wie mus ich den code vrändern das es klappt?

ps

vielen dank für deine vorherige hilfe
-.-"
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag von 125 »

:D

Code: Alles auswählen

If InitSprite() = 0 Or InitSprite3D() = 0 Or InitKeyboard() = 0 Or OpenScreen(800, 600, 16, "") = 0 : End : EndIf 
UseJPEGImageDecoder()
Sprite3DTexture = LoadSprite(#PB_Any,"C:\Dokumente und Einstellungen\All Users\Dokumente\Eigene Bilder\Beispielbilder\Blaue Berge.jpg",#PB_Sprite_Texture) 
Sprite3D = CreateSprite3D(#PB_Any, Sprite3DTexture) 
If Sprite3D = 0 : End : EndIf 

Repeat 
  ClearScreen(255, 255, 255) 
  ExamineKeyboard() 
  
  Start3D() 
    RotateSprite3D(Sprite3D, 1, 1) ;oder modus 0 (siehe hilfe) 
    DisplaySprite3D(Sprite3D, 100, 100) 
  Stop3D() 
    
  FlipBuffers() 
  Delay(1) 
Until KeyboardPushed(#PB_Key_Escape)
scoopex
Beiträge: 9
Registriert: 03.04.2005 17:01
Kontaktdaten:

Beitrag von scoopex »

lol
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag von 125 »

scoopex hat geschrieben:lol
Sowas mag ich gar nicht...
Jeder war mal Anfänger....
Also HALT DEIN MAUL UND LACH HIER NIEMANDEN AUS. KAPIERT?
scoopex
Beiträge: 9
Registriert: 03.04.2005 17:01
Kontaktdaten:

Beitrag von scoopex »

...sorry, dachte mit 400 posts war der code nen joke

Code: Alles auswählen

LoadSprite(#PB_Any,"C:\Dokumente und Einstellungen\All Users\Dokumente\Eigene Bilder\Beispielbilder\Blaue Berge.jpg",#PB_Sprite_Texture)
-tu deine images in einen ordner oder dahin wo dein prog ist,
weil diesen pfad gibts nur auf deinem pc

-keine delays in einer schleife
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

scoopex hat geschrieben:...sorry, dachte mit 400 posts war der code nen joke

Code: Alles auswählen

LoadSprite(#PB_Any,"C:\Dokumente und Einstellungen\All Users\Dokumente\Eigene Bilder\Beispielbilder\Blaue Berge.jpg",#PB_Sprite_Texture)
-benutze keine pure-constanten als spritevariablen
-tu deine images in einen ordner oder dahin wo dein prog ist,
weil diesen pfad gibts nur auf deinem pc

-keine delays in einer schleife
1. schau in die help, wozu denn die #PB_Any-KOnstante überhaupt da ist.
an dieser stelle ist sie nötig.
2. dieses bild hat er gewählt, weil es auf allen rechnern mit XP vorhanden ist
3. ein Delay(1) in die schleife, damit du nicht die CPU auf Vollast fährst.
Zuletzt geändert von Kaeru Gaman am 03.04.2005 18:47, insgesamt 2-mal geändert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Keine Delays in einer schleife? Glaub du brennst. Jedenfalls brennt meine CPU danach o_O. Delays sind in schleifen schon ok, es seiden es sind game schleifen. Da sorgt FlibBuffers für den Delay.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

@MVXA

aber auch FlipBuffers() fährt die CPU auf Vollast...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten