Seite 1 von 1

Suche Hilfestellung zur 2D-Grafikprogrammierung eines Spiels

Verfasst: 01.01.2006 22:47
von Ghosty
Hallo Leute...

Ich habe da eine Idee für ein Spiel und weiß auch schon, wie ich es anpacken
will. Einige kleinere Versuche stehen schon, aber irgendwie komme ich nicht weiter, was die Programmierung der Hintergrundgrafik, Scoreanzeige usw.
angeht. Also suche ich jemanden, der Interesse hätte dieses Spiel mit mir zusammen in PB umzusetzen.
Die Grafiken, das Konzept und das Gameplay stehen schon.

Wer Erfahrung und Interesse hat meldet sich bitte bei ghosty@sfoerster.com, dann kann ich euch mal zuschicken, was ich schon habe !

thx...

Verfasst: 01.01.2006 23:27
von roherter
Hi hier habe zwar noch kein spiel geschrieben
aber kenne mich ganz gut in pb aus,ich habe bereits ein programm geschrieben,zwei weitere sind in arbeit!
Was bereitet dir Probleme?
Was möchtest du für ein spiel entwickeln?

Verfasst: 02.01.2006 06:10
von Ghosty
Was mir Kopfzerbrechen bereitet, ist
Ich habe einen Spielfeldhintergrund, welcher statisch ist.
Auf diesem Hintergrund wird das Spielfeld aus zweifarbigen Steinen aufgebaut. (Spielfeldgröße = 20x20 Steine)

Frage1: Muß man den Hintergrund des Spielfeldes wirklich jedesmal neu zeichen, wenn man einen neues feld setzt ?!
Im moment setze ich einen stein, flippe und grabbe das bild... das muß doch auch einfacher gehen !

Greetz... Ghosty

Verfasst: 02.01.2006 10:59
von Green Snake
du kannst auch alles in einem durchlauf machen :wink:
also

Code: Alles auswählen

DisplayDeineMap() ;Hintergrund
DisplayALLEDeineSteine() ;Felder
FlipBuffers()

Verfasst: 02.01.2006 16:07
von roherter

Code: Alles auswählen

Structure SpielSprites
  Anzahl.l
  weit.l
  breit.l
  name.s
EndStructure
Dim spiel.SpielSprites(1)
spiel(0)\Anzahl=20
spiel(0)\weit=20
spiel(0)\breit=20
spiel(0)\name="rot.jpg"
spiel(1)\Anzahl=20
spiel(1)\weit=20
spiel(1)\breit=20
spiel(1)\name="blau.jpg"
InitSprite()
InitKeyboard()


Ergebnis = OpenScreen(1024,768, 32,"")
For a=0 To spiel(0)\Anzahl
  CreateSprite(100+a,20,20)
  StartDrawing(SpriteOutput(100+a))
  Box(0,0,20,20,RGB(232,0,0))
  Debug a
  StopDrawing()
Next a
For a=20 To 20+spiel(1)\Anzahl-1

  CreateSprite(100+a,20,20)
  StartDrawing(SpriteOutput(100+a))
  Box(0,0,20,20,RGB(43,57,248))
  Debug a
  StopDrawing()
Next a
x=0
y=100
Repeat
  FlipBuffers()
  ClearScreen(100,100,100)
  
  For s=0 To 39
  ExamineKeyboard()
    y=y+21
    DisplaySprite(100+s,y,100)
    DisplaySprite(100+s,y,121)
    DisplaySprite(100+s,y,142)
    DisplaySprite(100+s,y,163)
    DisplaySprite(100+s,y,184)
  Next s
  y=100
  ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)   
End
sowas vileicht?

Verfasst: 02.01.2006 18:14
von roherter
Hat es dir weitergeholfen??

Verfasst: 02.01.2006 19:33
von roherter

Code: Alles auswählen

Structure SpielSprites
  Anzahl.l
  weit.l
  breit.l
  name.s
EndStructure
Dim spiel.SpielSprites(2)
spiel(0)\Anzahl=20
spiel(0)\weit=20
spiel(0)\breit=20

spiel(1)\Anzahl=20
spiel(1)\weit=20
spiel(1)\breit=20

spiel(2)\Anzahl=1
spiel(2)\weit=20
spiel(2)\breit=80
InitSprite()
InitKeyboard()


Ergebnis = OpenScreen(1024,768, 32,"")
For a=0 To spiel(0)\Anzahl
  CreateSprite(100+a,spiel(0)\breit,spiel(0)\weit)
  StartDrawing(SpriteOutput(100+a))
  Box(0,0,20,20,RGB(232,0,0))
  Debug a
  StopDrawing()
Next a
For a=20 To 20+spiel(1)\Anzahl-1
  CreateSprite(100+a,spiel(1)\breit,spiel(1)\weit)
  StartDrawing(SpriteOutput(100+a))
  Box(0,0,20,20,RGB(43,57,248))
  Debug a
  StopDrawing()
Next a
CreateSprite(150,spiel(2)\breit,spiel(2)\weit)
StartDrawing(SpriteOutput(150))
Box(0,0,spiel(2)\breit,spiel(2)\weit,RGB(43,157,248))
DrawingMode(4)
Box(0,0,spiel(2)\breit,spiel(2)\weit,RGB(0,0,0))
StopDrawing()
x=0
y=80
pos=(1024/2)-((spiel(2)\breit)/2)
Repeat
  FlipBuffers()
  ClearScreen(100,100,100)
  
  For s=0 To 39
  ExamineKeyboard()
    y=y+21
    DisplaySprite(100+s,y,100)
    DisplaySprite(100+s,y,121)
    DisplaySprite(100+s,y,142)
    DisplaySprite(100+s,y,163)
    DisplaySprite(100+s,y,184)
  Next s
  If KeyboardPushed(#PB_Key_Left)
    If pos>0
    pos=pos-3
  Else
  EndIf 
ElseIf KeyboardPushed(#PB_Key_Right)
  If pos<1024-spiel(2)\breit
    pos=pos+3
  Else
  EndIf 
  EndIf 
  DisplaySprite(150,pos,700)
  y=80
  ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)   
End 
Nochmal ein bischen verbessert und erweitert!

Verfasst: 02.01.2006 19:45
von DarkDragon
Es gibt auch einen "Edit"-Knopf ;) .

Verfasst: 02.01.2006 20:11
von roherter
ach ne,brauchst es ja nicht zu lesen!
edit: aber schwamm drüber ich weiß was du meinst,Ich werde es beherzigen!