Kollegen für Zusammenarbeit gesucht
- Vermilion
- Beiträge: 1846
- Registriert: 08.04.2006 16:00
- Computerausstattung: Apple iMac (2010) & HP Notebook
- Wohnort: Heidekreis
Kollegen für Zusammenarbeit gesucht
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.
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.
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 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...
<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 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...
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)
- Vermilion
- Beiträge: 1846
- Registriert: 08.04.2006 16:00
- Computerausstattung: Apple iMac (2010) & HP Notebook
- Wohnort: Heidekreis
*lol*
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>
<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.
- Vermilion
- Beiträge: 1846
- Registriert: 08.04.2006 16:00
- Computerausstattung: Apple iMac (2010) & HP Notebook
- Wohnort: Heidekreis
Problem
OK, ich bin auf ein unerwartetes Porblem gekommen; dies habe ich bei Case 1 (ganz am ende) von Gamestate eingefügt:
Also, wie komme ich dahinter, dass eine SpritePixelCollission() zwischen YumYum und einem Plankton stattgefunden hat?
Der Compiler meint, die LinkedList hätte kein aktuelles Element...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
Also, wie komme ich dahinter, dass eine SpritePixelCollission() zwischen YumYum und einem Plankton stattgefunden hat?
-
- Beiträge: 17389
- 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
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
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- Vermilion
- Beiträge: 1846
- Registriert: 08.04.2006 16:00
- Computerausstattung: Apple iMac (2010) & HP Notebook
- Wohnort: Heidekreis
Muhahahahaha...
Frankenstein:
Langsam könnte mir das peinlich sein, die Erleuchtung steht direkt neben einem und man siehts nicht...
Vielen Dank Kaeru Gaman!ES LEBT!
Langsam könnte mir das peinlich sein, die Erleuchtung steht direkt neben einem und man siehts nicht...
Hm...wäre ja schön, wenn jemand noch die fehlenden Grafiken dazu anbieten würde...
danke.
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
It's not a bug - it's a feature!
http://www.StephenKalisch.de | http://www.ria-tec.com | http://www.dirsync.de