ein noob hat ein Problem...

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Sibitiger

Betreff: ein noob hat ein Problem...

BeitragSa, Sep 04, 2004 18:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe ein Problem bei meinem ersten Spiel mit Grafik:
Ich weiß nicht wie ich die Kreise (s.code)länger darstellen kann ohne dass, die Maus-Steuerung verzögert wird
und:
ich weiß nicht warum nach der Pause im Vollbildmodus die Maus da ist, wo man sie hinbewegt aber im Fenstermodus ist das nicht so Confused ...
und: ich weiß noch nicht wie man wenn ein Kreis getroffen wird verschwinden lassen kann.
Ich weiß das man das alles besser und vielleicht kürzer schreiben könnte aber... ich bin noob...
Das Spiel soll eigentlich so werden:
Du sollst mit dem Visier auf Kreise schießen,jede sekunde kommt ein neuer, der für immer oder für 2 sek. da bleibt (das soll wählbar sein) und wenn man mit der l. Maustaste auf ihn drückt soll er wieder verschwinden.
Ich hoffe ihr könnt mir helfen und Danke im Voraus


Sibitiger

Code: [AUSKLAPPEN]
;-----------------------------------Voreinstellungen
AppTitle "erstes Grafik Spiel"
Graphics 640,480,16,1
HidePointer
SetBuffer BackBuffer()
Global wartezeit =1000
Global altesmillisecs = MilliSecs()

MoveMouse 320,240
;-----------------------------------Hauptschleife

Repeat
Cls
Kreise()
Visier()
Pause()
Flip
Until KeyHit(1)
End


;-----------------------------------Functions


Function Kreise()
If AltesMillisecs + WarteZeit <= MilliSecs()
x=Rnd(0,640)
y=Rnd(0,480)
Oval x,y,10,10,1
AltesMillisecs = MilliSecs()
EndIf
End Function

Function Visier()
L11=MouseX()-5
L12=MouseY()-1
L21=MouseX()-1
L22=MouseY()-5
L31=MouseX()+3
L32=MouseY()-1
L41=MouseX()-1
L42=MouseY()+3
LM1=MouseX()-2
LM2=MouseY()-2
Color 255,0,0
Rect LM1,LM2,3,3,1
Color 255,255,0
Plot L11,L12
Plot L21,L22
Plot L31,L32
Plot L41,L42
Line L11,L12,L21,L22
Line L21,L22,L31,L32
Line L31,L32,L41,L42
Line L41,L42,L11,L12
Color 255,255,255
Oval MouseX()-10,MouseY()-10,20,20,0
End Function



Function Pause()
If KeyHit(25) Then
a=MouseX()
b=MouseY()
SetBuffer FrontBuffer()
Text 310,230, "pause"
Repeat
If KeyHit(1) End
Until KeyHit(25)
SetBuffer BackBuffer()
MoveMouse a,b
EndIf
End Function
 

getlose

BeitragSa, Sep 04, 2004 18:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

If ImageRectsOverlap (image,posx,posy,mausx,mausy,1,1) Then
   ;kreis löschen
EndIf


könntest das auch ohne Bilder machen, einfach mal
die Forumsuche benutzen Smile

Bigmichi

BeitragSa, Sep 04, 2004 19:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich wil ja kein unmensch sein und hab dir grade mal dein Game gemacht =)

Code: [AUSKLAPPEN]

Type KE
   Field I
  Field X
  Field Y
End Type


Global GraX,GraY,GraB,GraM

GraX = 1024
GraY = 768
GraB = 16
GraM = 2

Graphics GraX,GraY,GraB,GraM


Global MX,MY
Global Timer

Dim MHit(3)


Global visi = CreateImage(32,32)

  SetBuffer ImageBuffer(visi)
  Oval 0,0,32,32,0

  Color 255,255,128
  Line 10,16,16,10
  Line 16,10,22,16
  Line 22,16,16,22
  Line 10,16,16,22

  Color 255,128,128
  Line 16,11,16,21
  Line 11,16,21,16


Global geg = CreateImage(32,32)

   SetBuffer ImageBuffer(geg)
   Color 0,128,255
   Oval 0,0,32,32
   



HidePointer()
SeedRnd MilliSecs()
SetBuffer BackBuffer()
While Not KeyHit(1)

  MX = MouseX()
  MY = MouseY()

  MHit(1) = MouseHit(1)



   If Timer + 500 < MilliSecs()
   
    ADK()
    Timer = MilliSecs()
   End If
   
   

  UPK()

  DrawImage visi,MX-16,MY-16

 Flip
 Cls
Wend
End



Function ADK()

   GE.KE = New KE
    GE\I = CopyImage(geg)
    GE\X = Rand(40,GraX-40)
    GE\Y = Rand(40,GraY-40)

End Function


Function UPK()

   For GE.KE = Each KE

    DrawImage GE\I,GE\X,GE\Y
   
     If ImagesCollide (GE\I,GE\X,GE\Y,0,visi,MX-16,MY-16,0) And MHit(1) Then
         FreeImage GE\I
        Delete GE
      End If

   Next

End Function


Blitzer

Betreff: Etwas genauer!

BeitragSa, Sep 04, 2004 20:09
Antworten mit Zitat
Benutzer-Profile anzeigen
So ist es etwas genauer!

Code: [AUSKLAPPEN]
Type KE
Field I
Field X
Field Y
End Type


Global GraX,GraY,GraB,GraM

GraX = 1024
GraY = 768
GraB = 16
GraM = 2

Graphics GraX,GraY,GraB,GraM


Global MX,MY
Global Timer

Dim MHit(3)


Global visi = CreateImage(32,32)

SetBuffer ImageBuffer(visi)
Oval 0,0,32,32,0

Color 255,255,128
Line 10,16,16,10
Line 16,10,22,16
Line 22,16,16,22
Line 10,16,16,22

Color 255,128,128
Line 16,11,16,21
Line 11,16,21,16


Global geg = CreateImage(32,32)

SetBuffer ImageBuffer(geg)
Color 0,128,255
Oval 0,0,32,32




HidePointer()
SeedRnd MilliSecs()
SetBuffer BackBuffer()
While Not KeyHit(1)

MX = MouseX()
MY = MouseY()

MHit(1) = MouseHit(1)



If Timer + 500 < MilliSecs()

ADK()
Timer = MilliSecs()
End If



UPK()

DrawImage visi,MX-16,MY-16

Flip
Cls
Wend
End



Function ADK()

GE.KE = New KE
GE\I = CopyImage(geg)
GE\X = Rand(40,GraX-40)
GE\Y = Rand(40,GraY-40)

End Function


Function UPK()

For GE.KE = Each KE

DrawImage GE\I,GE\X,GE\Y

If ImageRectCollide (GE\I,GE\X,GE\Y,0,MX,MY,1,1) And MHit(1) Then
FreeImage GE\I
Delete GE
End If

Next

End Function


Wink Wink Wink
Nichts ist mehr so wie es einmal war mit
------------------Blitzbasic------------------

Athlon 3000+, 1 GBRam DDR, Geforce FX 5500, 120 GB Fesplatte
Sempron 2200+, 512 MBRam DDR, Geforce FX 5200, 60 GB Festplatte
 

Jaramia

BeitragSa, Sep 04, 2004 22:46
Antworten mit Zitat
Benutzer-Profile anzeigen
hey! endlich mal ein passender threa-titel! Wink
alu.art-FX.org
 

Sibitiger

Betreff: Danke,danke

BeitragSa, Sep 04, 2004 23:36
Antworten mit Zitat
Benutzer-Profile anzeigen
ich werd mir ein Beispiel nehmen:)...
nur ich bin leider noch nihct so weit Sad ,
aber ich denke und hoffe,dass ich noch besser werde


Sibitiger

Cerbus

BeitragSo, Sep 05, 2004 0:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Na, siehste wird doch schon. Very Happy
Wenn du ICQ hast, kannst dich ja mal bei mir melden, fange auch mit proggen an. Könnten uns ja dann gegenseitig bisschen unterstützen. Wink
 

Sibitiger

Betreff: Ich hab das jetzt auch gemacht

BeitragMo, Sep 20, 2004 14:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab das jetzt auch gemacht Very Happy , das ist eurem zwar sehr ähnlich aber was soll man da noch groß anders machen?

Sibitiger

Code: [AUSKLAPPEN]

;------------------------------Types

Type kr
Field kreis
Field x
Field y
End Type

;------------------------------Voreinstellungen

AppTitle "Visier"
Graphics 640,480,16,2
HidePointer
;--------------Globals/Locates/Dims/Banks
Global Ge.kr
Global Geg
Global timer
Global visi
Global PosX,PosY
Dim Mhit(3)
;---zuweisen
timer=MilliSecs()
visi=CreateImage(32,32)
Geg=CreateImage(25,25)
;--------------Laden/Erstellen
;---Visier
SetBuffer ImageBuffer(visi)
Oval 0,0,32,32,0
Color 255,255,0
Line 16,10,10,16
Line 16,10,22,16
Line 22,16,16,22
Line 10,16,16,22
Color 255,0,0
Line 16,11,16,15
Line 11,16,15,16
Line 21,16,17,16
Line 16,21,16,17
;---Kreise
SetBuffer ImageBuffer(Geg)
Color 0,200,255
Oval 0,0,25,25,1

SetBuffer BackBuffer()

;------------------------------Hauptschleife

Repeat
Mhit(1)=MouseHit(1)
SpeedX=MouseXSpeed()
SpeedY=MouseYSpeed()
PosX=PosX+SpeedX
PosY=PosY+SpeedY
MoveMouse 320,240
;---Kreise
If timer+1000<MilliSecs()
Kreise()
timer=MilliSecs()
EndIf
Kreisem()
;---Visier
If PosX>640 PosX=640
If PosX<0 PosX=0
If PosY>480 PosY=480
If PosY<0 PosY=0
DrawImage visi,PosX-16,PosY-16;MX,MY

Flip
Cls
Until KeyHit(1)
DeleteFile ("Visier.bb_bak1")
DeleteFile ("Visier.bb_bak2")
End

;------------------------------Functions

Function Kreise()
Ge.kr=New kr
Ge\kreis=CopyImage (Geg)
Ge\x=Rnd(630)
Ge\y=Rnd(470)
End Function


Function Kreisem()
For Ge.kr=Each kr
DrawImage Ge\kreis,Ge\x,Ge\y
If ImageRectCollide (GE\kreis,GE\X,GE\Y,0,PosX,PosY,1,1) And MHit(1) Then ;MX+16,MY+16,1,1) And MHit(1) Then
FreeImage Ge\kreis
Delete ge
EndIf
Next
End Function

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group