Aktuelle Zeit: 31.03.2020 03:49

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Kollegen für Zusammenarbeit gesucht
BeitragVerfasst: 12.08.2006 11:47 
Offline
Benutzeravatar

Registriert: 08.04.2006 16:00
Wohnort: Heidekreis
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!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 12.08.2006 13:37 
Offline
Benutzeravatar

Registriert: 20.04.2006 09:50
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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 14.08.2006 10:47 
Offline
Benutzeravatar

Registriert: 08.04.2006 16:00
Wohnort: Heidekreis
? 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!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 14.08.2006 12:14 
Offline
Benutzeravatar

Registriert: 20.04.2006 09:50
da weder email noch PN zu funkt. scheint post ich es halt mal hier
Code:
;###################################################################################################
;# 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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: *lol*
BeitragVerfasst: 14.08.2006 13:01 
Offline
Benutzeravatar

Registriert: 08.04.2006 16:00
Wohnort: Heidekreis
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.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 14.08.2006 13:07 
Offline
Benutzeravatar

Registriert: 20.04.2006 09:50
jo, gut :allright:

_________________
my pb stuff..
Bild..jedenfalls war das mal so.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Problem
BeitragVerfasst: 15.08.2006 14:50 
Offline
Benutzeravatar

Registriert: 08.04.2006 16:00
Wohnort: Heidekreis
OK, ich bin auf ein unerwartetes Porblem gekommen; dies habe ich bei Case 1 (ganz am ende) von Gamestate eingefügt:

Zitat:
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:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 15.08.2006 14:53 
Offline

Registriert: 10.11.2004 03:22
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 ...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Muhahahahaha...
BeitragVerfasst: 15.08.2006 21:41 
Offline
Benutzeravatar

Registriert: 08.04.2006 16:00
Wohnort: Heidekreis
Frankenstein:
Zitat:
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!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 16.08.2006 20:55 
Offline

Registriert: 13.09.2004 11:28
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


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye