Foro | | | | | Yo möchte una Sprite con el Tasten bewegen. Mein erster Intento es nichts más como una gekürztes una Ejemplo con el Biene. Yo bin me aber bastante sicher, dass el Tastaturabfrage y Movesprite así no kombiniert voluntad. (Scrollen des Hintergrundes es en el Beispielen sí prima erklärt.) Yo habe veces a la Intento sin Prospeed geschrieben (V 7.0) y como Yo simplemente sólo x% aumenta o. verkleinert y luego MCop-iert. (siehe unten y hinter -----?????). Geht que aquí etwa auch ? Tal vez ha uno auch ya una kleines Programa geschreiben wo Yo blos abgucken brauche ? Jedenfalls en el Voraus vielen Dank y otra vez: Feliz y una gesunde Neues Jahr ! Jürgen. KompilierenMarcaSeparación------------
Declare HWnd&, Bereich#, Neu&, Background&
Declare fensterkopie1&, fensterkopie2&, spriteplane&
Declare sprite1&, x%, y%, ende%
Dim Bereich#,512
X% = 100
y% = 200
$I Prospeed_Funktionen.inc
neu&=usedll("ProSpeed.dll")
def getKey(1) !"user32","GetKeyState"
WindowStyle 26
cls
SetTrueColor 1
Hwnd& = %HWnd
string bereich#,0="bmps/Hintergrund.jpg"
background&=LoadExtImage(bereich#)
CopyExtBmp(%HDC, 0,0,800,400,background&,0,0,0)
CopyExtBmp(%HDC2,0,0,800,400,background&,0,0,0)
fensterkopie1&=CreateExtBmp(%HDC,800,400)
fensterkopie2&=CreateExtBmp(%HDC,800,400)
CopyExtBmp(fensterkopie1&,0,0,800,400,%HDC,0,0,0)
CopyExtBmp(fensterkopie2&,0,0,800,400,%HDC,0,0,0)
string bereich#,0="bmps/sprites.gif"
spriteplane&=LoadExtImage(bereich#)
sprite1&=InitSprite(spriteplane&,%HDC,fensterkopie1&,fensterkopie2&,0,0,24,18,4,1,6,x%,y%,1,1)
SetSpriteSpeed (sprite1&,10,0)------????
---------------------------
Whilenot ende%
waitinput------????
sleep 10
IF @equ(%key,2) OR @equ(%key,27)
ende%=1
Endif
If @LT(getkey(49),-126)
sub x%,2
MoveSprite(sprite1&,x%,y%)------------????
Hier stünde:
Startpaint -1
MCopyBmp "Sprite nach Fensterkopie", x%, y%
u. s. w......
EndPaint
EndIf
If @LT(getkey(51),-126)
add x%,2
MoveSprite(sprite1&,x%,y%)------------????
EndIf
Mcopy "Fensterkopie auf den Bildschirm
wend
Wo würde ich den Sprung in die PROC hinschreiben die y% für einen Sprung errechnet?
=========================
DeleteAllSprites()
FreeExtBmp(background&)
FreeExtBmp(spriteplane&)
FreeExtBmp(fensterkopie1&)
FreeExtBmp(fensterkopie2&)
freedll neu&
../../function-references/XProfan/disponer/'>Disponer bereich#
|
| | | | |
| | | Hi,
Hast dus ya con ProSpeeds GetSystemKey() probiert ? MoveSprite() y GetSystemKey() müßten sin Problemas kombinierbar ser...
Sí, ebenfalls a todos una grandiosen Resbalón después de 2004 !!!
Saludo, Franco |
| | | | |
| | | Hi Franco, GetSytemKey es no el problema. (Im Übringen incluso algo langsamer como getkey(.)). Um una Jump & Run a escribir brauche Yo deine DLL, como ellos el Función SetBackAutoCollision enthält y antes allem una tabla erstellt, el mi Figur (en weißen Felder el Fensterkopie) führt. Aber genau con dieser Función Yo mi Problemas: Wenn Yo el Figur por MoveSprite mittels Tasten bewege y SetBackAutoCollision en Kollision gestellt es, hüpft el Figur. Seitlich kann Yo el Figur entonces nada mehr bewegen. Also el Steuerung por Taste y SetBackAutoCollision son el eigentliche Problema. Tal vez kannst Usted me helfen, como Yo glaube todos Varianten ausprobiert a haben. (Im Spieleforum gehts anscheinend en el gleiche Problema) Ansonsten una gesundes neues Jahr 2004. Saludo Jürgen! |
| | | | |
| | | Hi,
en diesem Fall kommst du con MoveSprite() no siempre más. Hierzu müßtest du SetSpritePos() benutzen. Hatte selber gestern el gleiche Problema y SetSpritePos elegant gelöst.
Saludo, Franco |
| | | | |
| | | Hi Franco Posesiones Yo en efecto ya probiert, aber SetBackAutoCollision funktioniert entonces no. Wenn Yo no a muy nerve, tal vez ha irgenwer schonmal una kleines Ejemplo programmiert ? Oder hast Usted tal vez una Auszug de Deinem Programa ? Yo entschuldige para el Mühe, el Yo bisher gemacht habe y bedanke mich para Su Verständnis. Tschüß Jürgen. |
| | | | |
| | | ¡Hola Jürgen,
du machst no Mühe ! Dafür es dieses Foro doch pensamiento, en Fragen a beantworten !
Yo deinen Source algo verändert. Das Sprite kann ahora con el Cursortasten innerhalb bestimmter Grenzen (deiner Wahl) gesteuert voluntad. Sogar diagonal ! Das todo debería sin Problemas con SetBackAutoCollision() kombinierbar ser... Für el Tastenabfrage erscheint me el API GetKeyState() al idealsten. WaitInput kannst du no benutzen, lo sei porque, du setzt una pequeña Temporizador. Aber es sí auch nada nötig...
Hier el Code: KompilierenMarcaSeparaciónDeclare HWnd&, Bereich#, Neu&, Background&
Declare fensterkopie1&, fensterkopie2&, spriteplane&
Declare sprite1&,x&,y&,key&
Declare speedx&,speedy&,randl&,randr&,rando&,randu&
Dim Bereich#,512
SetTrueColor 1
$I Prospeed_Funktionen.inc
neu&=usedll("ProSpeed.dll")
DEF GetKeyState(1) !"USER32","GetKeyState"
DEF IsKey(1) and(GetKeyState(&(1)),$8000)
WindowStyle 26
Window 0,0-800,400
Hwnd& = %HWnd
Aktuelle Position
x&=100
y&=100
Geschwindigkeit des Sprites
speedx&=2
speedy&=2
Randgrenzen absolut (links, oben, rechts und unten)
randl&=0
rando&=0
randr&=200
randu&=200
string bereich#,0="bmps/Hintergrund.jpg"
background&=LoadExtImage(bereich#)
CopyExtBmp(%HDC, 0,0,800,400,background&,0,0,0)
CopyExtBmp(%HDC2,0,0,800,400,background&,0,0,0)
fensterkopie1&=CreateExtBmp(%HDC,800,400)
fensterkopie2&=CreateExtBmp(%HDC,800,400)
CopyExtBmp(fensterkopie1&,0,0,800,400,%HDC,0,0,0)
CopyExtBmp(fensterkopie2&,0,0,800,400,%HDC,0,0,0)
string bereich#,0="bmps/sprites.gif"
spriteplane&=LoadExtImage(bereich#)
sprite1&=InitSprite(spriteplane&,%HDC,fensterkopie1&,fensterkopie2&,0,0,24,
18,4,1,6,100,100,speedx&,speedy&)
While 1
Sleep 1
key&=GetSystemKey()
Case (key&=2 OR key&=27):BREAK
Steuern per Cursortasten
Case IsKey($25):x&=x&-speedx& links
Case IsKey($27):x&=x&+speedx& rechts
Case IsKey($26):y&=y&-speedy& oben
Case IsKey($28):y&=y&+speedy& unten
Stößt Sprite an Randgrenze ?
Case x&<=randl&:x&=randl&
Case x&>=randr&:x&=randr&
Case y&<=rando&:y&=rando&
Case y&>=randu&:y&=randu&
MoveSprite(sprite1&,x&,y&)
Wend
DeleteAllSprites()
FreeAllExtBmps()
freedll neu&
Disponer bereich#
Saludo, Franco |
| | | | |
| | | Hi Franco, hatte bisher no Tiempo. Also vielen Dank !! |
| | | | |
|
RespuestaThemeninformationenDieses Thema ha 1 subscriber: |