Seite 4 von 5

Verfasst: 20.12.2008 23:17
von Mok
Kaeru Gaman hat geschrieben:habs jetzt erstmal getestet, noch nicht den code gelesen...

also, abgesehen vom durcheinander am anfang, wo ich noch gucken muss woran das liegt,
funktioniert es wie es soll: 10x schusssound, 1x nachladesound.
WTF?
Selber Code, selbe Ressourcen... woran kann's liegen? (Ach ja: wenn du die Maus länger gedrückt hältst kommt der Schusssound öfter, was nicht sein soll)
Bei mir ist das erstemal Mausklick der nachladesound und man muss ein 11. Mal drücken, um nachzuladen... das soll nicht sein.

@Durcheinander:
Das liegt daran, dass die Grafik erst auf 640X480 runtergeschraubt werden muss. Ich werd ganz am Anfang noch ein Fenster machen, wo man die Auflösung auswählen kann (deshalb hab ich im GFX-Ordner auch 3 Ordner mit verschiedenen Auflösungen der Bilder)

Edit:
3. Problem (viertes?): der "gunin.wav"-Sound soll zu Ende gespielt werden, bevor der Reloadsound kommt... mit Delay kann man das nicht machen, da dann auch der Spielverlauf angehalten wird.

Verfasst: 20.12.2008 23:24
von Kaeru Gaman
also....

ich hab den überflüssigen sound und display und flip vor der hauptschleife mal auskommentiert,

außerdem hab ich das TransparentSpriteColor dahin gesetzt wo es hingehört:
unmittelbar hinter den lade-befehl.

so und dann hast du mal nicht aufgepasst:
ich hab dir extra noch geschrieben, dass du zu früh kopiert hast,
du hast bei der erstellung des MLB das & 2 nicht dabei, das muss sein.

und außerdem hast du nen tippfehler bei ersten laden vor der schleife:
Magazine wird mit e hinten geschrieben!
... Benutzung von EnableExplicit würde helfen.


> 3. Problem (viertes?): der "gunin.wav"-Sound soll zu Ende gespielt werden, bevor der Reloadsound kommt...

öhm... das muss ich mir nochma angucken.
kannst du die beiden nicht zu einem einzigen sound zusammensetzen?

Verfasst: 20.12.2008 23:29
von Kaeru Gaman
PS:

achja... an dem counter kannst du sehen, wie schnell deine Frames durchflitzen.

du solltest noch nen timer einbauen, damit du bei wesentlich weniger tics pro sekunde landest.

Verfasst: 20.12.2008 23:43
von Mok
Doppelposts noch dazu von einem Moderator, ay, ay, ay :mrgreen: (ne, is nur 'n Scherz)

Ich könnte es schon zu EINEM Sound machen, aber im Vista ist der kleine, smarte Audiorecorder (und -bearbeiter) von XP zu einem noch kleinerem Audiorecorder (und NICHT -bearbeiter) abgespeckt worden. :evil:

Na ja, 9,99*10^99[...]999,9-periodisch Dank, dass du den Code hingekriegt und unnötiges Zeug rausgerissen hast :)

Verfasst: 21.12.2008 00:08
von Kaeru Gaman
hm....

also ich hab jetzt mit nem dummen trick das mit den getrennten sound hinbekommen....

wie ist das mit dem nachladen... ohne klick sagtest du... ?

wie wärs mit rechtsclick für nachladen, und mit nem blindsound beim abdrücken bei leerem magazin?

Verfasst: 21.12.2008 00:30
von Fluid Byte
Vier Seiten ... :freak: :lol: :shock:

Verfasst: 21.12.2008 00:34
von Mok
Fluid Byte hat geschrieben:Vier Seiten ... :freak: :lol: :shock:
Ja und?
Drei Smilies [size=0]N00B[/size]

In meinem Post ist ein Super-1337-Easteregg versteckt! alle die ihn bearbeiten können, können ihn sehen :D

Verfasst: 21.12.2008 00:37
von Kaeru Gaman
mit Millisekunden-Timer, um die GameTics zu synchronisieren auf 25 Tics/sec

den blind-sound musst du mit dem richtigen ersetzen, ist jetzt der magazin-sound.

und das durchladen wird bei TimeCounter = #LoadWait - #BlindWait gemacht,
also wenn das Magazin-Stecken #BlindWait tics her ist.

wenn du #ShotWait größer machst, musst du drauf achten, dass es kleiner ist als #LoadWait - #BlindWait,
damit der sound nicht bei nem schussdurchlauf gespielt wird.

Code: Alles auswählen

                                      ;############################
                                      ;##  AIMER - VERSION 1.00  ##
                                      ;##     (C) 2008/2009      ##
                                      ;############################
 
;-Initialisierung:
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0 Or InitSound() = 0
  MessageBox_(#Null,"Eine oder mehrere Libraries für das Programm"+Chr(13)+"Aimer v1.00 konnten nicht initialisiert werden!"+Chr(13)+"Neuinstallation des Programmes könnte das Problem beheben.","Fehler beim Initialisieren",#MB_OK | #MB_ICONSTOP)
  End
EndIf

;KONSTANTEN
#NoAction = 0
#Released = 1
#Clicked  = 2
#Dragged  = 3 

#ShotWait  = 20
#LoadWait  = 40
#BlindWait = 10

Define MLB.l    ; Mouse Left Button 
Define MRB.l    ; Mouse Right Button 

;VARIABLEN
Global rand_backgrnd.b
Global released
Global MouseX, MouseY
Global magazine
Global erlaubnis

Magazine = 10
ShotsLeft = Magazine
erlaubnis = #True

;-Vorbereitung:
OpenScreen(640,480,32,"Aimer v1.00")

rand_backgrnd = Random(3)
rand_backgrnd = rand_backgrnd + 1

LoadSprite(013,"data\gfx\640x480\bckgrnd"+Str(rand_backgrnd)+".bmp",0)
LoadSprite(014,"data\gfx\640x480\crosshair.bmp",0)
  TransparentSpriteColor(014,RGB(255,0,255))

LoadSound(050,"data\sfx\gunshot.wav")
LoadSound(052,"data\sfx\gunin.wav")
LoadSound(053,"data\sfx\gunslide.wav")

SoundVolume(050,100)
SoundVolume(053,100)

; DisplaySprite(013,0,0)
; PlaySound(053)
; 
; FlipBuffers()

MouseLocate(640/2, 480/2)

Timer = ElapsedMilliseconds()
Duration = 40   ; 40ms => 25 Tics/sec



Repeat
  ExamineMouse()
  ExamineKeyboard()
  MouseX = MouseX()
  MouseY = MouseY()

  DisplaySprite(013,0,0)
    StartDrawing(ScreenOutput())
      DrawText(0,0,Str(TimeCounter), $00FFFF, $400000 )
      DrawText(570,0,"Shots: "+Str(ShotsLeft), $00FFFF, $400000 )
    StopDrawing()
    
    DisplayTransparentSprite(014,MouseX-37,MouseY-37)
  FlipBuffers()


If ElapsedMilliseconds() >= Timer + Duration
    Timer + Duration
; *******************************************
; *******************************************
    If MouseButton(#PB_MouseButton_Left)
      If MLB & 2
        MLB = #Dragged
      Else
        MLB = #Clicked
      EndIf
    Else
      If MLB & 2
        MLB = #Released
      Else
        MLB = #NoAction
      EndIf
    EndIf

    If MouseButton(#PB_MouseButton_Right)
      If MRB & 2
        MRB = #Dragged
      Else
        MRB = #Clicked
      EndIf
    Else
      If MRB & 2
        MRB = #Released
      Else
        MRB = #NoAction
      EndIf
    EndIf

    TimeCounter -1
    If TimeCounter = #LoadWait - #BlindWait
       PlaySound(053)
    EndIf
    If TimeCounter <= 0       ; nur auf Mausklick reagieren wenn abgelaufen
      If MLB = #Clicked
        If ShotsLeft > 0
          PlaySound(050)
          ShotsLeft -1      ; einen schuss abziehen
          TimeCounter = #ShotWait   ; Pause bei Schuss
        Else
          PlaySound(052)
          TimeCounter = #BlindWait  ; Pause bei Blind 
        EndIf
      EndIf

      If MRB = #Clicked
        If ShotsLeft = 0
          PlaySound(052)
          ShotsLeft = Magazine    ; nachladen
          TimeCounter = #LoadWait  ; Pause bei Nachladen
        EndIf
      EndIf
    EndIf
; *******************************************
; *******************************************
EndIf

Until KeyboardPushed(#PB_Key_Escape)

PS:
> alle die ihn bearbeiten können, können ihn sehen

jeder, der ihn zitieren kann, kann es sehen... /:->

Verfasst: 21.12.2008 00:37
von Fluid Byte
In meinem Post ist ein Super-1337-Easteregg versteckt!
Denn nehme ich selbstverständlich alles zurück! :mrgreen:

Verfasst: 21.12.2008 00:41
von Mok
Fluid Byte hat geschrieben:
In meinem Post ist ein Super-1337-Easteregg versteckt!
Denn nehme ich selbstverständlich alles zurück! :mrgreen:
101 PWN3D, F1U!D B`/73 (das kommt vom cs zocken)
wr nur n scherz, aber wenn man N00B mit Size 0 schreibt, dann sieht mans im Post nicht - GARnicht - und wenn man bearbeitet, dann schon... die Technik von heute :mrgreen:

@Kaeru:
Jo, probier ich morgen, heute bin ich schon zu müde, aber Danke (ich glaub du hast mehr am Prog gemacht als ich <) )

Edit:
Ich hab mal schnell Kauer auf Kaeru umgewandelt... ich muss wirklich dringend ins Bett!
Bild
Bild