Tan/ATan
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Thread, nicht Threat. Threat bedeutet übersetzt "Bedrohung".Kumpu hat geschrieben:Naja, wenn ich das recht verstanden habe ist ein Threat ein internes nebenher laufundes Unterprogramm (ich hoffe wirklich es ist so^^). Je länger ich drüber nachdenke desto mehr denke ich ich sollte den Winkel direkt in der Hauptroutine berechnen...

Keineswegs. Threads sind eine komplexe Sache die meist mehr Probleme als Abhilfe schaffen. Sofern du nicht genau weißt was du tust bzw. es keine Alternativen gibt solltest du die Finger davon lassen.Kumpu hat geschrieben:Aber eigl sollte das ja trotzdem funktionieren.
Windows 10 Pro, 64-Bit / Outtakes | Derek
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
also, es ist sehr schwierig diesen code zu lesen.
eine oder zwei kurze einrückungen sind die ausnahme, da fehlt jegliche übersicht.
mir kommt das so vor, als wenn du zwei repeats in deiner Proc aufmachst,
aber nur ein Until drin hast... aber dann müßte er ja auch nen Error melden...
also, man sieht wirklich so wenig wie bei nebel.
das da ein Goto drin ist fällt auf... also, würde ich ganz rausnehmen!
du hast da ne menge ExamineKeyboard drin, da solltest du nur eines von nehmen.
und das ganze etwas klarer anordnen, besser strukturieren.
... und ja, am besten ohne Thread lösen, gibt keine Veranlassung dazu, einen zu verwenden.
eine oder zwei kurze einrückungen sind die ausnahme, da fehlt jegliche übersicht.
mir kommt das so vor, als wenn du zwei repeats in deiner Proc aufmachst,
aber nur ein Until drin hast... aber dann müßte er ja auch nen Error melden...
also, man sieht wirklich so wenig wie bei nebel.
das da ein Goto drin ist fällt auf... also, würde ich ganz rausnehmen!
du hast da ne menge ExamineKeyboard drin, da solltest du nur eines von nehmen.
und das ganze etwas klarer anordnen, besser strukturieren.
... und ja, am besten ohne Thread lösen, gibt keine Veranlassung dazu, einen zu verwenden.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- Kumpu
- Beiträge: 27
- Registriert: 13.06.2009 16:07
- Computerausstattung: Windows 7 Home Premium 64Bit
PB V4.3 - Kontaktdaten:
Quelltexte ohne Absätze bin ich von Casio Basic gewöhnt
Also, hier ist der Code mit mehr Übersicht und einer (nicht funktionierenden) Kanone in der Hauptschleife.
Netterweise zeigt das Programm die Kanone immer nur an der linken Seite an, wie gesagt, die Drehung funktioniert auch nicht...
Hier sind die verwendeten Bilder:
paddle- http://img19.imageshack.us/img19/6885/paddle.png
ball- http://img87.imageshack.us/img87/1738/balld.png
kanone- http://img230.imageshack.us/img230/680/gunu.png

Also, hier ist der Code mit mehr Übersicht und einer (nicht funktionierenden) Kanone in der Hauptschleife.
Code: Alles auswählen
MP = MessageRequester("WasDuWolle?", "2-Spieler", #PB_MessageRequester_YesNo)
MP = MP - 5
If MP = 1
MessageRequester("Achtung:", "Steuerung Spieler 2: Keypad 8 & 2", 0)
EndIf
If InitSprite() = 0
MessageRequester("!", "Fehler beim Sprite-Initialisieren^^", 0)
End
EndIf
If OpenScreen(640, 480, 16, "Paddle") = 0
MessageRequester("!", "Fehler beim Screen-Loaden^^", 0)
End
EndIf
Speed = 5
CatchSprite(0, ?Paddle)
CatchSprite(1, ?Ball)
CatchSprite(2, ?Kanone,#PB_Sprite_Texture)
InitSprite3D()
CreateSprite3D(0,2)
ShowPaddle2=1
ShowPaddle1=1
quadrat = 0
x_Ball = 30
y_Ball = 10
End=0
Waagerecht_Ball = 1
Senkrecht_Ball = 1
Paddle_1 = 200
Paddle_2 = 200
Hs = 0
Start=0
If InitSound() = 0
MessageRequester("!!!", "Der Sound konnte nicht geladen werden! Was soll denn das???", 0)
End
EndIf
CatchSound(0, ?Sound)
If InitKeyboard() = 0
MessageRequester("!", "Fehler beim Keyboard-Initialisieren^^", 0)
End
EndIf
Repeat
Delay(60)
x_Ball = x_Ball + (Waagerecht_Ball * Speed)
y_Ball = y_Ball + Senkrecht_Ball
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Up) And Paddle_1 > 1
Paddle_1 = Paddle_1 - 10
EndIf
If KeyboardPushed(#PB_Key_Down) And Paddle_1 < 430
Paddle_1 = Paddle_1 + 10
EndIf
If y_Ball < 2 Or y_Ball > 449
Senkrecht_Ball = Senkrecht_Ball - (2 * Senkrecht_Ball)
EndIf
ClearScreen(0,0,0)
If ShowPaddle1=1
DisplaySprite(0, 1, Paddle_1)
EndIf
If ShowPaddle2=1
DisplaySprite(0, 625, Paddle_2)
EndIf
DisplaySprite(1, x_Ball, y_Ball)
If Start=1
If Waagerecht_Ball=1
ShowPaddle2=0
Gun_x=620
Else
ShowPaddle1=0
Gun_x=1
EndIf
If Waagerecht_Ball=1
If y_Ball>paddle_2
quadrat=4
Else
quadrat=3
EndIf
Else
If y_Ball>paddle_1
quadrat=2
Else
quadrat=1
EndIf
EndIf
If Waagerecht_Ball=1
Gun_y=Paddle_2
GK=Abs(y_ball-paddle_2)
AK=Abs(x_ball-625)
Else
Gun_y=Paddle_1
GK=Abs(y_ball-paddle_1)
AK=Abs(x_ball-1)
EndIf
Winkel=ATan(GK/AK)
If Showgun=0
ShowGun=1
EndIf
End=End+1
If End=200
End=0
Start=0
ShowPaddle1=1
ShowPaddle2=1
Waagerecht_Ball*-1=Waagerecht_Ball
EndIf
Start3D()
RotateSprite3D(0, (360-quadrat*90+Winkel),0)
DisplaySprite3D(0, Gun_x,Gun_y)
Stop3D()
EndIf
FlipBuffers()
If MP = 2
If Waagerecht_Ball = 1
If Paddle_2+20 > y_Ball
Paddle_2 = Paddle_2 - 3
EndIf
If Paddle_2+20 < y_Ball
Paddle_2 = Paddle_2 + 3
EndIf
EndIf
EndIf
If Mp = 1
If KeyboardPushed(#PB_Key_Pad8) And Paddle_2 > 1
Paddle_2 = Paddle_2 - 10
EndIf
If KeyboardPushed(#PB_Key_Pad2) And Paddle_2 < 430
Paddle_2 = Paddle_2 + 10
EndIf
EndIf
If x_Ball < 21
If Paddle_1 + 49 > y_Ball And Paddle_1 < y_Ball + 20
Waagerecht_Ball = Waagerecht_Ball - (2 * Waagerecht_Ball)
Speed = Speed + 1
PlaySound(0)
If MP = 2
HS = HS + 100
EndIf
Else
CloseScreen()
If MP = 2
MessageRequester("=(", "Verloren... "+Str(HS)+" Punkte", 0)
Else
MessageRequester("={", "Spieler 2 gewinnt!!!!!", 0)
EndIf
End
EndIf
EndIf
If x_Ball > 600
If Paddle_2 + 49 > y_Ball And Paddle_2 < y_Ball+20
Waagerecht_Ball = Waagerecht_Ball - (2 * Waagerecht_Ball)
Speed = Speed + 1
PlaySound(0)
Else
CloseScreen()
If Mp = 2
MessageRequester("=)", "Gewonnen!!!... "+Str(HS)+" Punkte", 0)
Else
MessageRequester("={", "Spieler 1 gewinnt!!!!!", 0)
EndIf
End
EndIf
EndIf
If KeyboardPushed(#PB_Key_Escape)
CloseScreen()
MessageRequester("Ciaobella^^", "Auf Wiedersehen geehrter Spieler!", 0)
End
EndIf
If KeyboardPushed(#PB_key_Add)
Speed = Speed +1
EndIf
If KeyboardPushed(#PB_Key_PadEnter)
Senkrecht_Ball+1
EndIf
If KeyboardPushed(#PB_Key_C)
MessageRequester("Hallöle", "C) David F^^ Cool wa?", 0)
EndIf
If Int(Random(100))>60 And Start=0
If Waagerecht_Ball=1 And x_Ball<400 And Speed<15 Or Waagerecht_Ball=-1 And x_Ball>150 And Speed<15
Start=1
EndIf
EndIf
ForEver
Paddle:
IncludeBinary "paddle.bmp"
Ball:
IncludeBinary "ball.bmp"
Sound:
IncludeBinary "chop.wav"
Kanone:
IncludeBinary "gun.bmp"
Hier sind die verwendeten Bilder:
paddle- http://img19.imageshack.us/img19/6885/paddle.png
ball- http://img87.imageshack.us/img87/1738/balld.png
kanone- http://img230.imageshack.us/img230/680/gunu.png
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
---------------------------
PureBasic
---------------------------
Line 26: Syntax error.
---------------------------
OK
---------------------------
Code: Alles auswählen
End=0

Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte