2 spieler

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

wuenschie

Betreff: 2 spieler

BeitragMi, Dez 01, 2004 21:17
Antworten mit Zitat
Benutzer-Profile anzeigen
ich wollte ein spiel schreiben in dem 2 spieler gegeneinander kämpfen (auf einer tastatur)
wie mach ich das am besten denn ich habe überhaupt noch keine ahnung wie ich da ran gehen soll!!!

könnt ihr mir bitte helfen!!!

gruß markus
Der Tod ist sicher, das Leben nicht!!

Hubsi

BeitragMi, Dez 01, 2004 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Spieler 1 die Cursortasten zum steuern geben und dem 2. WASD?
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

wuenschie

BeitragMi, Dez 01, 2004 21:27
Antworten mit Zitat
Benutzer-Profile anzeigen
ja bei der steuerung habe ich keine probleme. die figuren sind ja alle animationen und wenn ich sie bewege muss ich ja cls schreiben damit das alte bild gelöscht wird. wenn ich nun den einen bewege wird der andere dabei aber gelöscht, wegen dem cls.
Der Tod ist sicher, das Leben nicht!!

Firstdeathmaker

BeitragMi, Dez 01, 2004 21:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Das verstehe ich nicht. Bau die Hauptschleife doch so auf:

Zitat:
repeat

;Steuerung abfragen Player 1
;Steuerung abfragen Player 2

cls

; Spieler 1 malen
; Spieler 2 malen

flip

until keyhit(1)
end



Erst die Steuerung abfragen, dann löschen, dann beide Spieler mit der aktuellen Animation einzeichnen.
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

wuenschie

BeitragMi, Dez 01, 2004 21:44
Antworten mit Zitat
Benutzer-Profile anzeigen
ja es wird aber nicht nur ein bild für spieler 1 gemalt sondern mehrere, nämlich wenn er läuft oder springt oder schlägt (dafür brauch man ja mehr als ein bild) also muss da schon mal irgendwo cls vorkommen denn sonst sind ja die alten bilder auch noch da. aber dann verschwindet eben wieder spieler 2!!!

wie soll ich das denn machen??

danke markus
Der Tod ist sicher, das Leben nicht!!

Firstdeathmaker

BeitragMi, Dez 01, 2004 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weis ja nicht wie du die Bilder abgespeichert hast, aber es ist doch so, dass du an die Stelle nur immer ein einziges Bild einzeichnest (zum beispiel bewegung1.bmp.) Im nächsten Schleifendurchlauf zeichnest du dann das nächste ein: bewegung2.bmp u.s.w., wodurch eine Bewegung entsteht. Oder wie hast du dir das Vorgestellt? Du komponierst doch pro Schleifendurchlauf ein einziges Bild, von mir aus auch aus einem Hintergrund und 2 Spielerfiguren. Im nächsten Schleifendurchlauf veränderst du dann die beiden Figuren ein wenig und schon hast du deine Bewegung. Das ändert doch trotzdem nix an der Tatsache dass du die direkt nacheinander einzeichnen kannst.

Am besten postest du mal nen bisschen Code, dann kann ich besser sehen was du meinst.
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

wuenschie

BeitragMi, Dez 01, 2004 22:00
Antworten mit Zitat
Benutzer-Profile anzeigen
mein code:

Code: [AUSKLAPPEN]

global loadanimimage=("spieler1, 80, 80, 0, 70")
global loadanimimage=("spieler2, 80, 80, 0, 70")

repeat
   if keydown(208) then
       repeat
          cls
         
          drawimage spieler1, x, y, frame
         
          y=y-3
          frame=frame+1
         
          flip
       until not keydown(208)
   endif

   if keydown(32) then
       repeat
          cls
         
          drawimage spieler2, x, y, frame
         
          y=y-3
          frame=frame+1
         
          flip
       until not keydown(32)
   endif

....
....
....

forever
Der Tod ist sicher, das Leben nicht!!

Kernle 32DLL

BeitragMi, Dez 01, 2004 22:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja,das ist ja auch falsch ! Denn wen taste 208 gedrückt wird,wird ja nur
Spieler 1 gemalt.Aber es müssen beide gemalt werden. Also schreibst
den mal befehl für den anderen Spieler immer unter den anderen.
also:

Zitat:
drawimage spieler1, x, y, frame
drawimage spieler2, x, y, frame


Da ich nicht den ganzen Code kenne,weis ich nicht ob das so geht.
Müsst aber schon.Also packt die Malbefehle beider Spieler zusammen !
Denn so wie du das machst,wird immer nur einer gemalt.möp


Gruß:
kernle

PS: Hoffe ich konnte helfen
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog]
Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89
Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009

Firstdeathmaker

BeitragMi, Dez 01, 2004 22:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Aha, ok.

Pass auf, wie wäre es damit:


Code: [AUSKLAPPEN]
global loadanimimage=("spieler1, 80, 80, 0, 70")
global loadanimimage=("spieler2, 80, 80, 0, 70")

; Das sind die Positionen und Frames deiner beiden Spielfiguren
spieler1_x
spieler1_y
spieler1_frame
spieler2_x
spieler2_y
spieler2_frame

repeat
   if keydown(208) then
          player1_y=player1_y-3
          player1_frame=(player1_frame+1) mod(70)
   endif

   if keydown(32) then
          player2_y=player2_y-3
          player2_frame=(player2_frame+1) mod(70)
   endif

cls
drawimage spieler1, player1_x, player1_y, player1_frame
drawimage spieler2, player2_x, player2_y, player2_frame
flip

....
....
....

forever
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Dante

BeitragMi, Dez 01, 2004 22:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Global spieler1 = LoadAnimImage ("spieler.bmp",30,30,0,9) 
Global spieler2 = LoadAnimImage ("spieler2.bmp",30,30,0,9)

Repeat
If KeyDown(208) Then
y=y-3
frame=frame+1
EndIf

If KeyDown(32) Then
y2=y2-3
frame2=frame2+1
EndIf

DrawImage spieler1, x, y, frame
DrawImage spieler2, x2, y2, frame2

Flip
Forever 


Nicht getestet Wink
  • Zuletzt bearbeitet von Dante am Mi, Dez 01, 2004 22:23, insgesamt einmal bearbeitet

wuenschie

BeitragMi, Dez 01, 2004 22:19
Antworten mit Zitat
Benutzer-Profile anzeigen
ja es funktioniert danke!!!
aber wenn ich spieler1 bewege dann kann ich nicht gleichzeitig spieler2 bewegen, denn der rechner ist ja immer noch bei der kontrolle von keydown(208)!!!
wie kann ich das noch lösen???

gruß markus
Der Tod ist sicher, das Leben nicht!!

Dante

BeitragMi, Dez 01, 2004 22:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Global x=0:y=0
Global x2=32:y2=32

Repeat
Cls

If KeyDown(200) Then y=y-3
If KeyDown(208) Then y=y+3
If KeyDown(203) Then x=x-3
If KeyDown(205) Then x=x+3

If KeyDown(31) Then y2=y2+3
If KeyDown(17) Then y2=y2-3
If KeyDown(30) Then x2=x2-3
If KeyDown(32) Then x2=x2+3

Oval  x, y,30,30,1
Oval x2, y2 ,30,30,1

Flip
FlushKeys()
Until KeyDown(1)


Mal ohne Animation,bei mir klappt es ganz gut^^kann beide spieler gleichzeitig bewegen Wink
  • Zuletzt bearbeitet von Dante am Do, Dez 02, 2004 22:11, insgesamt einmal bearbeitet

wuenschie

BeitragMi, Dez 01, 2004 22:38
Antworten mit Zitat
Benutzer-Profile anzeigen
1000 dank an euch es funzt super Surprised Surprised Surprised Surprised Surprised Surprised Surprised Surprised

Laughing Laughing Laughing Laughing Laughing Laughing Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy


gruß markus Mr. Green
Der Tod ist sicher, das Leben nicht!!

Dante

BeitragMi, Dez 01, 2004 22:39
Antworten mit Zitat
Benutzer-Profile anzeigen
kein problem^^immer wieder gerne Wink

cya

Hummelpups

BeitragDo, Dez 02, 2004 10:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Das könnte nen Problem werden wenn zu viele Tasten auf einmal
gedrückt werden.

Das Problem wirste schon noch kennen lernen, keine Sorge.

BiZaR
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

wuenschie

BeitragDo, Dez 02, 2004 16:21
Antworten mit Zitat
Benutzer-Profile anzeigen
es gibt ja auch noch den befehl flushkey

gruß markus
Der Tod ist sicher, das Leben nicht!!
 

hot-bit

Gast

BeitragDo, Dez 02, 2004 16:24
Antworten mit Zitat
Hoi.

Aha, das Ei schon wieder schlauer als die Henne !

Wenn er sagt, daß es Probleme mit zuviel zugleich gedrückten Tasten gibt, dann kannst es ihm auch glauben.

Tatsache ist, daß es Probleme gibt !

Und da kannst noch so viele FlushKey() einbauen, wie du willst !

Und wenn du schon so SCHLAU tust, warum fragst hier überhaupt um irgendwas ?

Toni
  • Zuletzt bearbeitet von hot-bit am Do, Dez 02, 2004 16:25, insgesamt einmal bearbeitet

wuenschie

BeitragDo, Dez 02, 2004 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
gibt es eigentlich einen befehl der abfragt ob keine taste gerückt wird???

danke für eure hilfe

gruß markus
Der Tod ist sicher, das Leben nicht!!

BladeRunner

Moderator

BeitragDo, Dez 02, 2004 16:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Was Bizar meinte war dass einige Tastaturen hardwareseits nicht in der Lage sind mehr als 3 oder 4 gleichzeitig gedrückte Tasten zu verarbeiten. Da hilft auch das beste Flushkeys nur wenig Wink
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

Hubsi

BeitragDo, Dez 02, 2004 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
wuenschie hat Folgendes geschrieben:
gibt es eigentlich einen befehl der abfragt ob keine taste gerückt wird???

danke für eure hilfe

gruß markus
Pseudo:Code: [AUSKLAPPEN]
function nokey()
for a=1 to 237
  if keydown(a) return false
next
return true
end function
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group