Kollegen für Zusammenarbeit gesucht

Du brauchst Grafiken, gute Programme oder Leute die dir helfen? Frag hier.
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Kollegen für Zusammenarbeit gesucht

Beitrag von Vermilion »

Ich hoffe, ich poste endlich mal in das richtige Forum...

Ich suche jemanden, der mit mir zusammenarbeiten will. Unzwar in der Sache *Überraschung* "Plankton"! Ich hatte ja in einem anderen Thread gesagt, ich schau mir dann mal die Strukturen an und so war es: Ich kam, sah und verlor. Ich steige da nicht durch! Es hatte sich sogar schon jemand geäußert, dass er interessiert wäre das zu programmieren, nur wer...

Naja, damit das klar ist: ich will keinen anderen dien Drecksarbeit machen lassen, denn da ich ihm dann nur den Source Code geben würde und das einzige was er machen müsste ist, den Code für Gegner hinzuzufügen, woraus ich dann lernen könnte (Waponez II war einfach schwer zu durchsteigen) und er dann nach der erfolgreichen Zusammenarbeit mit dem fertigen Programm machen könnte was er will, oder was man da auch immer macht, kann man das ja nicht als Drecksarbeit ansehen oder? Naja, das steht jetzt zumindest nicht zur Debatte. :) Also, wer Lust hat ein kleines bisschen zu programmieren, dürfte nicht schwer sein, soll sich mal melden, ich lass das hier 3 Tage hier stehen.
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Benutzeravatar
#NULL
Beiträge: 2219
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

also ohne verpflichtungen schau ich gern mal in den code, aber wenn er zu schlimm sein sollte [weiß ja nich'] macht's halt weniger spaß sich nur darum zu kümmern, es irgendwie ins vorhandene programm zu integrieren.

<edit:> du müßtes jetzt schon eigies an PN's von mir haben, hast mir ja nur den code geschickt. ich mußte mir selber bilder malen :freak: so hast du jetzt auch den code zurückbekommen. aber es müßte mit deinen bildern genauso geh'n. bis jetzt keine kollisions prüfung oder score-zählung, wenn ich die auch noch selber mache, ist das programm nicht mehr deins...
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

? Ich hatte schon den Verdacht, dass das mit den PN's nicht richtig funktioniert, deswegen schaue ich hier mal rein. Also, ich habe dir den Code geschickt! :shock: Nicht angekommen? Ich habe auch keine Nachrichten von anderen bekommen... ...ich glaube, dass mit den PN's funktioniert bei mir nicht mehr!
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Benutzeravatar
#NULL
Beiträge: 2219
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

da weder email noch PN zu funkt. scheint post ich es halt mal hier

Code: Alles auswählen

;###################################################################################################
;# keyboard-handling geändert
;# variablen hinzugefügt
;# structure enemyS definiert und LinkedList davon erstellt (die liste mit den gengnern, sowohl gute als auch bööööse)
;# and some other sruff...
;###################################################################################################


Global Gamestate = 0
Global ScreenWidth = 1280
Global ScreenHeight = 1024
Global Highscore = 0
Global Score = 0
Global PlayerX = ScreenWidth/2-32
Global PlayerY = ScreenHeight/2-32
Global PlayerLook = 5
Global PlayerLookLeft = 5
Global PlayerLookRight = 6
Global EnemyX = Random(ScreenWidth-32)
Global EnemyY = Random(ScreenHeight-32)
Global BlubX = 50
Global BlubY = ScreenHeight
Global BlaseYa = ScreenHeight
Global BlaseYb = ScreenHeight+Random(ScreenHeight)
Global BlaseYc = ScreenHeight+Random(ScreenHeight)
Global BlaseXa = Random(ScreenWidth-18)
Global BlaseXb = Random(ScreenWidth-18)
Global BlaseXc = Random(ScreenWidth-18)


;#################################################### neuer stuff
Global speed.l=8
Global YumW.l
Global YumH.l
Global goodW.l
Global goodH.l
Global badW.l
Global badH.l
Global goodLook.l
Global badLook.l
Global enemyMax.l

Structure enemyS
  type.l ; 1=good, 0=bad
  x.l ; x-position
  y.l ; y-position
  alpha.l ; bewegunswinkel
  counter.l ; so ne art alter, wird nur für die schwingung benötigt
EndStructure
Global NewList enemies.enemyS() ;    <<<<< hier wird die liste mit den gegnern erstellt, jeder gegner hat also eine x,y,typ,alpha,counter ect..die liste ist nun aber voresrt leer und wird im spielverlauf mit addelement gefüllt.
;##########################################################


If InitSound() = 0
  MessageRequester("Initialisation Error", "Cannot initialize DirectSound! The Game will now exit.")
  End
EndIf

If InitKeyboard() = 0
  MessageRequester("Initialisation Error", "Cannot initialize DirectInput! The Game will now exit.")
  End
EndIf

If InitSprite() = 0
  MessageRequester("Initialisation Error", "Cannot initialize DirectDraw! The Game will now exit.")
  End
EndIf

If UsePNGImageDecoder() = 0
  MessageRequester("Initialisation Error", "Cannot initialize PNG Image Decoder! The Game will now exit.")
  End
EndIf

If OpenScreen(ScreenWidth, ScreenHeight, 32, "Plankton") = 0
  MessageRequester("Initialisation Error", "Cannot open Screen! The Game will now exit.")
  End
EndIf


CatchSprite(1, ?Include1)
CatchSprite(2, ?Include2) :goodW=SpriteWidth(2) : goodH=SpriteHeight(2)
CatchSprite(3, ?Include3)
CatchSprite(4, ?Include4)
CatchSprite(5, ?Include5)
CatchSprite(6, ?Include6) :YumW=SpriteWidth(6) : YumH=SpriteHeight(6)
CatchSprite(7, ?Include7)
CatchSprite(8, ?Include8) :badW=SpriteWidth(8) : badH=SpriteHeight(8)
CatchSprite(9, ?Include9)
CatchSprite(12, ?Include12)
CatchSprite(13, ?Include13)

DataSection
Include1: IncludeBinary "Plankton_LEFT.png"
Include2: IncludeBinary "Plankton_RIGHT.png"
Include3: IncludeBinary "Titel.png"
Include4: IncludeBinary "Ende.png"
Include5: IncludeBinary "YumYum_LEFT.png"
Include6: IncludeBinary "YumYum_RIGHT.png"
Include7: IncludeBinary "BadPlankton_LEFT.png"
Include8: IncludeBinary "BadPlankton_RIGHT.png"
Include9: IncludeBinary "Blub.png"
Include12: IncludeBinary "Alge.png"
Include13: IncludeBinary "Blase.png"
EndDataSection

LoadFont(0, "Comic Sans MS", 8, #PB_Font_HighQuality)
LoadFont(1, "Comic Sans MS", 8, #PB_Font_HighQuality | #PB_Font_Bold)

Repeat
  FlipBuffers()
  ClearScreen(RGB(90, 150, 255))
  ExamineKeyboard()
  DisplaySprite(12, ScreenWidth-132, ScreenHeight-514)
 
  Select Gamestate
 
    Case 0
   
      DisplayTransparentSprite(9, 50, BlubY)
      DisplayTransparentSprite(3, ScreenWidth/2-128, ScreenHeight/2-64)
     
      StartDrawing(ScreenOutput())
        DrawingMode(1) : DrawingFont(FontID(1))
          DrawText(ScreenWidth/2-TextWidth("Um zu spielen, drücke 'Return'!")/2, ScreenHeight/2+64, "Um zu spielen, drücke Enter!", RGB(255, 255, 255))
          DrawText(ScreenWidth/2-TextWidth("Hilfe:")/2, ScreenHeight/2+90, "Hilfe:", RGB(255, 255, 255))
        DrawingFont(FontID(0))
          DrawText(ScreenWidth/2-TextWidth("Du steuerst 'YumYum' einfach mit den Pfeiltasten.")/2, ScreenHeight/2+105, "Du steuerst 'YumYum' einfach mit den Pfeiltasten.", RGB(255, 255, 255))
        DrawingFont(FontID(1))
          DrawText(ScreenWidth/2-TextWidth("Ziel:")/2, ScreenHeight/2+120, "Ziel:", RGB(255, 255, 255))
        DrawingFont(FontID(0))
          DrawText(ScreenWidth/2-TextWidth("Ist es, so viele 'Leckers' wie möglich zu machen indem man durch berühren die anderen Planktons auffrisst.")/2, ScreenHeight/2+135,"Ist es, so viele 'Leckers' wie möglich zu machen indem man durch berühren die anderen Planktons auffrisst.", RGB(255, 255, 255))
        DrawingFont(FontID(1))
          DrawText(ScreenWidth/2-TextWidth("Tip:")/2, ScreenHeight/2+150, "Tip:", RGB(255, 255, 255))
        DrawingFont(FontID(0))
          DrawText(ScreenWidth/2-TextWidth("Halte dich von den schlecht gelaunten Planktons fern, die bekommen dir nicht...")/2, ScreenHeight/2+165, "Halte dich von den schlecht gelaunten Planktons fern, die bekommen dir nicht...", RGB(255, 255, 255))
          DrawText(5, ScreenHeight-20, "Plankton Version 1.0.0.0 Copyright 2006 by Peter 'the Nameless' Horn", RGB(200, 200, 200))
      StopDrawing()
     
      If KeyboardPushed(#PB_Key_Return)
        StartTime = ElapsedMilliseconds()
        Gamestate = 1
      EndIf
     
      BlubY = BlubY-1
     
      If BlubY = -ScreenHeight/2
        BlubY = ScreenHeight
      EndIf
      generalCounter=0 ;<<<<<<<<<<<<<<<<<<< counter zurücksetzen
     
    Case 1
      generalCounter+1
      
      NewTime = ElapsedMilliseconds()
      ElapsedTime = NewTime-StartTime
      RemainingTime = 60000-ElapsedTime
     
      If RemainingTime = 0 Or RemainingTime < 0
        Gamestate = 2
      ElseIf RemainingTime > 10001
        RedLevel = 255
      ElseIf RemainingTime < 10001
        RedLevel = 0
      EndIf
      
      ;############################################################################ YumYum-moves - die abfragen wo das AND mit drin is müssen zuerst kommen! damit sie überhaupt bearbeitet werden. (hab's jetzt richtig rum gemacht)
      If KeyboardPushed(#PB_Key_Left) And KeyboardPushed(#PB_Key_Up)
        PlayerX = PlayerX-speed/2
        PlayerY = PlayerY-speed/2
      ElseIf KeyboardPushed(#PB_Key_Right) And KeyboardPushed(#PB_Key_Up)
        PlayerX = PlayerX+speed/2
        PlayerY = PlayerY-speed/2
      ElseIf KeyboardPushed(#PB_Key_Right) And KeyboardPushed(#PB_Key_Down)
        PlayerX = PlayerX+speed/2
        PlayerY = PlayerY+speed/2
      ElseIf KeyboardPushed(#PB_Key_Left) And KeyboardPushed(#PB_Key_Down)
        PlayerX = PlayerX-speed/2
        PlayerY = PlayerY+speed/2
      ElseIf KeyboardPushed(#PB_Key_Left)
        PlayerLook = PlayerLookLeft
        PlayerX = PlayerX-speed
      ElseIf KeyboardPushed(#PB_Key_Right)
        PlayerLook = PlayerLookRight
        PlayerX = PlayerX+speed
      ElseIf KeyboardPushed(#PB_Key_Up)
        PlayerY = PlayerY-speed
      ElseIf KeyboardPushed(#PB_Key_Down)
        PlayerY = PlayerY+speed
      EndIf
      
      PlayerX+Random(3)-1
      PlayerY+Random(3)-1


      If PlayerX<0 : PlayerX=0
      ElseIf PlayerX>ScreenWidth-YumW  : PlayerX=ScreenWidth-YumW  : EndIf
      If PlayerY<0 : PlayerY=0
      ElseIf PlayerY>ScreenHeight-YumH : PlayerY=ScreenHeight-YumH : EndIf
      
      
      ;##### dieser kleine teil ist nur dazu da, damit nicht alle gegner auf einmal wie eine wand kommen und dann lange nichts, sondern nacheinander/gleichmäßig
      If ElapsedTime < 10000
        enemyMax=ElapsedTime/800
      EndIf
      
      ;########################################################## neue gegner hinzufügen, falls nötig
      If CountList( enemies() ) < enemyMax
        AddElement( enemies() )
        Select Random(1)                   ;# der neue gegner wird hinter einer der bildschirmgrenzen platziert
          Case 0
            enemies()\x=-200
            enemies()\y=Random(ScreenHeight)
            enemies()\alpha=50-Random(100)
          Case 1
            enemies()\x=ScreenWidth+200
            enemies()\y=Random(ScreenHeight)
            enemies()\alpha=230-Random(100)
;      ;#falls gegner auch noch von oben kommen/unten sollen, muß du Random(3) nehmen und hier die zusätzlichen seiten bearbeiten
;           Case 2
;             enemies()\x=Random(ScreenWidth)
;             enemies()\y=-200
;           Case 3
;             enemies()\x=Random(ScreenWidth)
;             enemies()\y=ScreenHeight+200
        EndSelect
        enemies()\type=Random(1) ; ob gut oder böse
      EndIf
      
      
      ;########################################################## koordinaten aktualisieren
      ForEach enemies()
        enemies()\counter+1
        
        a.d=enemies()\alpha*#PI/180
        a+Sin( enemies()\counter/6 )
        enemies()\x +Cos(a)*4
        enemies()\y +Sin(a)*4
        
        
        If enemies()\x<-300: DeleteElement( enemies() )
        ElseIf enemies()\x>ScreenWidth+300: DeleteElement( enemies() )
        ElseIf enemies()\y<-300: DeleteElement( enemies() )
        ElseIf enemies()\y>ScreenHeight+300: DeleteElement( enemies() )
        EndIf
      Next      

      DisplayTransparentSprite(13, BlaseXa, BlaseYa)
      DisplayTransparentSprite(13, BlaseXb, BlaseYb)
      DisplayTransparentSprite(13, BlaseXc, BlaseYc)
 
      ;Gosub DisplayAliens; <- das brauchst du doch nicht mehr, oder?


      ;############################################################################ display enemies 
      ForEach enemies()
        If enemies()\type;good
          If enemies()\alpha>90 Or enemies()\alpha<-90 ;looking right
            DisplayTransparentSprite( 1, enemies()\x, enemies()\y )
          Else;looking left
            DisplayTransparentSprite( 2, enemies()\x, enemies()\y )
          EndIf
        Else;bad
          If enemies()\alpha>90 Or enemies()\alpha<-90
            DisplayTransparentSprite( 7, enemies()\x, enemies()\y )
          Else
            DisplayTransparentSprite( 8, enemies()\x, enemies()\y )
          EndIf
        EndIf
      Next
      ;#####################################################################
      
      
      
      
      
 
      DisplayTransparentSprite(PlayerLook, PlayerX, PlayerY)
     
      StartDrawing(ScreenOutput())
        DrawingMode(1) : DrawingFont(FontID(1))
          DrawText(3, 3, "Leckers: "+Str(Score)+" (Highscore sind "+Str(Highscore)+" Leckers)", RGB(200, 150, 0))
          DrawText(2, 2, "Leckers: "+Str(Score)+" (Highscore sind "+Str(Highscore)+" Leckers)", RGB(255, 200, 0))
          DrawText(ScreenWidth/2-TextWidth("Verbleibende Zeit: "+Str(RemainingTime)+"ms")/2+1, 2+1, "Verbleibende Zeit: "+Str(RemainingTime)+"ms", RGB(200, 150, 0))
          DrawText(ScreenWidth/2-TextWidth("Verbleibende Zeit: "+Str(RemainingTime)+"ms")/2, 2, "Verbleibende Zeit: "+Str(RemainingTime)+"ms", RGB(255, RedLevel, RedLevel))
          DrawText(ScreenWidth/2-TextWidth("Um zu Beenden, Esc oder Strg+Alt+Entf drücken")/2, ScreenHeight-20, "Um zu Beenden, Esc oder Strg+Alt+Entf drücken", RGB(200, 200, 200))
      StopDrawing()
 
      BlaseYa = BlaseYa-1
      BlaseYb = BlaseYb-1
      BlaseYc = BlaseYc-1
     
      If BlaseYa = -ScreenHeight/2
        BlaseXa = Random(ScreenWidth-18)
        BlaseYa = ScreenHeight
      ElseIf BlaseYb = -ScreenHeight/2
        BlaseXb = Random(ScreenWidth-18)
        BlaseYb = ScreenHeight+Random(ScreenHeight)
      ElseIf BlaseYc = -ScreenHeight/2
        BlaseXc = Random(ScreenWidth-18)
        BlaseYc = ScreenHeight+Random(ScreenHeight)
      EndIf




    Case 2
   
      DisplayTransparentSprite(9, 50, BlubY)
      DisplayTransparentSprite(4, ScreenWidth/2-186, ScreenHeight/2-78)
     
      StartDrawing(ScreenOutput())
        DrawingMode(1) : DrawingFont(FontID(1))
          DrawText(ScreenWidth/2-TextWidth("Deine Leckers: ")/2+1, ScreenHeight/2+101, "Deine Leckers: "+Str(Score), RGB(200, 150, 0))
          DrawText(ScreenWidth/2-TextWidth("Deine Leckers: ")/2, ScreenHeight/2+100, "Deine Leckers: "+Str(Score), RGB(255, 200, 0))
     
          If Score > Highscore
            DrawText(ScreenWidth/2-TextWidth("NEUER HIGHSCORE!")/2+1, ScreenHeight/2+111, "NEUER HIGHSCORE!", RGB(200, 150, 0))
            DrawText(ScreenWidth/2-TextWidth("NEUER HIGHSCORE!")/2, ScreenHeight/2+110, "NEUER HIGHSCORE!", RGB(255, 0, 0))
          EndIf
     
          DrawText(ScreenWidth/2-TextWidth("Um noch einmal zu spielen drücke Enter, um aufzuhören Escape")/2+1, ScreenHeight/2+126, "Um noch einmal zu spielen drücke Enter, um aufzuhören Escape", RGB(200, 200, 200))
          DrawText(ScreenWidth/2-TextWidth("Um noch einmal zu spielen drücke Enter, um aufzuhören Escape")/2, ScreenHeight/2+125, "Um noch einmal zu spielen drücke Enter, um aufzuhören Escape", RGB(255, 255, 255))
      StopDrawing()
 
      If KeyboardReleased(#PB_Key_Return)
        Highscore = Score
        Score = 0
        StartTime = ElapsedMilliseconds()
        GameState = 1
      EndIf
     
      BlubY = BlubY-1
       
      If BlubY = -ScreenHeight/2
        BlubY = ScreenHeight
      EndIf
  EndSelect

  If KeyboardPushed(#PB_Key_LeftAlt) And KeyboardPushed(#PB_Key_LeftControl) And KeyboardPushed(#PB_Key_Delete)
    CloseScreen()
    End
  EndIf
 
  Delay(10)
 
Until KeyboardPushed(#PB_Key_Escape)
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

*lol*

Beitrag von Vermilion »

Danke! Dein Name wird drin stehen.. kriegst, wenns fertig ist n Executable. Ich hab den Quelltext zwar noch nicht ganz verstanden, aber werde ich hoffentlich bald. :)

<edit>Das eine GoSub ist noch ein Rest von meinem vorherigen Versuch, da eine Struktur reinzubringen, kommt aus Waponez II</edit>
Zuletzt geändert von Vermilion am 14.08.2006 19:31, insgesamt 1-mal geändert.
Benutzeravatar
#NULL
Beiträge: 2219
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

jo, gut :allright:
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Problem

Beitrag von Vermilion »

OK, ich bin auf ein unerwartetes Porblem gekommen; dies habe ich bei Case 1 (ganz am ende) von Gamestate eingefügt:
If SpritePixelCollision(PlayerLook, PlayerX, PlayerY, 1, enemies()\x, enemies()\y)
PlaySound(1, 0)
ElseIf SpritePixelCollision(PlayerLook, PlayerX, PlayerY, 2, enemies()\x, enemies()\y)
PlaySound(1, 0)
EndIf
Der Compiler meint, die LinkedList hätte kein aktuelles Element...

Also, wie komme ich dahinter, dass eine SpritePixelCollission() zwischen YumYum und einem Plankton stattgefunden hat? :freak:
Kaeru Gaman
Beiträge: 17386
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

nuja, der ansatz is doch schon ok...

aber du musst halt dort die liste mit ner schleife durchgehen,
also entweder ResetList/While NextElement oder ForEach.

einfach so drauflos steht der zeiger sonstwo, aber nicht auf irgendeinem aktuellen element
... machts gut und danke für den fisch ...
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Muhahahahaha...

Beitrag von Vermilion »

Frankenstein:
ES LEBT!
Vielen Dank Kaeru Gaman! :praise:

Langsam könnte mir das peinlich sein, die Erleuchtung steht direkt neben einem und man siehts nicht...
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Agent
Beiträge: 296
Registriert: 13.09.2004 11:28
Kontaktdaten:

Beitrag von Agent »

Hm...wäre ja schön, wenn jemand noch die fehlenden Grafiken dazu anbieten würde...

danke.
Agent_Sasori
It's not a bug - it's a feature!
http://www.StephenKalisch.de | http://www.ria-tec.com | http://www.dirsync.de
Antworten