Also zu dem Video: ich habs nur kurz hingerotzt. Ich mach ja keinen Horrorfilm, sondern ein SPiel^^
Beiträge von Irrlicht
-
-
Hallo,
heute möchte ich ein Projekt von mir vorstellen, an dem ich seit einigen Wochen mit größter Leidenschaft arbeite. Es wird ein 3D Spiel, welches ich derzeit mit der Irrlicht Engine entwickle. Eine explizite Geschichte hab ich mir für das Spiel noch nicht ausgedacht, jedoch verläuft das Game nach folgendem Prinzip: Allein mit einer myyyyystischen Kamera gelingt es, verlassene Seelen, Dämonen und Monster einzufangen und eliminieren.In den letzten 2 oder 3 Monaten ist mir erneut bewusst geworden, welch enorme Wirkung der richtige Einsatz von Licht und Schatten und anderen Elementen hat.
Hier sind ein paar wenige Momente meines Spiels festgehalten, viel spaß beim anschaun!!!
Memento auf Youtube
Ich möchte die Gelegenheit nutzen, um ein paar User für ein kleines Team zu rekrutieren. Ich bräuchte natürlich noch eine gute Story & jemanden, der kreative Einflüsse einbringt... Leute, die gut mit Blender o.ä. umgehen können, sind sehr sehr sehr gerne gesehn.Demnächst wird es dann den Quelltext geben.
Gruß, Irrlicht /2$Billie -
Komischerweise gabs das Problem nur bei einem bestimmten node.Ich verwende jetzt ein anderes node, bzw. ich bin wieder bei meinem Hauptprojekt angelangt. Trotzdem danke für die hilfe.
... Irgendwo tief im Forum versteckt liegt mein alter Thread (ich glaub du, aspirinjunkie, hast mir sogar die Lösung mit atan2 damals gegeben.) -
Hallo, vor geraumer Zeit wollte ich wissen, wie man es hinbekommt, dass ein node in Irrlicht sich der Kamera zuwendet, bzw. sich dementsprechend rotiert .
[autoit]
Dazu hab ich folgende Lösung mit dem atan2 erhalten:Func ATan2(Const $ny, Const $nx)
[/autoit][autoit][/autoit][autoit]
Local $nResultIf IsNumber($nY) = 0 Then
[/autoit]
SetError(1)
Return 0
ElseIf IsNumber($nX) = 0 Then
SetError(1)
Return 0
EndIf
If $nX = 0 Then
If $nY > 0 Then
$nResult = $PI / 2.0
ElseIf $nY < 0 Then
$nResult = 3.0 * $PI / 2.0
Else
SetError(2)
Return 0
EndIf
ElseIf $nX < 0 Then
$nResult = ATan($nY / $nX) + $PI
Else
$nResult = ATan($nY / $nX)
EndIf
While $nResult < 0
$nResult += 2.0 * $PI
WEnd
Return $nResult
EndFunc ;==>ATan2
[autoit]
Eben hab ich ne Funktion von C++ in Autoit übersetzt:func _facetarget()
[/autoit]
;$x_s= $x_start
;$x_e=$x_ende
; Die zwei vektoriellen Position werden dadurch bezeichnet
; Die Funktion ist vorerst nur für die x_werte
$myrotation_y= atan($z_s/$x_s)*180/$pi
if atan($x_e-$x_s)>0 then
$myrotation_y= 90 - $myrotation_y
elseif atan($x_e-$x_s)<0 then
$myrotation_y= -90 - $myrotation_y
endif
;$myrotation_y-=90
_irrsetnoderotation($triax_node, 0, $myrotation_y, 0)
endfunc
Die Funktionen scheinen mir nur Näherungswerte für die Rotationen zu liefern. Wie komm ich auf die exakten Werte? -
naja en schalter für den auslöser zum beispiel. und blutflecken wären super....
-
sieht schonmal gut aus. die chinesischen schriftzeichen sind jedoch nicht unbedingt notwendig. du könntest noch irgendwelche schalter einfügen...
-
lass deiner kreativität erstmal freien lauf
-
Hallo! Nach jedem Abitur arbeite ich wieder effektiv und aktiv an diesem Projekt weiter. Ich bräuchte nun diese Benutzeroberfläche. Es wäre nett, wenn jemand daran arbeiten könnte. Gruß, Irrlicht/Billie
-
If @hour>= 8 and @hour<9 then Msgbox(0, "", "")
-
Ich bezweifle, dass es geht, Buttons in einen Listview zu füllen. Aber rein theoretisch können Listview-items als Buttons fungieren.
Dh, Wenn man auf ein bestimmtes Item des Listviews klickt, kann auch eine gewisse Funktion ausgeführt werden. -
Ähm, wie wärs denn mit einem Listview?
-
Hier die Komplettlösung
[autoit][/autoit][autoit][/autoit][autoit]#include <GUIConstantsEx.au3>
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
#include <WindowsConstants.au3>Dim $Oben = 10 ;
[/autoit][autoit][/autoit][autoit]
Dim $Links = 10
Dim $Spalten = 4
Dim $Buttonbreite = 200
Dim $Buttonhoehe = 100
Dim $Spaltenstart = 0
local $button[1000]
local $x_counter=0
local $y_counter=0$Form1 = GUICreate("Form1", ($buttonbreite+10)*$spalten, 443, 192, 124, BitOR($WS_MAXIMIZEBOX,$WS_MINIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_SYSMENU,$WS_CAPTION,$WS_OVERLAPPEDWINDOW,$WS_TILEDWINDOW,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_TABSTOP,$WS_BORDER,$WS_CLIPSIBLINGS))
[/autoit][autoit][/autoit][autoit]
GUISetState(@SW_SHOW)
;GUISetState(@SW_MAXIMIZE)$var = IniReadSection(@ScriptDir & '\Namen.ini',"Name")
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
If @error Then
MsgBox(4096, "", "Es ist ein Fehler aufgetreten. Warscheinlich keine INI Datei vorhanden.")
Else
For $i = 1 To $var[0][0]
$button[$i] = GUICtrlCreateButton($var[$i][1],$Links+($buttonbreite*$x_counter),($buttonhoehe*$y_counter),$Buttonbreite,$Buttonhoehe); da komme ich nicht weiter!!!
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
$x_counter+=1
If $x_counter=$spalten then
$y_counter+=1
$x_counter=0
endifnext
[/autoit][autoit][/autoit][autoit]
EndIfWhile 1
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
$nMsg = GUIGetMsg()
for $i= 1 to $var[0][0]
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $button[$i]
Msgbox(0, "", $var[$i][1] &" wurde ausgewählt")
EndSwitch
next;;;alternativ:
[/autoit]
; for $i= 1 to $var[0][0]
;If $nMsg=$button[$i] then Msgbox(0, "", $var[$i][1] &" wurde ausgewählt")
;next
WEnd
oder mit automatischer Anpassung des Fensters:Spoiler anzeigen
[autoit]#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.6.1
[/autoit] [autoit][/autoit] [autoit]
Author: myNameScript Function:
[/autoit] [autoit][/autoit] [autoit]
Template AutoIt script.#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]; Script Start - Add your code below here
[/autoit] [autoit][/autoit] [autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>Dim $Oben = 20 ;
[/autoit] [autoit][/autoit] [autoit]
Dim $Links = 20
Dim $Spalten = 4
$window_width=700
Dim $Buttonbreite = $window_width/$spalten
Dim $Buttonhoehe = 100
Dim $Spaltenstart = 0
local $button[1000]
local $x_counter=0
local $y_counter=0$Form1 = GUICreate("Form1", $window_width, 443, 192, 124, BitOR($WS_MAXIMIZEBOX,$WS_MINIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_SYSMENU,$WS_CAPTION,$WS_OVERLAPPEDWINDOW,$WS_TILEDWINDOW,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_TABSTOP,$WS_BORDER,$WS_CLIPSIBLINGS))
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW)
;GUISetState(@SW_MAXIMIZE)$var = IniReadSection(@ScriptDir & '\Namen.ini',"Name")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
If @error Then
MsgBox(4096, "", "Es ist ein Fehler aufgetreten. Warscheinlich keine INI Datei vorhanden.")
Else
For $i = 1 To $var[0][0]
$button[$i] = GUICtrlCreateButton($var[$i][1],($buttonbreite*$x_counter),$oben+($buttonhoehe*$y_counter),$Buttonbreite,$Buttonhoehe); da komme ich nicht weiter!!!
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
$x_counter+=1
If $x_counter=$spalten then
$y_counter+=1
$x_counter=0
endifnext
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
EndIf
$zeilenzahl= $var[0][0]/4
$window_height= $zeilenzahl*$buttonhoehe
winmove("Form1", "", "", "", $window_width, $window_height)
While 1
$nMsg = GUIGetMsg()
for $i= 1 to $var[0][0]
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $button[$i]
Msgbox(0, "", $var[$i][1] &" wurde ausgewählt")
EndSwitch
next;;;alternativ:
[/autoit]
; for $i= 1 to $var[0][0]
;If $nMsg=$button[$i] then Msgbox(0, "", $var[$i][1] &" wurde ausgewählt")
;next
WEnd
Gruß, Irrlicht -
....Kannst du mal bitte die Ini hochladen?
-
Wenn du unbedingt ne switch-abfrage haben willst kannst du's so machen:
[autoit]while 1for $i= 1 to $array_max
[/autoit]
$Msg = GUIGetMsg()
switch $msg
case $button[$i]
//Funktionen
endswitch
next
wend
[autoit]
allerdings wäre ne if-abfrage besser, da nur einzelne werte von $msg abgefangen werdenwhile 1
[/autoit]
for $i= 1 to $arraymax
$Msg = GUIGetMsg()
if $msg= $button[$i] then ;;;
next
wend -
Also ich weiß nicht, ob du das mit Spalten schon optimal gelöst hast. Für eine Pinnwand auf meiner Website habe ich ähnliches gemacht:
Bei jeder Erstellung eines Feldes wurde eine Variable x um den Wert 1 erweitert. Wenn der Wert dann 4 betrug (4 Spalten!), wurde eine weitere Variable y verwendet und x wurde auf null gesetzt. y wurde um eins erhöht, da die nächste Zeile folgte. Die Koordinaten der Felder waren mit den Variablen (quasi als Faktoren) gekoppelt, dh. x_pos= x * 30. So konnte ich eine coole Pinnwand programmierenZu deinem Switch-Problem:
Die Switch-Schleife würde ich mit einer For-next-Schleife verwurschteln, wobei so alle Arrayelemente durch die Erhöhung von i abgefragt werden können. -
Wie kann man es schaffen, 6 Posts ohne Satzzeichen (Ausnahme Gänsefüßchen) zu erstellen?
Edit: Stimmt, im ersten Post gibts das ein oder andere Satzzeichen -
So, das ganze läuft nun.
Das garantiere ich -
Naja die Vorgeschichte ist nicht ganz korrekt, aber ok
-
Halli hallo,
heute bin ich stolz, mal wieder eines meiner Irrlichtwerke präsentieren zu dürfen: Mr Bubble.
[Blockierte Grafik: http://www.mediafire.com/convkey/6792/osexmpu4qs4of9x5g.jpg]Mit Mr Bubble wurde mein Beitrag zu einem kleinen Wettbewerb mit BadBunny gebildet. Vor ein paar Monaten, hatten wir die Idee, Bubble Trouble in AutoIt umzusetzen. Badbunny hat dies in 2D mit GDI+ getan, während ich mich der dritten Dimension und der Irrlicht Engine bedient hab. Meine Interpretation des Spiels ist auch wesentlich freier interpretiert.
Wie man spielt:
In Mr Bubble geht es darum, alle Bubbles zu vernichten. Dies geschieht mittels der Maus.
Level Mode
Einfacher Ablauf von unendlich vielen Leveln (Level n = n* Marbles) . Jedes Level fängt ca. nach 10 Sekunden an (siehe remaining time). Während dieser Zeit ist sowohl der Spieler als auch jede Bubble immun. Wo genau sich die Bubbles nach den 10 Sekunden befinden, ist eine Sache des Glücks. Wenn man viele Level schaffen will, braucht man ergo auch ne Menge Glück
Create Level
Hier gibt man einfach die Anzahl der gewünschten Bubbles ein. Im Prinzip springt man dann nur ins n-te Level
Ach ja, glaubt mir, 1000 Bubbles zu erstellen ist längst nicht so lustig, wie es sich anhört
Optionen
Cam/Bubble-Speed: Hier kann die allgemeine Geschwindigkeiten der jeweiligen Objekte variiert werden. Diese Feature ist mit Vorsicht zu genießen!Zum Skript:
Das Skript an sich ist etwas konfus =) Das liegt nicht zuletzt daran, dass alle Aktionen (Hauptmenü, SPiel, Optionen) in einem Fenster bzw. Skript ablaufen.
Naja, man kann sichs ja mal anschaun
Bekannte Bugs:
Beim Level-Wechsel versagt das Skript manchmal, wenn zuvor zwischen Modi gewechselt wurde.Download Mr Bubble 3D
Enthalten in dem Archiv sind:
- Die exe mit allen benötigten obj's, jpg's etc.
- Das Skript
- Irrlicht - DllsViel Spaß beim Testen,
wünscht Twodollarbillie -
Also du brauchst ein Programm, das in regelmäßigen Zeitabständen einen Screenshot von ner Website macht. Diese Screenshots sollen dann in einer Diashow angezeigt werden?