2d Game laggt beim Feuern

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

flexer94

Betreff: 2d Game laggt beim Feuern

BeitragDi, Okt 27, 2009 19:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo bin neu hier Very Happy

hab mich die letzten paar tage mal hinter BB gesetzt und hab auch schon n kleines Spiel hinbekommen ..

Jetzt hab ich allerdings das Problem, dass das eigentlich Spiel angehalten wird, wenn man feuert. Ich weiß auch schon an was das liegt, aber nicht wie ichs lösen kann Confused

Hier die Source:

Code: [AUSKLAPPEN]
;New Game___---___---___---___---___

AppTitle "GhettoFreaks v1.0"

Global name1$ = Input("Spieler 1: ")
Global name2$ = Input("Spieler 2: ")
Print "Taste drücken um das Spiele zu starten!" : Color 255,0,0 :Print "Achte immer auf deinen Munitionsvorrat!"
WaitKey

Graphics 1024,768,32,0

frames = CreateTimer(30)

Global background = LoadImage("gfx\back.png")
MidHandle background

Global gangster1 = LoadImage("gfx\blackone.png")
MidHandle gangster1

Global gangster2 = LoadImage("gfx\whiteone.png")
MidHandle gangster2

Global kugel = LoadImage("gfx\kugel.png")
MidHandle kugel

Global blood = LoadImage("gfx\blut.png")

Global feuer = LoadImage("gfx\flame.png")

weapon = LoadSound("gfx\sound\deagle.wav")
weapon2 = LoadSound("gfx\sound\elite.wav")



DrawImage(background,1024/2,768/2,0)
SetBuffer BackBuffer()


;Some Globals

Global Leben1 = 100
Global Leben2 = 100

Global p1y = 100
Global p2y = 600

Global g1_X = 830
Global g2_X = 200

Global x_ku1 = g1_x
Global y_ku1 = p1y - 22

Global x_ku2 = g2_x
Global y_ku2 = p2y + 22

Global ammo_p1 = 25
Global ammo_p2 = 25

;MainSound

backmusic = LoadSound("gfx\sound\background.mp3")
PlaySound(backmusic)

;MAIN_____

Repeat
;_____

.start
Cls

WaitTimer(frames)

DrawImage(background,1024/2,768/2,0)

Color(255,0,0)
;____________
Text (50,5,name2 + " Leben: " + leben1 + "   Munition: " + ammo_p2 + " Schuss")
;____________

Text (540,5,name1 + " Leben: " + leben2 + "   Munition: " + ammo_p1 + " Schuss")



DrawImage(gangster1,g1_X,p1y)
DrawImage(gangster2,g2_X,p2y)

If KeyDown(208) Then p1y = p1y + 5
If KeyDown(200) Then p1y = p1y - 5
If KeyHit(82) Then ;feuer
;SCHUSS Spieler 1
PlaySound(weapon)

ammo_p1 = ammo_p1 - 1

While x_ku1 > 0
Cls

DrawImage(background,1024/2,768/2,0)
Text (50,5,name2 + " Leben: " + leben1 + "   Munition: " + ammo_p2 + " Schuss")
Text (540,5,name1 + " Leben: " + leben2 + "   Munition: " + ammo_p1 + " Schuss")

DrawImage(gangster1,g1_X,p1y)
DrawImage(gangster2,g2_X,p2y)


DrawImage(kugel,x_ku1-30,p1y-22)
x_ku1 = x_ku1 - 50
DrawImage(feuer,g1_x-57,p1y-33)
If ImagesCollide(kugel,x_ku1,p1y - 22,0,gangster2,g2_x,p2y,0) = 1 Then

leben1 = leben1 - 5
DrawImage(blood,g2_x,p2y)
EndIf
Flip
Delay(10)
Wend

EndIf

;SCHUSS ende

;neuzuweisung
x_ku1 = g1_x
;ende neuzuweisung


If KeyDown(17) Then p2y = p2y - 5
If KeyDown(31) Then p2y = p2y + 5
If KeyHit(57) Then ;feuer("s2");Noch definieren!!!!

PlaySound(weapon2)

ammo_p2 = ammo_p2 - 1

While x_ku2 < 1024
Cls
DrawImage(background,1024/2,768/2,0)
Text (50,5,name2 + " Leben: " + leben1 + "   Munition: " + ammo_p2 + " Schuss")
Text (540,5,name1 + " Leben: " + leben2 + "   Munition: " + ammo_p1 + " Schuss")

DrawImage(gangster1,g1_X,p1y)
DrawImage(gangster2,g2_X,p2y)

DrawImage(kugel,x_ku2 + 30,p2y-22)
x_ku2 = x_ku2 + 50
DrawImage(feuer,g2_x + 30, p2y - 36)
If ImagesCollide(kugel,x_ku2,p2y - 22,0,gangster1,g1_x,p1y,0) = 1 Then
leben2 = leben2 - 5
DrawImage(blood,g1_x + 30,p1y)
EndIf
Flip
Delay(10)
Wend

EndIf

;neuzuweisung
x_ku2 = g2_x
;ende neuzuweisung


If leben1 <= 0 Or ammo_p2 <= 0 Then

EndGraphics
Print (name2 + " gewinnt! Mausklick zum Beenden.")
WaitMouse
End

ElseIf leben2 <= 0 Or ammo_p1 <=0 Then

EndGraphics
Print (name1 + " gewinnt! Mausklick zum Beenden.")
WaitMouse
End
EndIf

;Spieler 1 aus dem Bildschirm?

If p2y < 0 Then p2y = 768
If p2y > 768 Then p2y = 0

;Spieler 2 aus dem Bildschirm?

If p1y < 0 Then p1y = 768
If p1y > 768 Then p1y = 0



Flip


;_____
Until KeyHit(1)

Cls

Print "Bis zum nächsten mal :D!"
WaitKey
End
;_____




Es isn bisschen durcheinander mit p1 und p2 aber am Ende hats gestimmt Very Happy

Tankbuster

BeitragDi, Okt 27, 2009 19:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Flip
Delay(10)


Ist ja wirklich böse.
Verwende einen Timer und Flip 0

Außerdem ist dein Code etwas sonderbar. Wieviele verschachtelte While-Schleifen sind das? o_O

Ich denk mal, dass es daran liegt. Wenn du Schüsse realisieren willst, solltest du dir besser Types anschaun Wink
Twitter
Download Jewel Snake!
Windows|Android
 

flexer94

BeitragDi, Okt 27, 2009 19:27
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm ..


Ich dachte ich komm um die Types drum herum Very Happy

naja muss ich mir mal anschaun

TimBo

BeitragDi, Okt 27, 2009 23:11
Antworten mit Zitat
Benutzer-Profile anzeigen
mhh
ich denke gerade bei Schüssen wirst du nicht drum herumkommen.


BlitzBasic: [AUSKLAPPEN]

;vor die Main
Type schuss
Field x
Field y
End Type

;neuen Schuss erstellen
s.schuss=New schuss
s\x= X
s\y= Y

;in der Main, zur Kontrolle der Types
For s.schuss=Each schuss
;hier kannst du die vars x und y so benutzen
DrawImage deinBild,s\x,s\y
Next

;einen Schuss löschen
Delete s.schuss



mehr braucht man doch nicht zu wissen, wenn man schüsse macht. Wenn du mehr über Types wissen willst, lohnt es sich Tutorials anzuschauen.

Greez
TimBo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

BladeRunner

Moderator

BeitragMi, Okt 28, 2009 11:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Es geht auch mit einem array, aber ist dann unflexibler.
Dein Hauptproblem ist allerdings dass Du den Code ausbremst indem Du alles strikt nacheinander erledigen lässt.
Der richtige Weg ist in jedem Schleifendurchlauf von allem nur den nächsten Schritt ausführen zu lassen.

Ach ja:
~VERSCHOBEN~
Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group