Français
Forum

Sprites avec clavier bewegen

 
je voudrais un Sprite avec den Tasten bewegen.
mon erster Versuch ist rien plus comme un gekürztes un Beispiel avec qui Biene.
je suis mir mais assez sûrement,
dass qui Tastaturabfrage et Movesprite so pas kombiniert volonté.
(Scrollen des Hintergrundes ist dans den Beispielen oui prima erklärt.)
j'ai la fois une Versuch sans Prospeed geschrieben (V 7.0) et là habe je simple
seulement x% augmenté bzw. verkleinert et ensuite MCop-iert. (siehe unten et derrière -----?????).
allez que voici etwa aussi ?
peut-être hat einer aussi déjà un kleines Programme geschreiben wohin je blos
abgucken brauche ?
Jedenfalls im Voraus vielen Dank et nochmal:
Guten Glissement et un gesunde Neues l'an !
Jürgen.
KompilierenMarqueSéparation
------------
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/dispose/'>Dispose bereich#
 
24.04.2004  
 



Hi,

la hâte dus déjà avec ProSpeeds GetSystemKey() probiert ?
MoveSprite() et GetSystemKey() müßten sans Probleme kombinierbar son...

oui, également à alle une grandiosen Glissement pour 2004 !!!

Salut, Frank
 
24.04.2004  
 



Hi Frank,
GetSytemKey ist pas cela Problem. (Im Übringen sogar quelque chose langsamer comme getkey(.)).
Um une Jump & Run trop écrivons brauche je deine DLL, là vous qui Funktion SetBackAutoCollision contient et avant allem une Tabelle erstellt, la mienne Figur (sur qui weißen Felder qui Fensterkopie) führt.
mais oui c'est ca avec cette Funktion habe je mon Probleme:
si je qui Figur per MoveSprite mittels Tasten bewege et SetBackAutoCollision sur Kollision gestellt ist, hüpft qui Figur. Seitlich peux je qui Figur ensuite gar pas plus bewegen.
alors qui Contrôle per bouton et SetBackAutoCollision sommes cela eigentliche Problem. peut-être peux Du mir aider, là je crois alle Varianten ausprobiert trop avons.
(Im Spieleforum gehts anscheinend um cela gleiche Problem)
Ansonsten un gesundes nouveau l'an 2004.
Salut Jürgen!
 
24.04.2004  
 



Hi,

dans diesem le cas tu viens avec MoveSprite() pas toujours plus.
Hierzu müßtest du SetSpritePos() benutzen.
Hatte selber gestern cela gleiche Problem et SetSpritePos elegant gelöst.

Salut, Frank
 
24.04.2004  
 



Hi Frank
Habe je oui aussi déjà probiert, mais SetBackAutoCollision funktioniert ensuite pas.
si je pas trop nerve, peut-être hat irgenwer Schonmal un kleines Beispiel programmiert ? ou bien la hâte Du peut-être une Auszug aus Deinem Programme ?
je entschuldige pour qui Mühe, qui je bisher gemacht habe et bedanke mich pour Dein Verständnis.
salut Jürgen.
 
24.04.2004  
 



allô Jürgen,

tu fais aucun Mühe !
Pour cette ist cet Forum doch gedacht, um Fragen trop répondre !

je hab deinen Source quelque chose modifié.
cela Sprite peux maintenant avec den Cursortasten dedans bestimmter Grenzen (deiner l'élection) gesteuert volonté. Sogar diagonal !
cela ganze sollte sans Probleme avec SetBackAutoCollision() kombinierbar son...
Pour qui Tastenabfrage erscheint mir qui API GetKeyState() am idealsten.
WaitInput peux du pas benutzen, es sei car, tu mets une kleinen Minuteur. mais ist oui aussi gar pas nötig...

ici qui Code:
KompilierenMarqueSéparation
Declare 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&
Dispose bereich#

Salut, Frank
 
24.04.2004  
 



Hi Frank,
hatte bisher aucun Zeit. alors vielen Dank !!
 
24.04.2004  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

2.558 Views

Untitledvor 0 min.
macuto20.11.2012
Peter Max Müller29.09.2012
Gabor Krizsma08.08.2011

Themeninformationen

cet Thema hat 1 participant:

unbekannt (7x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie