Anfang von strategiespiel
Übersicht

![]() |
grafeBetreff: Anfang von strategiespiel |
![]() Antworten mit Zitat ![]() |
---|---|---|
hallo zusammen,
ich bin neu im forum(ich wusste gar nicht das es das forum gibt)^^ und habe schon eine frage! ![]() ich habe angefangen ein 3d strategiespiel zu proggen und hab jetzt schon bemerkt das es seeehr schwer ist^^ hier mal den code^^ Code: [AUSKLAPPEN] Graphics3D 1024,768,32,1
SetBuffer BackBuffer() HidePointer ;Terrain plane=CreateTerrain(2048) PositionEntity plane,-1000,0,-1000 grass=LoadTexture("3d\Grass.bmp") EntityTexture plane,grass ScaleTexture grass,10,10 EntityType plane,2 TerrainDetail plane,400,True TextureHeight ( grass ) ; Enable/disable terrain shading TerrainShading plane,20 ;--------------------------------- Collisions 1,2,2,2 light=CreateLight() RotateEntity light,30,-10,20 cube=CreateCube() ScaleEntity cube,1,1,1 PositionEntity cube,0,0,0 EntityType cube,2 RotateEntity cube,0,0,90 ;minimap minimap= CreateCamera() MoveEntity minimap,0,100,0 RotateEntity minimap,90,0,0 CameraViewport minimap,0,0,100,100 Kamera = CreateCamera() MoveEntity Kamera,0,30,0 RotateEntity Kamera,90,0,0 CameraViewport Kamera ,100,0,924,630 CameraRange kamera,1,50 CameraFogMode kamera,1 CameraFogRange kamera,30,50 ;WireFrame 0 pivot=CreatePivot() PositionEntity pivot,0,0,0 EntityParent Kamera,pivot minimapplayer=CreateCone() EntityParent minimapplayer,kamera PositionEntity minimapplayer,0,0,0 ScaleEntity minimapplayer,1,4,4 RotateEntity minimapplayer,0,90,0 EntityColor minimapplayer,100,0,256 MoveMouse 30,30 Timer = CreateTimer(30) Repeat Cls Color 255,255,255 Text 10,120,"MouseZ(): "+MouseZ() Zoom = MouseZ() If Zoom < 1 Then Zoom = 1 CameraZoom Kamera,Zoom If MouseY() < 20 Then MoveEntity pivot,0,0,2 ElseIf MouseY() > 630 Then MoveEntity pivot,0,0,-2 ElseIf MouseX() < 100 Then MoveEntity pivot,-1.5,0,0 ElseIf MouseX() > 1010 Then MoveEntity pivot,1.5,0,0 ;ElseIf MouseZ() >5 ;RotateEntity Kamera,40,0,0 ElseIf KeyDown(208) TurnEntity Kamera,1,0,0 ElseIf KeyDown(200) TurnEntity Kamera,-1,0,0 EndIf ;graphische extras ;streifen=LoadImage("Bilder\streifen.jpg") ;ScaleImage streifen,0.7,1 ;DrawImage streifen,83,-220 ;streifen2=CopyImage(streifen) ;RotateImage streifen2,90 ;DrawImage streifen2,0,645 Plot MouseX(), MouseY() WaitTimer Timer RenderWorld Flip Until KeyHit(1) End ich hab jetzt eben eine frage: wie soll ich es schaffen den würfel auswählen und in dan bewegen wie später ein manzgi wäre dankbar für erfahrene antworten ![]() |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Lade dir die deutsche Online Hilfe herunter und schau dir die Pick Befehle an.
Und nimm das Laden des Bildes vor die Schleife... |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
grafe |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok danke^^ | ||
![]() |
grafe |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab noch eine frage wie mache ich einen cursor bei mir funzt es einfach net ![]() |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
In 3D renderst du die Szene mit Renderworld![]() Und benutzte den Edit Button, bevor du dich mit doppelposts unbeliebt machst. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
grafe |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok^^
jetzt funktioniert es ![]() Edit: ich hab jetzt das mit dem cub auswählen geschaft er wird dann blau aber wenn ich weg klicke wird er nicht grün ![]() hier der code Code: [AUSKLAPPEN] auswahlen=CameraPick(kamera,mx,my)
If auswahlen=0 And MouseHit(1) Then EntityColor cube,0,0,256 If auswahlen <>0 And MouseHit(1)Then EntityColor cube,0,256,0 |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du machst den Würfel grün, wenn man auf ihn klickt... | ||
Phlox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Quatsch. 256 wird MOD 255 genommen (=1).
Der Würfel müsste (fast) schwarz sein. |
||
![]() |
grafe |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich habs jetzt kapiert ich habe einen fehler gemacht(was leider alzu oft passiert)^^
wen ich nicht auf dem cube war und geklickt habe wurde er blau ich wollte es umgekehrt ![]() |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Außerdem würde ich dir empfehlen, nicht mehrmals hintereinander MouseHit![]() Code: [AUSKLAPPEN] auswahlen=CameraPick(kamera,mx,my)
mhit=MouseHit(1) If auswahlen=0 And mhit Then EntityColor cube,0,0,256 If auswahlen <>0 And mhit Then EntityColor cube,0,256,0 Gutes Gelingen weiterhin und Willkommen im Forum ![]() mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
grafe |
![]() Antworten mit Zitat ![]() |
---|---|---|
phlox hat Folgendes geschrieben: Quatsch. 256 wird MOD 255 genommen (=1).
Der Würfel müsste (fast) schwarz sein. @phlox er ist ganz grün ![]() ok danke ![]() aber bei mir ist schon wider ein problem aufgetaucht: wenn ich zu weit oben bin muss ich links neben den cube klicken nur dann wird er grün ![]() Edit: ich hab ein neues problem: ich hab jetzt 2 cubes und ich möcht aber nur einen auswählen aber wenn ich den einten wähle wird der andere auch grün ![]() was kan ich da machen?? ich habs auch schon mit function ausprobiert aber es klappt einfach nicht. wäre froh wenn mir jemand einen tipp geben könnte ![]() |
||
![]() |
grafe |
![]() Antworten mit Zitat ![]() |
---|---|---|
hallo???? | ||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Versuchs mal mit Types.
Btw Doppelposts sind unerwünscht. |
||
gigi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kennst du dich mit Types aus? Wenn nein, lies dir tuts u.s.w. dazu durch,Types sind wirklich praktisch.
Du kannst z.b. für das Auswählen ein eigenes TYPE-Feld machen,also für jede TYPE-einheit immer prüfen ob sie ausgewählt ist. Wenn ja dann machst du ihn grün wenn nicht,nicht. Kleines Beispiel:(Leertaste für neues objekt) Code: [AUSKLAPPEN] Graphics3D 800,600
SetBuffer BackBuffer() cam=CreateCamera() PositionEntity cam,0,0,-10 Type box Field auswahl,objekt End Type While Not KeyHit(1) mx=MouseX() my=MouseY() khl=KeyHit(57) For i.box=Each box i\auswahl=CameraPick(cam,mx,my) If i\auswahl<>0 Then EntityColor i\objekt,100,0,0 EndIf If i\auswahl=0 Then EntityColor i\objekt,255,255,255 EndIf TurnEntity i\objekt,1,1,1 Next If khl Then i.box=New box i\objekt=CreateCube() PositionEntity i\objekt,Rand(-3,3),Rand(-3,3),0 EntityPickMode i\objekt,2 EndIf UpdateWorld RenderWorld Rect mx,my,10,10 Flip Wend End |
||
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185 |
![]() |
grafe |
![]() Antworten mit Zitat ![]() |
---|---|---|
vielen dank für den tipp XD
ps: wen ich edit mache bemerkt es niemand^^ edit: leider ist dein programm nicht was ich suche. ich möchte das man einzelne cubes auswählen kann und nicht alle auf einmal^^ |
||
gigi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
upps,hab den code nicht getestet. Ich denke schon das du so etwas brauchst,denn wenn du ein Strategiespiel proggen willst kannst du nicht mit Variablen arbeiten(zumindest was die Einheiten betrifft).
Wenn du dir meinen Code einmal anschaust wirst du feststellen das man die quader auch einzeln ansprechen kann. Probier es einmal aus! EDIT: Hier der richtige code:Code: [AUSKLAPPEN] Graphics3D 800,600
SetBuffer BackBuffer() cam=CreateCamera() PositionEntity cam,0,0,-10 Type box Field auswahl,objekt End Type While Not KeyHit(1) mx=MouseX() my=MouseY() khl=KeyHit(57) For i.box=Each box i\auswahl=CameraPick(cam,mx,my) If i\auswahl=i\objekt Then EntityColor i\objekt,100,0,0 EndIf If i\auswahl=0 Then EntityColor i\objekt,255,255,255 EndIf TurnEntity i\objekt,1,1,1 Next If khl Then i.box=New box i\objekt=CreateCube() PositionEntity i\objekt,Rand(-3,3),Rand(-3,3),0 EntityPickMode i\objekt,2 EndIf UpdateWorld RenderWorld Rect mx,my,10,10 Flip Wend End |
||
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185 |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich glaube es ist besser, wenn man es so macht:
Code: [AUSKLAPPEN] Graphics3D 800,600 SetBuffer BackBuffer() cam=CreateCamera() PositionEntity cam,0,0,-10 Type box Field auswahl,objekt End Type While Not KeyHit(1) mx=MouseX() my=MouseY() khl=KeyHit(57) auswahl=CameraPick(cam,mx,my) For i.box=Each box If auswahl=i\objekt Then EntityColor i\objekt,100,0,0 EndIf If auswahl<>i\objekt Then EntityColor i\objekt,255,255,255 EndIf TurnEntity i\objekt,1,1,1 Next If khl Then i.box=New box i\objekt=CreateCube() PositionEntity i\objekt,Rand(-3,3),Rand(-3,3),0 EntityPickMode i\objekt,2 EndIf UpdateWorld RenderWorld Rect mx,my,10,10 Flip Wend End |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich möchte auch nochmal kurz mitmischen, nämlich:
Warum soll man da Types verwenden? So wie ich es verstanden habe, soll schlicht und ergreifend ein Entity ausgewählt werden, und kein zweites markiert werden? Warum dann nicht so: Code: [AUSKLAPPEN] Graphics3D 800,600
SetBuffer BackBuffer() SeedRnd MilliSecs() cam=CreateCamera() PositionEntity cam,0,0,-10 timer=CreateTimer(50) While Not KeyHit(1) mx=MouseX() my=MouseY() khl=KeyHit(57) If picked<>0 Then EntityColor picked,255,255,255 EndIf picked=CameraPick(cam,mx,my) If picked<>0 Then EntityColor picked,0,255,0 EndIf If khl Then box=CreateCube() PositionEntity box,Rand(-3,3),Rand(-3,3),0 EntityPickMode box,2 EndIf UpdateWorld RenderWorld Rect mx,my,10,10 Flip 0 WaitTimer timer Wend End |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
gigi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich dachte das Types passender wären,da er ja ein Strategiespiel proggen will. Auf jeden Fall hat er von uns nun genug Anregungen^^ | ||
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185 |
![]() |
grafe |
![]() Antworten mit Zitat ![]() |
---|---|---|
wooww,
danke für die vielen tipps bin völlig überwältigt ![]() ps: jop ich habe genug "anregungen" wen ich ein problem habe schreibe ich es einfach rein XD edit: es gibt aber ein problem wen ich jetzt noch mousehit hinzufüge kann ich das objekt nicht wegklicken ![]() hier den code: Code: [AUSKLAPPEN] Graphics3D 800,600
SetBuffer BackBuffer() SeedRnd MilliSecs() cam=CreateCamera() PositionEntity cam,0,0,-10 timer=CreateTimer(50) While Not KeyHit(1) mx=MouseX() my=MouseY() khl=KeyHit(57) mhit=MouseHit(1) mhit2=MouseHit(2) picked=CameraPick(cam,mx,my) If picked<>0 And mhit Then EntityColor picked,0,255,0 EndIf If picked And mhit2 Then EntityColor picked,255,255,255 EndIf If khl Then box=CreateCube() PositionEntity box,Rand(-3,3),Rand(-3,3),0 EntityPickMode box,2 EndIf UpdateWorld RenderWorld Rect mx,my,10,10 Flip 0 WaitTimer timer Wend End |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group