Bild umdrehen

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
macmark
Beiträge: 49
Registriert: 15.07.2009 16:00
Wohnort: Köln

Bild umdrehen

Beitrag 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
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Beitrag 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.
pb 4.51
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag 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
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
macmark
Beiträge: 49
Registriert: 15.07.2009 16:00
Wohnort: Köln

Beitrag 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
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag 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
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Kiffi
Beiträge: 10715
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Benutzeravatar
Vera
Beiträge: 928
Registriert: 18.03.2009 14:47
Computerausstattung: Win XP SP2, Suse 11.1
Wohnort: Essen

Beitrag 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
macmark
Beiträge: 49
Registriert: 15.07.2009 16:00
Wohnort: Köln

Beitrag 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
macmark
Beiträge: 49
Registriert: 15.07.2009 16:00
Wohnort: Köln

Beitrag 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
Benutzeravatar
Vera
Beiträge: 928
Registriert: 18.03.2009 14:47
Computerausstattung: Win XP SP2, Suse 11.1
Wohnort: Essen

Beitrag 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
Antworten