Seite 1 von 2

Bild umdrehen

Verfasst: 15.07.2009 16:07
von macmark
Hi,
ich probier grad PB aus ... also bitte verzeiht mir die vielleicht dumme Frage! :-> Und zwar ist es ja recht einfach ein Bild zu drehen. Nun möchte ich aber ein Bild (in dem Fall speziell eine Spielkarte) umdrehen! Also erst soll die Rückseite sichtbar sein und dann soll sich die Kartenseite umdrehen/aufdecken.
Geht das schon in Richtung 3D Programmierung?? Ist das mit PB möglich?? Hat einer dazu evtl ein kleines Beispiel wie man sowas anfängt/macht???
Schönen Dank für eure Infos/Hilfe!
Gruss
Markus

Verfasst: 15.07.2009 16:55
von gnasen
genau soetwas habe ich ebengfalls einmal benötigt und dank Stargate auch umsetzen können. Das ganze funktioniert mit TransformSprite3d() ganz wunderbar, die Karte wird gehoben und perspektivisch (gibt es das Wort!?) gedreht. Also keine Platte "draufsicht".

Wenn ich zuhause bin könnte ich dir den Code zukommen lassen.

Verfasst: 15.07.2009 16:57
von STARGÅTE
3D speziell nicht ...

es reicht dort ein Einfaches Sprite3D
- Einmal die Vorderseite
- einmal die Rückseite

Beim Drehvorgang zeigst du halt zuerst die Rückseite voll und dnan zerrst du die Karte immer kleiner bis Null, und dann zeigst du die vorderseite und zerrst die von 0 bis voll.

Mit: ZoomSprite3D(Sprite3D, Width, Height)

EDIT: hier ein Beispiel:

Code: Alles auswählen

InitSprite()
InitSprite3D()
InitKeyboard() 

OpenWindow(0, 0, 0, 800, 600, "SCREEN", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, 800, 600, 0, 0, 0)
 
 CreateSprite(1,100,300,#PB_Sprite_Texture)
 StartDrawing(SpriteOutput(1))
  Box(0,0,100,300,$F0A000)
  DrawText(0,0,"Laber Laber")
 StopDrawing()
 CreateSprite3D(1,1)
 
 CreateSprite(2,100,300,#PB_Sprite_Texture)
 StartDrawing(SpriteOutput(2))
  Box(0,0,100,300,$00A0F0)
  DrawText(0,0,"Blub Blub")
 StopDrawing()
 CreateSprite3D(2,2)
Repeat

 WindowEvent()

 ClearScreen(0)

 Dreh.f + 0.05
 
 Start3D()
 
  ZoomSprite3D(1, Cos(Dreh)*100, 300)
  DisplaySprite3D(1, 200-Cos(Dreh)*50, 100)
  ZoomSprite3D(2, -Cos(Dreh)*100, 300)
  DisplaySprite3D(2, 200+Cos(Dreh)*50, 100)
 
 Stop3D()
 
 FlipBuffers()

 ExamineKeyboard()
 If KeyboardPushed(#PB_Key_Escape) : End : EndIf

ForEver

Verfasst: 15.07.2009 17:11
von macmark
Hi,
wow... Danke für die Antwort. Ist ja echt einfach! Und ich brech mir mit c# seit Tagen sonstwas ab. Werd dann morgen mal das PB bestellen!
Gruss
Markus

Verfasst: 15.07.2009 17:18
von STARGÅTE
jo es ist halt die "einfachste" Art, etwas so zu drehen, da gibs aber noch viele verbesserungen, bis hin zum echten 3D , was bei einem einfachen Kartenspiel vllt zu viel wäre

Verfasst: 15.07.2009 17:44
von Kiffi
Hallo Markus,
macmark hat geschrieben:Werd dann morgen mal das PB bestellen!
bitte vorher das hier lesen: PureBasic bestellen - Vollversion & Upgrade

Grüße & Willkommen ... Kiffi

Verfasst: 15.07.2009 20:57
von Vera
Hi Markus,

Willkommen onBoard :)
und danke, dass Du diese Frage gestellt hast.

wenn'ste noch 3 EURs über hast, dann wünsch' Dir doch auch die CD ~
kann' ich echt empfehlen

Gruß ~ Vera

Verfasst: 15.07.2009 22:39
von macmark
gnasen hat geschrieben:genau soetwas habe ich ebengfalls einmal benötigt und dank Stargate auch umsetzen können. Das ganze funktioniert mit TransformSprite3d() ganz wunderbar, die Karte wird gehoben und perspektivisch (gibt es das Wort!?) gedreht. Also keine Platte "draufsicht".

Wenn ich zuhause bin könnte ich dir den Code zukommen lassen.
Hi... wär klasse wenn du mir den Code zukommen lassen könntest... hört sich gut an!
Gruss
Markus

Verfasst: 15.07.2009 22:41
von macmark
Vera hat geschrieben:Hi Markus,

Willkommen onBoard :)
und danke, dass Du diese Frage gestellt hast.

wenn'ste noch 3 EURs über hast, dann wünsch' Dir doch auch die CD ~
kann' ich echt empfehlen

Gruß ~ Vera
...Danke! Mal schauen... kann so schlecht warten!! /:->
Gruss
Markus

Verfasst: 15.07.2009 23:04
von Vera
macmark hat geschrieben:...Danke! Mal schauen... kann so schlecht warten!! /:->
wie's beliebt - doch den Zugang zum Download der Vollversionen kriegst Du bei elektronischer Überweisung innerhalb von Stunden und unabhängig davon, würde die 'Hardware' gemütlich mit der Post geschneckt.

:) ~ Vera